Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
authorPaul Mundt <lethal@linux-sh.org>
Wed, 16 Sep 2009 04:48:32 +0000 (13:48 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 16 Sep 2009 04:48:32 +0000 (13:48 +0900)
Conflicts:
arch/sh/kernel/vmlinux.lds.S

1  2 
Documentation/kernel-parameters.txt
arch/sh/kernel/signal_32.c
arch/sh/kernel/signal_64.c
arch/sh/kernel/vmlinux.lds.S
drivers/input/keyboard/sh_keysc.c
drivers/video/Kconfig

index 76c355214dc356a02c5a24f637a137b510858898,4c12a290bee52a00186e4a4e4c4d726996320d8e..574ee67b61812fde136d0ee1010e263eed2572b3
@@@ -57,6 -57,7 +57,7 @@@ parameter is applicable
        ISAPNP  ISA PnP code is enabled.
        ISDN    Appropriate ISDN support is enabled.
        JOY     Appropriate joystick support is enabled.
+       KVM     Kernel Virtual Machine support is enabled.
        LIBATA  Libata driver is enabled
        LP      Printer support is enabled.
        LOOP    Loopback device support is enabled.
@@@ -1098,6 -1099,44 +1099,44 @@@ and is between 256 and 4096 characters
        kstack=N        [X86] Print N words from the kernel stack
                        in oops dumps.
  
+       kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
+                       Default is 0 (don't ignore, but inject #GP)
+       kvm.oos_shadow= [KVM] Disable out-of-sync shadow paging.
+                       Default is 1 (enabled)
+       kvm-amd.nested= [KVM,AMD] Allow nested virtualization in KVM/SVM.
+                       Default is 0 (off)
+       kvm-amd.npt=    [KVM,AMD] Disable nested paging (virtualized MMU)
+                       for all guests.
+                       Default is 1 (enabled) if in 64bit or 32bit-PAE mode
+       kvm-intel.bypass_guest_pf=
+                       [KVM,Intel] Disables bypassing of guest page faults
+                       on Intel chips. Default is 1 (enabled)
+       kvm-intel.ept=  [KVM,Intel] Disable extended page tables
+                       (virtualized MMU) support on capable Intel chips.
+                       Default is 1 (enabled)
+       kvm-intel.emulate_invalid_guest_state=
+                       [KVM,Intel] Enable emulation of invalid guest states
+                       Default is 0 (disabled)
+       kvm-intel.flexpriority=
+                       [KVM,Intel] Disable FlexPriority feature (TPR shadow).
+                       Default is 1 (enabled)
+       kvm-intel.unrestricted_guest=
+                       [KVM,Intel] Disable unrestricted guest feature
+                       (virtualized real and unpaged mode) on capable
+                       Intel chips. Default is 1 (enabled)
+       kvm-intel.vpid= [KVM,Intel] Disable Virtual Processor Identification
+                       feature (tagged TLBs) on capable Intel chips.
+                       Default is 1 (enabled)
        l2cr=           [PPC]
  
        l3cr=           [PPC]
                        [NFS] set the TCP port on which the NFSv4 callback
                        channel should listen.
  
+       nfs.cache_getent=
+                       [NFS] sets the pathname to the program which is used
+                       to update the NFS client cache entries.
+       nfs.cache_getent_timeout=
+                       [NFS] sets the timeout after which an attempt to
+                       update a cache entry is deemed to have failed.
        nfs.idmap_cache_timeout=
                        [NFS] set the maximum lifetime for idmapper cache
                        entries.
                        of returning the full 64-bit number.
                        The default is to return 64-bit inode numbers.
  
 -      nmi_debug=      [KNL,AVR32] Specify one or more actions to take
 +      nmi_debug=      [KNL,AVR32,SH] Specify one or more actions to take
                        when a NMI is triggered.
                        Format: [state][,regs][,debounce][,die]
  
                        symbolic names: lapic and ioapic
                        Example: nmi_watchdog=2 or nmi_watchdog=panic,lapic
  
+       netpoll.carrier_timeout=
+                       [NET] Specifies amount of time (in seconds) that
+                       netpoll should wait for a carrier. By default netpoll
+                       waits 4 seconds.
        no387           [BUGS=X86-32] Tells the kernel to use the 387 maths
                        emulation library even if a 387 maths coprocessor
                        is present.
                        Format: { 0 | 1 }
                        See arch/parisc/kernel/pdc_chassis.c
  
-       percpu_alloc=   [X86] Select which percpu first chunk allocator to use.
-                       Allowed values are one of "lpage", "embed" and "4k".
-                       See comments in arch/x86/kernel/setup_percpu.c for
-                       details on each allocator.  This parameter is primarily
-                       for debugging and performance comparison.
+       percpu_alloc=   Select which percpu first chunk allocator to use.
+                       Currently supported values are "embed" and "page".
+                       Archs may support subset or none of the selections.
+                       See comments in mm/percpu.c for details on each
+                       allocator.  This parameter is primarily for debugging
+                       and performance comparison.
  
        pf.             [PARIDE]
                        See Documentation/blockdev/paride.txt.
        stifb=          [HW]
                        Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]]
  
+       sunrpc.min_resvport=
+       sunrpc.max_resvport=
+                       [NFS,SUNRPC]
+                       SunRPC servers often require that client requests
+                       originate from a privileged port (i.e. a port in the
+                       range 0 < portnr < 1024).
+                       An administrator who wishes to reserve some of these
+                       ports for other uses may adjust the range that the
+                       kernel's sunrpc client considers to be privileged
+                       using these two parameters to set the minimum and
+                       maximum port values.
        sunrpc.pool_mode=
                        [NFS]
                        Control how the NFS server code allocates CPUs to
                        pernode     one pool for each NUMA node (equivalent
                                    to global on non-NUMA machines)
  
+       sunrpc.tcp_slot_table_entries=
+       sunrpc.udp_slot_table_entries=
+                       [NFS,SUNRPC]
+                       Sets the upper limit on the number of simultaneous
+                       RPC calls that can be sent from the client to a
+                       server. Increasing these values may allow you to
+                       improve throughput, but will also increase the
+                       amount of memory reserved for use by the client.
        swiotlb=        [IA-64] Number of I/O TLB slabs
  
        switches=       [HW,M68k]
        trace_buf_size=nn[KMG]
                        [FTRACE] will set tracing buffer size.
  
+       trace_event=[event-list]
+                       [FTRACE] Set and start specified trace events in order
+                       to facilitate early boot debugging.
+                       See also Documentation/trace/events.txt
        trix=           [HW,OSS] MediaTrix AudioTrix Pro
                        Format:
                        <io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>
index 6010750c90b436de3d083dcae20891fd99871ea0,04a21883f32730bf18013031fe342e27c50b6b99..6729703547a1de1d9324ca45cc9cc72d53dcb244
@@@ -40,16 -40,6 +40,16 @@@ struct fdpic_func_descriptor 
        unsigned long   GOT;
  };
  
 +/*
 + * The following define adds a 64 byte gap between the signal
 + * stack frame and previous contents of the stack.  This allows
 + * frame unwinding in a function epilogue but only if a frame
 + * pointer is used in the function.  This is necessary because
 + * current gcc compilers (<4.3) do not generate unwind info on
 + * SH for function epilogues.
 + */
 +#define UNWINDGUARD 64
 +
  /*
   * Atomically swap in the new signal mask, and wait for a signal.
   */
@@@ -337,7 -327,7 +337,7 @@@ get_sigframe(struct k_sigaction *ka, un
                        sp = current->sas_ss_sp + current->sas_ss_size;
        }
  
 -      return (void __user *)((sp - frame_size) & -8ul);
 +      return (void __user *)((sp - (frame_size+UNWINDGUARD)) & -8ul);
  }
  
  /* These symbols are defined with the addresses in the vsyscall page.
@@@ -650,5 -640,7 +650,7 @@@ asmlinkage void do_notify_resume(struc
        if (thread_info_flags & _TIF_NOTIFY_RESUME) {
                clear_thread_flag(TIF_NOTIFY_RESUME);
                tracehook_notify_resume(regs);
+               if (current->replacement_session_keyring)
+                       key_replace_session_keyring();
        }
  }
index 026fd1cfe17db7e33cf193425a7f2d6dae6b30c9,9e5c9b1d7e9872fe3591e8520e8b7383e96e7962..74793c80a57a906253b97bd0d92f8e1d911dae47
@@@ -561,11 -561,13 +561,11 @@@ static int setup_frame(int sig, struct 
        /* Set up to return from userspace.  If provided, use a stub
           already in userspace.  */
        if (ka->sa.sa_flags & SA_RESTORER) {
 -              DEREF_REG_PR = (unsigned long) ka->sa.sa_restorer | 0x1;
 -
                /*
                 * On SH5 all edited pointers are subject to NEFF
                 */
 -              DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
 -                      (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
 +              DEREF_REG_PR = neff_sign_extend((unsigned long)
 +                      ka->sa.sa_restorer | 0x1);
        } else {
                /*
                 * Different approach on SH5.
                 * . being code, linker turns ShMedia bit on, always
                 *   dereference index -1.
                 */
 -              DEREF_REG_PR = (unsigned long) frame->retcode | 0x01;
 -              DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
 -                      (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
 +              DEREF_REG_PR = neff_sign_extend((unsigned long)
 +                      frame->retcode | 0x01);
  
                if (__copy_to_user(frame->retcode,
                        (void *)((unsigned long)sa_default_restorer & (~1)), 16) != 0)
         * Set up registers for signal handler.
         * All edited pointers are subject to NEFF.
         */
 -      regs->regs[REG_SP] = (unsigned long) frame;
 -      regs->regs[REG_SP] = (regs->regs[REG_SP] & NEFF_SIGN) ?
 -               (regs->regs[REG_SP] | NEFF_MASK) : regs->regs[REG_SP];
 +      regs->regs[REG_SP] = neff_sign_extend((unsigned long)frame);
        regs->regs[REG_ARG1] = signal; /* Arg for signal handler */
  
          /* FIXME:
        regs->regs[REG_ARG2] = (unsigned long long)(unsigned long)(signed long)&frame->sc;
        regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->sc;
  
 -      regs->pc = (unsigned long) ka->sa.sa_handler;
 -      regs->pc = (regs->pc & NEFF_SIGN) ? (regs->pc | NEFF_MASK) : regs->pc;
 +      regs->pc = neff_sign_extend((unsigned long)ka->sa.sa_handler);
  
        set_fs(USER_DS);
  
@@@ -670,11 -676,13 +670,11 @@@ static int setup_rt_frame(int sig, stru
        /* Set up to return from userspace.  If provided, use a stub
           already in userspace.  */
        if (ka->sa.sa_flags & SA_RESTORER) {
 -              DEREF_REG_PR = (unsigned long) ka->sa.sa_restorer | 0x1;
 -
                /*
                 * On SH5 all edited pointers are subject to NEFF
                 */
 -              DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
 -                      (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
 +              DEREF_REG_PR = neff_sign_extend((unsigned long)
 +                      ka->sa.sa_restorer | 0x1);
        } else {
                /*
                 * Different approach on SH5.
                 * . being code, linker turns ShMedia bit on, always
                 *   dereference index -1.
                 */
 -
 -              DEREF_REG_PR = (unsigned long) frame->retcode | 0x01;
 -              DEREF_REG_PR = (DEREF_REG_PR & NEFF_SIGN) ?
 -                      (DEREF_REG_PR | NEFF_MASK) : DEREF_REG_PR;
 +              DEREF_REG_PR = neff_sign_extend((unsigned long)
 +                      frame->retcode | 0x01);
  
                if (__copy_to_user(frame->retcode,
                        (void *)((unsigned long)sa_default_rt_restorer & (~1)), 16) != 0)
                        goto give_sigsegv;
  
 +              /* Cohere the trampoline with the I-cache. */
                flush_icache_range(DEREF_REG_PR-1, DEREF_REG_PR-1+15);
        }
  
         * Set up registers for signal handler.
         * All edited pointers are subject to NEFF.
         */
 -      regs->regs[REG_SP] = (unsigned long) frame;
 -      regs->regs[REG_SP] = (regs->regs[REG_SP] & NEFF_SIGN) ?
 -               (regs->regs[REG_SP] | NEFF_MASK) : regs->regs[REG_SP];
 +      regs->regs[REG_SP] = neff_sign_extend((unsigned long)frame);
        regs->regs[REG_ARG1] = signal; /* Arg for signal handler */
        regs->regs[REG_ARG2] = (unsigned long long)(unsigned long)(signed long)&frame->info;
        regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->uc.uc_mcontext;
 -      regs->pc = (unsigned long) ka->sa.sa_handler;
 -      regs->pc = (regs->pc & NEFF_SIGN) ? (regs->pc | NEFF_MASK) : regs->pc;
 +      regs->pc = neff_sign_extend((unsigned long)ka->sa.sa_handler);
  
        set_fs(USER_DS);
  
@@@ -760,5 -772,7 +760,7 @@@ asmlinkage void do_notify_resume(struc
        if (thread_info_flags & _TIF_NOTIFY_RESUME) {
                clear_thread_flag(TIF_NOTIFY_RESUME);
                tracehook_notify_resume(regs);
+               if (current->replacement_session_keyring)
+                       key_replace_session_keyring();
        }
  }
index 1b7d9d541e018303ca5b9273dd2683f1d061a0fa,0ce254bca92fc5ce2541ec4e0080df97c17c97ed..a1e4ec24f1f5de82450606dc8ff7cc20e8756424
@@@ -12,7 -12,7 +12,7 @@@ OUTPUT_ARCH(sh
  
  #include <asm/thread_info.h>
  #include <asm/cache.h>
 -#include <asm-generic/vmlinux.lds.h>
 +#include <asm/vmlinux.lds.h>
  
  ENTRY(_start)
  SECTIONS
                _etext = .;             /* End of text section */
        } = 0x0009
  
 -      . = ALIGN(16);          /* Exception table */
 -      __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
 -              __start___ex_table = .;
 -              *(__ex_table)
 -              __stop___ex_table = .;
 -      }
 +      EXCEPTION_TABLE(16)
  
        NOTES
        RO_DATA(PAGE_SIZE)
                __uncached_end = .;
        }
  
 -      . = ALIGN(THREAD_SIZE);
 -      .data : AT(ADDR(.data) - LOAD_OFFSET) {         /* Data */
 -              *(.data.init_task)
 -
 -              . = ALIGN(L1_CACHE_BYTES);
 -              *(.data.cacheline_aligned)
 -
 -              . = ALIGN(L1_CACHE_BYTES);
 -              *(.data.read_mostly)
 -
 -              . = ALIGN(PAGE_SIZE);
 -              *(.data.page_aligned)
 -
 -              __nosave_begin = .;
 -              *(.data.nosave)
 -              . = ALIGN(PAGE_SIZE);
 -              __nosave_end = .;
 -
 -              DATA_DATA
 -              CONSTRUCTORS
 -      }
 +      RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
  
        _edata = .;                     /* End of data section */
  
 -      . = ALIGN(PAGE_SIZE);           /* Init code and data */
 -      .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
 -              __init_begin = .;
 -              _sinittext = .;
 -              INIT_TEXT
 -              _einittext = .;
 -      }
 -
 -      .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { INIT_DATA }
 -
 -      . = ALIGN(16);
 -      .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
 -              __setup_start = .;
 -              *(.init.setup)
 -              __setup_end = .;
 -      }
 -
 -      .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
 -              __initcall_start = .;
 -              INITCALLS
 -              __initcall_end = .;
 -      }
 -
 -      .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
 -              __con_initcall_start = .;
 -              *(.con_initcall.init)
 -              __con_initcall_end = .;
 -      }
 -
 -      SECURITY_INIT
 +      DWARF_EH_FRAME
  
 -#ifdef CONFIG_BLK_DEV_INITRD
 -      . = ALIGN(PAGE_SIZE);
 -      .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
 -              __initramfs_start = .;
 -              *(.init.ramfs)
 -              __initramfs_end = .;
 -      }
 -#endif
 +      . = ALIGN(PAGE_SIZE);           /* Init code and data */
 +      __init_begin = .;
 +      INIT_TEXT_SECTION(PAGE_SIZE)
 +      INIT_DATA_SECTION(16)
  
        . = ALIGN(4);
        .machvec.init : AT(ADDR(.machvec.init) - LOAD_OFFSET) {
        .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { EXIT_DATA }
  
        . = ALIGN(PAGE_SIZE);
 -      .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
 -              __init_end = .;
 -              __bss_start = .;                /* BSS */
 -              *(.bss.page_aligned)
 -              *(.bss)
 -              *(COMMON)
 -              . = ALIGN(4);
 -              _ebss = .;                      /* uClinux MTD sucks */
 -              _end = . ;
 -      }
 +      __init_end = .;
 +      BSS_SECTION(0, PAGE_SIZE, 4)
 +      _ebss = .;                      /* uClinux MTD sucks */
 +      _end = . ;
  
-       /*
-        * When something in the kernel is NOT compiled as a module, the
-        * module cleanup code and data are put into these segments. Both
-        * can then be thrown away, as cleanup code is never called unless
-        * it's a module.
-        */
-       /DISCARD/ : {
-               EXIT_CALL
-       }
        STABS_DEBUG
        DWARF_DEBUG
 -      /*
 -       * When something in the kernel is NOT compiled as a module, the
 -       * module cleanup code and data are put into these segments. Both
 -       * can then be thrown away, as cleanup code is never called unless
 -       * it's a module.
 -       */
+       DISCARDS
  }
index 68fd502fcfef38e8060517d617398c7af2a191f1,0714bf2c28fcb513a22c8c17a288e4b8b7a85735..887af79b7bff8bafd7d56976c4872b042681f331
@@@ -80,9 -80,6 +80,9 @@@ static irqreturn_t sh_keysc_isr(int irq
                iowrite16(KYCR2_IRQ_LEVEL | (keyin_set << 8),
                          priv->iomem_base + KYCR2_OFFS);
  
 +              if (pdata->kycr2_delay)
 +                      udelay(pdata->kycr2_delay);
 +
                keys ^= ~0;
                keys &= (1 << (sh_keysc_mode[pdata->mode].keyin *
                               sh_keysc_mode[pdata->mode].keyout)) - 1;
@@@ -131,7 -128,7 +131,7 @@@ static int __devinit sh_keysc_probe(str
        struct resource *res;
        struct input_dev *input;
        char clk_name[8];
-       int i, k;
+       int i;
        int irq, error;
  
        if (!pdev->dev.platform_data) {
        input->id.product = 0x0001;
        input->id.version = 0x0100;
  
+       input->keycode = pdata->keycodes;
+       input->keycodesize = sizeof(pdata->keycodes[0]);
+       input->keycodemax = ARRAY_SIZE(pdata->keycodes);
        error = request_irq(irq, sh_keysc_isr, 0, pdev->name, pdev);
        if (error) {
                dev_err(&pdev->dev, "failed to request IRQ\n");
                goto err4;
        }
  
-       for (i = 0; i < SH_KEYSC_MAXKEYS; i++) {
-               k = pdata->keycodes[i];
-               if (k)
-                       input_set_capability(input, EV_KEY, k);
-       }
+       for (i = 0; i < SH_KEYSC_MAXKEYS; i++)
+               __set_bit(pdata->keycodes[i], input->keybit);
+       __clear_bit(KEY_RESERVED, input->keybit);
  
        error = input_register_device(input);
        if (error) {
        iowrite16(KYCR2_IRQ_LEVEL, priv->iomem_base + KYCR2_OFFS);
  
        device_init_wakeup(&pdev->dev, 1);
        return 0;
   err5:
        free_irq(irq, pdev);
   err4:
@@@ -255,6 -256,7 +259,7 @@@ static int __devexit sh_keysc_remove(st
  
        platform_set_drvdata(pdev, NULL);
        kfree(priv);
        return 0;
  }
  
@@@ -270,11 -272,12 +275,12 @@@ static int sh_keysc_suspend(struct devi
        if (device_may_wakeup(dev)) {
                value |= 0x80;
                enable_irq_wake(irq);
-       }
-       else
+       } else {
                value &= ~0x80;
+       }
  
        iowrite16(value, priv->iomem_base + KYCR1_OFFS);
        return 0;
  }
  
diff --combined drivers/video/Kconfig
index 7e2c9774f08fbfc9df5f0093d32854e6ed94cffa,1999b18348146aa2a9ccc658d446d38594c52f94..49f2c4bdf904f9ae299bf49fadcf4a4eca5f5329
@@@ -935,7 -935,7 +935,7 @@@ config FB_S1D13XX
  
  config FB_ATMEL
        tristate "AT91/AT32 LCD Controller support"
-       depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9 || AVR32)
+       depends on FB && (ARCH_AT91SAM9261 || ARCH_AT91SAM9G10 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45 || ARCH_AT91CAP9 || AVR32)
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
@@@ -951,7 -951,7 +951,7 @@@ config FB_INTSRA
  
  config FB_ATMEL_STN
        bool "Use a STN display with AT91/AT32 LCD Controller"
-       depends on FB_ATMEL && MACH_AT91SAM9261EK
+       depends on FB_ATMEL && (MACH_AT91SAM9261EK || MACH_AT91SAM9G10EK)
        default n
        help
          Say Y if you want to connect a STN LCD display to the AT91/AT32 LCD
@@@ -1867,7 -1867,7 +1867,7 @@@ config FB_W10
  
  config FB_SH_MOBILE_LCDC
        tristate "SuperH Mobile LCDC framebuffer support"
 -      depends on FB && SUPERH
 +      depends on FB && SUPERH && HAVE_CLK
        select FB_SYS_FILLRECT
        select FB_SYS_COPYAREA
        select FB_SYS_IMAGEBLIT