Push to branch refs/heads/master:
86a705267a2a502a3d62ef0797e449677b25835f -->
  724e6d3fe8003c3f60bf404bf22e4e331327c596



diff --git a/Documentation/filesystems/proc.txt 
b/Documentation/filesystems/proc.txt
index bf241be..0d07513 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -308,7 +308,7 @@ address           perms offset  dev   inode      pathname
 08049000-0804a000 rw-p 00001000 03:00 8312       /opt/test
 0804a000-0806b000 rw-p 00000000 00:00 0          [heap]
 a7cb1000-a7cb2000 ---p 00000000 00:00 0
-a7cb2000-a7eb2000 rw-p 00000000 00:00 0
+a7cb2000-a7eb2000 rw-p 00000000 00:00 0          [threadstack:001ff4b4]
 a7eb2000-a7eb3000 ---p 00000000 00:00 0
 a7eb3000-a7ed5000 rw-p 00000000 00:00 0
 a7ed5000-a8008000 r-xp 00000000 03:00 4222       /lib/libc.so.6
@@ -344,6 +344,7 @@ is not associated with a file:
  [stack]                  = the stack of the main process
  [vdso]                   = the "virtual dynamic shared object",
                             the kernel system call handler
+ [threadstack:xxxxxxxx]   = the stack of the thread, xxxxxxxx is the stack size
 
  or if empty, the mapping is anonymous.
 
diff --git a/Documentation/filesystems/tmpfs.txt 
b/Documentation/filesystems/tmpfs.txt
index fe09a2c..3015da0 100644
--- a/Documentation/filesystems/tmpfs.txt
+++ b/Documentation/filesystems/tmpfs.txt
@@ -82,13 +82,11 @@ tmpfs has a mount option to set the NUMA memory allocation 
policy for
 all files in that instance (if CONFIG_NUMA is enabled) - which can be
 adjusted on the fly via 'mount -o remount ...'
 
-mpol=default             use the process allocation policy
-                         (see set_mempolicy(2))
+mpol=default             prefers to allocate memory from the local node
 mpol=prefer:Node         prefers to allocate memory from the given Node
 mpol=bind:NodeList       allocates memory only from nodes in NodeList
 mpol=interleave          prefers to allocate from each node in turn
 mpol=interleave:NodeList allocates from each node of NodeList in turn
-mpol=local              prefers to allocate memory from the local node
 
 NodeList format is a comma-separated list of decimal numbers and ranges,
 a range being two hyphen-separated decimal numbers, the smallest and
@@ -136,5 +134,3 @@ Author:
    Christoph Rohland <c...@sap.com>, 1.12.01
 Updated:
    Hugh Dickins, 4 June 2007
-Updated:
-   KOSAKI Motohiro, 16 Mar 2010
diff --git a/Documentation/hwmon/ltc4245 b/Documentation/hwmon/ltc4245
index 86b5880..02838a4 100644
--- a/Documentation/hwmon/ltc4245
+++ b/Documentation/hwmon/ltc4245
@@ -72,7 +72,9 @@ in6_min_alarm         5v  output undervoltage alarm
 in7_min_alarm          3v  output undervoltage alarm
 in8_min_alarm          Vee (-12v) output undervoltage alarm
 
-in9_input              GPIO voltage data
+in9_input              GPIO #1 voltage data
+in10_input             GPIO #2 voltage data
+in11_input             GPIO #3 voltage data
 
 power1_input           12v power usage (mW)
 power2_input           5v  power usage (mW)
diff --git a/Documentation/i2c/busses/i2c-i801 
b/Documentation/i2c/busses/i2c-i801
index e1bb5b2..81c0c59 100644
--- a/Documentation/i2c/busses/i2c-i801
+++ b/Documentation/i2c/busses/i2c-i801
@@ -15,8 +15,7 @@ Supported adapters:
   * Intel 82801I (ICH9)
   * Intel EP80579 (Tolapai)
   * Intel 82801JI (ICH10)
-  * Intel 3400/5 Series (PCH)
-  * Intel Cougar Point (PCH)
+  * Intel PCH
    Datasheets: Publicly available at the Intel website
 
 Authors: 
diff --git a/Documentation/i2c/instantiating-devices 
b/Documentation/i2c/instantiating-devices
index ed1779c..e894902 100644
--- a/Documentation/i2c/instantiating-devices
+++ b/Documentation/i2c/instantiating-devices
@@ -100,7 +100,7 @@ static int __devinit usb_hcd_pnx4008_probe(struct 
platform_device *pdev)
        (...)
        i2c_adap = i2c_get_adapter(2);
        memset(&i2c_info, 0, sizeof(struct i2c_board_info));
-       strlcpy(i2c_info.type, "isp1301_pnx", I2C_NAME_SIZE);
+       strlcpy(i2c_info.name, "isp1301_pnx", I2C_NAME_SIZE);
        isp1301_i2c_client = i2c_new_probed_device(i2c_adap, &i2c_info,
                                                   normal_i2c);
        i2c_put_adapter(i2c_adap);
diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index e2c7487..736d456 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -199,10 +199,6 @@ and is between 256 and 4096 characters. It is defined in 
the file
                        acpi_display_output=video
                        See above.
 
-       acpi_early_pdc_eval     [HW,ACPI] Evaluate processor _PDC methods
-                               early. Needed on some platforms to properly
-                               initialize the EC.
-
        acpi_irq_balance [HW,ACPI]
                        ACPI will balance active IRQs
                        default in APIC mode
@@ -315,11 +311,6 @@ and is between 256 and 4096 characters. It is defined in 
the file
        aic79xx=        [HW,SCSI]
                        See Documentation/scsi/aic79xx.txt.
 
-       alignment=      [KNL,ARM]
-                       Allow the default userspace alignment fault handler
-                       behaviour to be specified.  Bit 0 enables warnings,
-                       bit 1 enables fixups, and bit 2 sends a segfault.
-
        amd_iommu=      [HW,X86-84]
                        Pass parameters to the AMD IOMMU driver in the system.
                        Possible values are:
@@ -2703,13 +2694,6 @@ and is between 256 and 4096 characters. It is defined in 
the file
                                        medium is write-protected).
                        Example: quirks=0419:aaf5:rl,0421:0433:rc
 
-       userpte=
-                       [X86] Flags controlling user PTE allocations.
-
-                               nohigh = do not allocate PTE pages in
-                                       HIGHMEM regardless of setting
-                                       of CONFIG_HIGHPTE.
-
        vdso=           [X86,SH]
                        vdso=2: enable compat VDSO (default with COMPAT_VDSO)
                        vdso=1: enable VDSO (default)
diff --git a/Documentation/laptops/thinkpad-acpi.txt 
b/Documentation/laptops/thinkpad-acpi.txt
index 39c0a09..75afa12 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -650,10 +650,6 @@ LCD, CRT or DVI (if available). The following commands are 
available:
        echo expand_toggle > /proc/acpi/ibm/video
        echo video_switch > /proc/acpi/ibm/video
 
-NOTE: Access to this feature is restricted to processes owning the
-CAP_SYS_ADMIN capability for safety reasons, as it can interact badly
-enough with some versions of X.org to crash it.
-
 Each video output device can be enabled or disabled individually.
 Reading /proc/acpi/ibm/video shows the status of each device.
 
diff --git a/Documentation/networking/ip-sysctl.txt 
b/Documentation/networking/ip-sysctl.txt
index e87f3cdc..006b39d 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -1074,10 +1074,10 @@ regen_max_retry - INTEGER
        Default: 5
 
 max_addresses - INTEGER
-       Maximum number of autoconfigured addresses per interface.  Setting
-       to zero disables the limitation.  It is not recommended to set this
-       value too large (or to zero) because it would be an easy way to
-       crash the kernel by allowing too many addresses to be created.
+       Number of maximum addresses per interface.  0 disables limitation.
+       It is recommended not set too large value (or 0) because it would
+       be too easy way to crash kernel to allow to create too much of
+       autoconfigured addresses.
        Default: 16
 
 disable_ipv6 - BOOLEAN
diff --git a/Documentation/stable_kernel_rules.txt 
b/Documentation/stable_kernel_rules.txt
index 2e073d5..5effa5b 100644
--- a/Documentation/stable_kernel_rules.txt
+++ b/Documentation/stable_kernel_rules.txt
@@ -25,10 +25,10 @@ Rules on what kind of patches are accepted, and which ones 
are not, into the
 Procedure for submitting patches to the -stable tree:
 
  - Send the patch, after verifying that it follows the above rules, to
-   sta...@vger.kernel.org.
+   sta...@kernel.org.
  - To have the patch automatically included in the stable tree, add the
    the tag
-     Cc: sta...@vger.kernel.org
+     Cc: sta...@kernel.org
    in the sign-off area. Once the patch is merged it will be applied to
    the stable tree without anything else needing to be done by the author
    or subsystem maintainer.
@@ -36,10 +36,10 @@ Procedure for submitting patches to the -stable tree:
    cherry-picked than this can be specified in the following format in
    the sign-off area:
 
-     Cc: <sta...@vger.kernel.org> # .32.x: a1f84a3: sched: Check for idle
-     Cc: <sta...@vger.kernel.org> # .32.x: 1b9508f: sched: Rate-limit newidle
-     Cc: <sta...@vger.kernel.org> # .32.x: fd21073: sched: Fix affinity logic
-     Cc: <sta...@vger.kernel.org> # .32.x
+     Cc: <sta...@kernel.org> # .32.x: a1f84a3: sched: Check for idle
+     Cc: <sta...@kernel.org> # .32.x: 1b9508f: sched: Rate-limit newidle
+     Cc: <sta...@kernel.org> # .32.x: fd21073: sched: Fix affinity logic
+     Cc: <sta...@kernel.org> # .32.x
     Signed-off-by: Ingo Molnar <mi...@elte.hu>
 
    The tag sequence has the meaning of:
diff --git a/MAINTAINERS b/MAINTAINERS
index b612a1f..412eff6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -616,10 +616,10 @@ M:        Richard Purdie <rpur...@rpsys.net>
 S:     Maintained
 
 ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
-M:     Paulius Zaleckas <paulius.zalec...@gmail.com>
+M:     Paulius Zaleckas <paulius.zalec...@teltonika.lt>
 L:     linux-arm-ker...@lists.infradead.org (moderated for non-subscribers)
 T:     git git://gitorious.org/linux-gemini/mainline.git
-S:     Odd Fixes
+S:     Maintained
 F:     arch/arm/mach-gemini/
 
 ARM/EBSA110 MACHINE SUPPORT
@@ -641,9 +641,9 @@ T:  topgit git://git.openezx.org/openezx.git
 F:     arch/arm/mach-pxa/ezx.c
 
 ARM/FARADAY FA526 PORT
-M:     Paulius Zaleckas <paulius.zalec...@gmail.com>
+M:     Paulius Zaleckas <paulius.zalec...@teltonika.lt>
 L:     linux-arm-ker...@lists.infradead.org (moderated for non-subscribers)
-S:     Odd Fixes
+S:     Maintained
 F:     arch/arm/mm/*-fa*
 
 ARM/FOOTBRIDGE ARCHITECTURE
@@ -1733,9 +1733,10 @@ F:       include/linux/tfrc.h
 F:     net/dccp/
 
 DECnet NETWORK LAYER
+M:     Christine Caulfield <christine.caulfi...@googlemail.com>
 W:     http://linux-decnet.sourceforge.net
 L:     linux-decnet-u...@lists.sourceforge.net
-S:     Orphan
+S:     Maintained
 F:     Documentation/networking/decnet.txt
 F:     net/decnet/
 
@@ -2032,12 +2033,6 @@ W:       http://acpi4asus.sf.net
 S:     Maintained
 F:     drivers/platform/x86/eeepc-laptop.c
 
-EFIFB FRAMEBUFFER DRIVER
-L:     linux-fb...@vger.kernel.org
-M:     Peter Jones <pjo...@redhat.com>
-S:     Maintained
-F:     drivers/video/efifb.c
-
 EFS FILESYSTEM
 W:     http://aeschi.ch.eu.org/efs/
 S:     Orphan
@@ -3495,9 +3490,9 @@ S:        Maintained
 F:     drivers/net/wireless/libertas/
 
 MARVELL MV643XX ETHERNET DRIVER
-M:     Lennert Buytenhek <buyt...@wantstofly.org>
+M:     Lennert Buytenhek <buyt...@marvell.com>
 L:     net...@vger.kernel.org
-S:     Maintained
+S:     Supported
 F:     drivers/net/mv643xx_eth.*
 F:     include/linux/mv643xx.h
 
@@ -5131,6 +5126,7 @@ F:        arch/alpha/kernel/srm_env.c
 
 STABLE BRANCH
 M:     Greg Kroah-Hartman <g...@kroah.com>
+M:     Chris Wright <chr...@sous-sol.org>
 L:     sta...@kernel.org
 S:     Maintained
 
diff --git a/Makefile b/Makefile
index 2349341..12b1aa1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 33
-EXTRAVERSION = .20
+EXTRAVERSION = -rc8
 NAME = Man-Eating Seals of Antiquity
 
 # *DOCUMENTATION*
diff --git a/arch/Kconfig b/arch/Kconfig
index 25e69f7..9d055b4 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -6,6 +6,8 @@ config OPROFILE
        tristate "OProfile system profiling (EXPERIMENTAL)"
        depends on PROFILING
        depends on HAVE_OPROFILE
+       depends on TRACING_SUPPORT
+       select TRACING
        select RING_BUFFER
        select RING_BUFFER_ALLOW_SWAP
        help
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
index a94e49c..62619f2 100644
--- a/arch/alpha/kernel/osf_sys.c
+++ b/arch/alpha/kernel/osf_sys.c
@@ -431,7 +431,7 @@ SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, 
int, namelen)
                return -EFAULT;
 
        len = namelen;
-       if (len > 32)
+       if (namelen > 32)
                len = 32;
 
        down_read(&uts_sem);
@@ -618,7 +618,7 @@ SYSCALL_DEFINE3(osf_sysinfo, int, command, char __user *, 
buf, long, count)
        down_read(&uts_sem);
        res = sysinfo_table[offset];
        len = strlen(res)+1;
-       if ((unsigned long)len > (unsigned long)count)
+       if (len > count)
                len = count;
        if (copy_to_user(buf, res, len))
                err = -EFAULT;
@@ -673,7 +673,7 @@ SYSCALL_DEFINE5(osf_getsysinfo, unsigned long, op, void 
__user *, buffer,
                return 1;
 
        case GSI_GET_HWRPB:
-               if (nbytes > sizeof(*hwrpb))
+               if (nbytes < sizeof(*hwrpb))
                        return -EINVAL;
                if (copy_to_user(buffer, hwrpb, nbytes) != 0)
                        return -EFAULT;
@@ -1035,7 +1035,6 @@ SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, 
ustatus, int, options,
 {
        struct rusage r;
        long ret, err;
-       unsigned int status = 0;
        mm_segment_t old_fs;
 
        if (!ur)
@@ -1044,15 +1043,13 @@ SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, 
ustatus, int, options,
        old_fs = get_fs();
                
        set_fs (KERNEL_DS);
-       ret = sys_wait4(pid, (unsigned int __user *) &status, options,
-                       (struct rusage __user *) &r);
+       ret = sys_wait4(pid, ustatus, options, (struct rusage __user *) &r);
        set_fs (old_fs);
 
        if (!access_ok(VERIFY_WRITE, ur, sizeof(*ur)))
                return -EFAULT;
 
        err = 0;
-       err |= put_user(status, ustatus);
        err |= __put_user(r.ru_utime.tv_sec, &ur->ru_utime.tv_sec);
        err |= __put_user(r.ru_utime.tv_usec, &ur->ru_utime.tv_usec);
        err |= __put_user(r.ru_stime.tv_sec, &ur->ru_stime.tv_sec);
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index cbeb6e0..4fddc50 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -170,9 +170,9 @@ not_angel:
 
                .text
                adr     r0, LC0
- ARM(          ldmia   r0, {r1, r2, r3, r4, r5, r6, r11, ip, sp})
- THUMB(                ldmia   r0, {r1, r2, r3, r4, r5, r6, r11, ip}   )
- THUMB(                ldr     sp, [r0, #32]                           )
+ ARM(          ldmia   r0, {r1, r2, r3, r4, r5, r6, ip, sp}    )
+ THUMB(                ldmia   r0, {r1, r2, r3, r4, r5, r6, ip}        )
+ THUMB(                ldr     sp, [r0, #28]                           )
                subs    r0, r0, r1              @ calculate the delta offset
 
                                                @ if delta is zero, we are
@@ -182,13 +182,12 @@ not_angel:
                /*
                 * We're running at a different address.  We need to fix
                 * up various pointers:
-                *   r5 - zImage base address (_start)
-                *   r6 - size of decompressed image
-                *   r11 - GOT start
+                *   r5 - zImage base address
+                *   r6 - GOT start
                 *   ip - GOT end
                 */
                add     r5, r5, r0
-               add     r11, r11, r0
+               add     r6, r6, r0
                add     ip, ip, r0
 
 #ifndef CONFIG_ZBOOT_ROM
@@ -206,10 +205,10 @@ not_angel:
                /*
                 * Relocate all entries in the GOT table.
                 */
-1:             ldr     r1, [r11, #0]           @ relocate entries in the GOT
+1:             ldr     r1, [r6, #0]            @ relocate entries in the GOT
                add     r1, r1, r0              @ table.  This fixes up the
-               str     r1, [r11], #4           @ C references.
-               cmp     r11, ip
+               str     r1, [r6], #4            @ C references.
+               cmp     r6, ip
                blo     1b
 #else
 
@@ -217,12 +216,12 @@ not_angel:
                 * Relocate entries in the GOT table.  We only relocate
                 * the entries that are outside the (relocated) BSS region.
                 */
-1:             ldr     r1, [r11, #0]           @ relocate entries in the GOT
+1:             ldr     r1, [r6, #0]            @ relocate entries in the GOT
                cmp     r1, r2                  @ entry < bss_start ||
                cmphs   r3, r1                  @ _end < entry
                addlo   r1, r1, r0              @ table.  This fixes up the
-               str     r1, [r11], #4           @ C references.
-               cmp     r11, ip
+               str     r1, [r6], #4            @ C references.
+               cmp     r6, ip
                blo     1b
 #endif
 
@@ -248,7 +247,6 @@ not_relocated:      mov     r0, #0
  * Check to see if we will overwrite ourselves.
  *   r4 = final kernel address
  *   r5 = start of this image
- *   r6 = size of decompressed image
  *   r2 = end of malloc space (and therefore this image)
  * We basically want:
  *   r4 >= r2 -> OK
@@ -256,7 +254,8 @@ not_relocated:      mov     r0, #0
  */
                cmp     r4, r2
                bhs     wont_overwrite
-               add     r0, r4, r6
+               sub     r3, sp, r5              @ > compressed kernel size
+               add     r0, r4, r3, lsl #2      @ allow for 4x expansion
                cmp     r0, r5
                bls     wont_overwrite
 
@@ -272,6 +271,7 @@ not_relocated:      mov     r0, #0
  * r1-r3  = unused
  * r4     = kernel execution address
  * r5     = decompressed kernel start
+ * r6     = processor ID
  * r7     = architecture ID
  * r8     = atags pointer
  * r9-r12,r14 = corrupted
@@ -312,8 +312,7 @@ LC0:                .word   LC0                     @ r1
                .word   _end                    @ r3
                .word   zreladdr                @ r4
                .word   _start                  @ r5
-               .word   _image_size             @ r6
-               .word   _got_start              @ r11
+               .word   _got_start              @ r6
                .word   _got_end                @ ip
                .word   user_stack+4096         @ sp
 LC1:           .word   reloc_end - reloc_start
@@ -337,6 +336,7 @@ params:             ldr     r0, =params_phys
  *
  * On entry,
  *  r4 = kernel execution address
+ *  r6 = processor ID
  *  r7 = architecture number
  *  r8 = atags pointer
  *  r9 = run-time address of "start"  (???)
@@ -542,6 +542,7 @@ __common_mmu_cache_on:
  * r1-r3  = unused
  * r4     = kernel execution address
  * r5     = decompressed kernel start
+ * r6     = processor ID
  * r7     = architecture ID
  * r8     = atags pointer
  * r9-r12,r14 = corrupted
@@ -580,19 +581,19 @@ call_kernel:      bl      cache_clean_flush
  *  r1  = corrupted
  *  r2  = corrupted
  *  r3  = block offset
- *  r9  = corrupted
+ *  r6  = corrupted
  *  r12 = corrupted
  */
 
 call_cache_fn: adr     r12, proc_types
 #ifdef CONFIG_CPU_CP15
-               mrc     p15, 0, r9, c0, c0      @ get processor ID
+               mrc     p15, 0, r6, c0, c0      @ get processor ID
 #else
-               ldr     r9, =CONFIG_PROCESSOR_ID
+               ldr     r6, =CONFIG_PROCESSOR_ID
 #endif
 1:             ldr     r1, [r12, #0]           @ get value
                ldr     r2, [r12, #4]           @ get mask
-               eor     r1, r1, r9              @ (real ^ match)
+               eor     r1, r1, r6              @ (real ^ match)
                tst     r1, r2                  @       & mask
  ARM(          addeq   pc, r12, r3             ) @ call cache function
  THUMB(                addeq   r12, r3                 )
@@ -777,7 +778,8 @@ proc_types:
  * Turn off the Cache and MMU.  ARMv3 does not support
  * reading the control register, but ARMv4 does.
  *
- * On exit, r0, r1, r2, r3, r9, r12 corrupted
+ * On entry,  r6 = processor ID
+ * On exit,   r0, r1, r2, r3, r12 corrupted
  * This routine must preserve: r4, r6, r7
  */
                .align  5
@@ -850,8 +852,10 @@ __armv3_mmu_cache_off:
 /*
  * Clean and flush the cache to maintain consistency.
  *
+ * On entry,
+ *  r6 = processor ID
  * On exit,
- *  r1, r2, r3, r9, r11, r12 corrupted
+ *  r1, r2, r3, r11, r12 corrupted
  * This routine must preserve:
  *  r0, r4, r5, r6, r7
  */
@@ -963,7 +967,7 @@ __armv4_mmu_cache_flush:
                mov     r2, #64*1024            @ default: 32K dcache size (*2)
                mov     r11, #32                @ default: 32 byte line size
                mrc     p15, 0, r3, c0, c0, 1   @ read cache type
-               teq     r3, r9                  @ cache ID register present?
+               teq     r3, r6                  @ cache ID register present?
                beq     no_cache_id
                mov     r1, r3, lsr #18
                and     r1, r1, #7
diff --git a/arch/arm/boot/compressed/vmlinux.lds.in 
b/arch/arm/boot/compressed/vmlinux.lds.in
index cbed030..a5924b9 100644
--- a/arch/arm/boot/compressed/vmlinux.lds.in
+++ b/arch/arm/boot/compressed/vmlinux.lds.in
@@ -36,9 +36,6 @@ SECTIONS
 
   _etext = .;
 
-  /* Assume size of decompressed image is 4x the compressed image */
-  _image_size = (_etext - _text) * 4;
-
   _got_start = .;
   .got                 : { *(.got) }
   _got_end = .;
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index b07bfee..8ba7044 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -887,6 +887,8 @@ static int sa1111_resume(struct platform_device *dev)
        if (!save)
                return 0;
 
+       spin_lock_irqsave(&sachip->lock, flags);
+
        /*
         * Ensure that the SA1111 is still here.
         * FIXME: shouldn't do this here.
@@ -903,13 +905,6 @@ static int sa1111_resume(struct platform_device *dev)
         * First of all, wake up the chip.
         */
        sa1111_wake(sachip);
-
-       /*
-        * Only lock for write ops. Also, sa1111_wake must be called with
-        * released spinlock!
-        */
-       spin_lock_irqsave(&sachip->lock, flags);
-
        sa1111_writel(0, sachip->base + SA1111_INTC + SA1111_INTEN0);
        sa1111_writel(0, sachip->base + SA1111_INTC + SA1111_INTEN1);
 
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
index eea4947..00f46d9 100644
--- a/arch/arm/include/asm/assembler.h
+++ b/arch/arm/include/asm/assembler.h
@@ -215,7 +215,7 @@
        @ Slightly optimised to avoid incrementing the pointer twice
        usraccoff \instr, \reg, \ptr, \inc, 0, \cond, \abort
        .if     \rept == 2
-       usraccoff \instr, \reg, \ptr, \inc, \inc, \cond, \abort
+       usraccoff \instr, \reg, \ptr, \inc, 4, \cond, \abort
        .endif
 
        add\cond \ptr, #\rept * \inc
diff --git a/arch/arm/include/asm/cacheflush.h 
b/arch/arm/include/asm/cacheflush.h
index 8113bb5..c77d2fa 100644
--- a/arch/arm/include/asm/cacheflush.h
+++ b/arch/arm/include/asm/cacheflush.h
@@ -42,8 +42,7 @@
 #endif
 
 #if defined(CONFIG_CPU_ARM920T) || defined(CONFIG_CPU_ARM922T) || \
-    defined(CONFIG_CPU_ARM925T) || defined(CONFIG_CPU_ARM1020) || \
-    defined(CONFIG_CPU_ARM1026)
+    defined(CONFIG_CPU_ARM925T) || defined(CONFIG_CPU_ARM1020)
 # define MULTI_CACHE 1
 #endif
 
diff --git a/arch/arm/kernel/kprobes-decode.c b/arch/arm/kernel/kprobes-decode.c
index 8bccbfa..da1f949 100644
--- a/arch/arm/kernel/kprobes-decode.c
+++ b/arch/arm/kernel/kprobes-decode.c
@@ -583,14 +583,13 @@ static void __kprobes emulate_ldr(struct kprobe *p, 
struct pt_regs *regs)
 {
        insn_llret_3arg_fn_t *i_fn = (insn_llret_3arg_fn_t *)&p->ainsn.insn[0];
        kprobe_opcode_t insn = p->opcode;
-       long ppc = (long)p->addr + 8;
        union reg_pair fnr;
        int rd = (insn >> 12) & 0xf;
        int rn = (insn >> 16) & 0xf;
        int rm = insn & 0xf;
        long rdv;
-       long rnv = (rn == 15) ? ppc : regs->uregs[rn];
-       long rmv = (rm == 15) ? ppc : regs->uregs[rm];
+       long rnv  = regs->uregs[rn];
+       long rmv  = regs->uregs[rm]; /* rm/rmv may be invalid, don't care. */
        long cpsr = regs->ARM_cpsr;
 
        fnr.dr = insnslot_llret_3arg_rflags(rnv, 0, rmv, cpsr, i_fn);
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 621acad..c6c57b6 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -102,7 +102,6 @@ struct cpu_cache_fns cpu_cache;
 #endif
 #ifdef CONFIG_OUTER_CACHE
 struct outer_cache_fns outer_cache;
-EXPORT_SYMBOL(outer_cache);
 #endif
 
 struct stack {
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index 962236a..e7714f3 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -389,9 +389,7 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka,
        unsigned long handler = (unsigned long)ka->sa.sa_handler;
        unsigned long retcode;
        int thumb = 0;
-       unsigned long cpsr = regs->ARM_cpsr & ~(PSR_f | PSR_E_BIT);
-
-       cpsr |= PSR_ENDSTATE;
+       unsigned long cpsr = regs->ARM_cpsr & ~PSR_f;
 
        /*
         * Maybe we need to deliver a 32-bit signal to a 26-bit task.
diff --git a/arch/arm/kernel/sys_oabi-compat.c 
b/arch/arm/kernel/sys_oabi-compat.c
index 897b879..d59a0cd 100644
--- a/arch/arm/kernel/sys_oabi-compat.c
+++ b/arch/arm/kernel/sys_oabi-compat.c
@@ -311,7 +311,7 @@ asmlinkage long sys_oabi_semtimedop(int semid,
        long err;
        int i;
 
-       if (nsops < 1 || nsops > SEMOPM)
+       if (nsops < 1)
                return -EINVAL;
        sops = kmalloc(sizeof(*sops) * nsops, GFP_KERNEL);
        if (!sops)
diff --git a/arch/arm/lib/findbit.S b/arch/arm/lib/findbit.S
index 64f6bc1..1e4cbd4 100644
--- a/arch/arm/lib/findbit.S
+++ b/arch/arm/lib/findbit.S
@@ -174,8 +174,8 @@ ENDPROC(_find_next_bit_be)
  */
 .L_found:
 #if __LINUX_ARM_ARCH__ >= 5
-               rsb     r0, r3, #0
-               and     r3, r3, r0
+               rsb     r1, r3, #0
+               and     r3, r3, r1
                clz     r3, r3
                rsb     r3, r3, #31
                add     r0, r2, r3
@@ -190,7 +190,5 @@ ENDPROC(_find_next_bit_be)
                addeq   r2, r2, #1
                mov     r0, r2
 #endif
-               cmp     r1, r0                  @ Clamp to maxbit
-               movlo   r0, r1
                mov     pc, lr
 
diff --git a/arch/arm/mach-davinci/board-da850-evm.c 
b/arch/arm/mach-davinci/board-da850-evm.c
index 3ecd94b..07de8db 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -44,32 +44,6 @@
 
 #define DA850_MII_MDIO_CLKEN_PIN       GPIO_TO_PIN(2, 6)
 
-#ifdef CONFIG_MTD
-static void da850_evm_m25p80_notify_add(struct mtd_info *mtd)
-{
-       char *mac_addr = davinci_soc_info.emac_pdata->mac_addr;
-       size_t retlen;
-
-       if (!strcmp(mtd->name, "MAC-Address")) {
-               mtd->read(mtd, 0, ETH_ALEN, &retlen, mac_addr);
-               if (retlen == ETH_ALEN)
-                       pr_info("Read MAC addr from SPI Flash: %pM\n",
-                               mac_addr);
-       }
-}
-
-static struct mtd_notifier da850evm_spi_notifier = {
-       .add    = da850_evm_m25p80_notify_add,
-};
-
-static void da850_evm_setup_mac_addr(void)
-{
-       register_mtd_user(&da850evm_spi_notifier);
-}
-#else
-static void da850_evm_setup_mac_addr(void) { }
-#endif
-
 static struct mtd_partition da850_evm_norflash_partition[] = {
        {
                .name           = "NOR filesystem",
@@ -722,8 +696,6 @@ static __init void da850_evm_init(void)
        if (ret)
                pr_warning("da850_evm_init: cpuidle registration failed: %d\n",
                                ret);
-
-       da850_evm_setup_mac_addr();
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c 
b/arch/arm/mach-davinci/board-dm365-evm.c
index a950248..b476395 100644
--- a/arch/arm/mach-davinci/board-dm365-evm.c
+++ b/arch/arm/mach-davinci/board-dm365-evm.c
@@ -453,7 +453,7 @@ fail:
         */
        if (have_imager()) {
                label = "HD imager";
-               mux |= 2;
+               mux |= 1;
 
                /* externally mux MMC1/ENET/AIC33 to imager */
                mux |= BIT(6) | BIT(5) | BIT(3);
@@ -474,7 +474,7 @@ fail:
                resets &= ~BIT(1);
 
                if (have_tvp7002()) {
-                       mux |= 1;
+                       mux |= 2;
                        resets &= ~BIT(2);
                        label = "tvp7002 HD";
                } else {
diff --git a/arch/arm/mach-gemini/gpio.c b/arch/arm/mach-gemini/gpio.c
index fe3bd5a..e726385 100644
--- a/arch/arm/mach-gemini/gpio.c
+++ b/arch/arm/mach-gemini/gpio.c
@@ -86,7 +86,7 @@ static int gpio_set_irq_type(unsigned int irq, unsigned int 
type)
        unsigned int reg_both, reg_level, reg_type;
 
        reg_type = __raw_readl(base + GPIO_INT_TYPE);
-       reg_level = __raw_readl(base + GPIO_INT_LEVEL);
+       reg_level = __raw_readl(base + GPIO_INT_BOTH_EDGE);
        reg_both = __raw_readl(base + GPIO_INT_BOTH_EDGE);
 
        switch (type) {
@@ -117,7 +117,7 @@ static int gpio_set_irq_type(unsigned int irq, unsigned int 
type)
        }
 
        __raw_writel(reg_type, base + GPIO_INT_TYPE);
-       __raw_writel(reg_level, base + GPIO_INT_LEVEL);
+       __raw_writel(reg_level, base + GPIO_INT_BOTH_EDGE);
        __raw_writel(reg_both, base + GPIO_INT_BOTH_EDGE);
 
        gpio_ack_irq(irq);
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c 
b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 51c2d37..acafdbc 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -147,10 +147,6 @@ static void __init rx51_add_gpio_keys(void)
 #endif /* CONFIG_KEYBOARD_GPIO || CONFIG_KEYBOARD_GPIO_MODULE */
 
 static int board_keymap[] = {
-       /*
-        * Note that KEY(x, 8, KEY_XXX) entries represent "entrire row
-        * connected to the ground" matrix state.
-        */
        KEY(0, 0, KEY_Q),
        KEY(0, 1, KEY_O),
        KEY(0, 2, KEY_P),
@@ -158,7 +154,6 @@ static int board_keymap[] = {
        KEY(0, 4, KEY_BACKSPACE),
        KEY(0, 6, KEY_A),
        KEY(0, 7, KEY_S),
-
        KEY(1, 0, KEY_W),
        KEY(1, 1, KEY_D),
        KEY(1, 2, KEY_F),
@@ -167,7 +162,6 @@ static int board_keymap[] = {
        KEY(1, 5, KEY_J),
        KEY(1, 6, KEY_K),
        KEY(1, 7, KEY_L),
-
        KEY(2, 0, KEY_E),
        KEY(2, 1, KEY_DOT),
        KEY(2, 2, KEY_UP),
@@ -175,8 +169,6 @@ static int board_keymap[] = {
        KEY(2, 5, KEY_Z),
        KEY(2, 6, KEY_X),
        KEY(2, 7, KEY_C),
-       KEY(2, 8, KEY_F9),
-
        KEY(3, 0, KEY_R),
        KEY(3, 1, KEY_V),
        KEY(3, 2, KEY_B),
@@ -185,23 +177,20 @@ static int board_keymap[] = {
        KEY(3, 5, KEY_SPACE),
        KEY(3, 6, KEY_SPACE),
        KEY(3, 7, KEY_LEFT),
-
        KEY(4, 0, KEY_T),
        KEY(4, 1, KEY_DOWN),
        KEY(4, 2, KEY_RIGHT),
        KEY(4, 4, KEY_LEFTCTRL),
        KEY(4, 5, KEY_RIGHTALT),
        KEY(4, 6, KEY_LEFTSHIFT),
-       KEY(4, 8, KEY_F10),
-
        KEY(5, 0, KEY_Y),
-       KEY(5, 8, KEY_F11),
-
        KEY(6, 0, KEY_U),
-
        KEY(7, 0, KEY_I),
        KEY(7, 1, KEY_F7),
        KEY(7, 2, KEY_F8),
+       KEY(0xff, 2, KEY_F9),
+       KEY(0xff, 4, KEY_F10),
+       KEY(0xff, 5, KEY_F11),
 };
 
 static struct matrix_keymap_data board_map_data = {
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index 5fef73f..5fedc50 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -961,14 +961,16 @@ static void __init omap_mux_init_list(struct omap_mux 
*superset)
        while (superset->reg_offset !=  OMAP_MUX_TERMINATOR) {
                struct omap_mux *entry;
 
-#ifdef CONFIG_OMAP_MUX
-               if (!superset->muxnames || !superset->muxnames[0]) {
+#ifndef CONFIG_OMAP_MUX
+               /* Skip pins that are not muxed as GPIO by bootloader */
+               if (!OMAP_MODE_GPIO(omap_mux_read(superset->reg_offset))) {
                        superset++;
                        continue;
                }
-#else
-               /* Skip pins that are not muxed as GPIO by bootloader */
-               if (!OMAP_MODE_GPIO(omap_mux_read(superset->reg_offset))) {
+#endif
+
+#if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS)
+               if (!superset->muxnames || !superset->muxnames[0]) {
                        superset++;
                        continue;
                }
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
index 38c5cad..d37cfa1 100644
--- a/arch/arm/mach-pxa/cm-x300.c
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -154,10 +154,10 @@ static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = {
        GPIO99_GPIO,                    /* Ethernet IRQ */
 
        /* RTC GPIOs */
-       GPIO95_GPIO | MFP_LPM_DRIVE_HIGH,       /* RTC CS */
-       GPIO96_GPIO | MFP_LPM_DRIVE_HIGH,       /* RTC WR */
-       GPIO97_GPIO | MFP_LPM_DRIVE_HIGH,       /* RTC RD */
-       GPIO98_GPIO,                            /* RTC IO */
+       GPIO95_GPIO,                    /* RTC CS */
+       GPIO96_GPIO,                    /* RTC WR */
+       GPIO97_GPIO,                    /* RTC RD */
+       GPIO98_GPIO,                    /* RTC IO */
 
        /* Standard I2C */
        GPIO21_I2C_SCL,
diff --git a/arch/arm/mach-pxa/include/mach/colibri.h 
b/arch/arm/mach-pxa/include/mach/colibri.h
index 5f2ba8d..811743c 100644
--- a/arch/arm/mach-pxa/include/mach/colibri.h
+++ b/arch/arm/mach-pxa/include/mach/colibri.h
@@ -2,7 +2,6 @@
 #define _COLIBRI_H_
 
 #include <net/ax88796.h>
-#include <mach/mfp.h>
 
 /*
  * common settings for all modules
diff --git a/arch/arm/mach-realview/Kconfig b/arch/arm/mach-realview/Kconfig
index b4575ae..ee5e392 100644
--- a/arch/arm/mach-realview/Kconfig
+++ b/arch/arm/mach-realview/Kconfig
@@ -18,7 +18,6 @@ config REALVIEW_EB_ARM11MP
        bool "Support ARM11MPCore tile"
        depends on MACH_REALVIEW_EB
        select CPU_V6
-       select ARCH_HAS_BARRIERS if SMP
        help
          Enable support for the ARM11MPCore tile on the Realview platform.
 
@@ -36,7 +35,6 @@ config MACH_REALVIEW_PB11MP
        select CPU_V6
        select ARM_GIC
        select HAVE_PATA_PLATFORM
-       select ARCH_HAS_BARRIERS if SMP
        help
          Include support for the ARM(R) RealView MPCore Platform Baseboard.
          PB11MPCore is a platform with an on-board ARM11MPCore and has
diff --git a/arch/arm/mach-realview/include/mach/barriers.h 
b/arch/arm/mach-realview/include/mach/barriers.h
deleted file mode 100644
index 0c5d749..0000000
--- a/arch/arm/mach-realview/include/mach/barriers.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Barriers redefined for RealView ARM11MPCore platforms with L220 cache
- * controller to work around hardware errata causing the outer_sync()
- * operation to deadlock the system.
- */
-#define mb()           dsb()
-#define rmb()          dmb()
-#define wmb()          mb()
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index 62820ed..b270d62 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -11,7 +11,6 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/moduleparam.h>
 #include <linux/compiler.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -78,8 +77,6 @@ static unsigned long ai_dword;
 static unsigned long ai_multi;
 static int ai_usermode;
 
-core_param(alignment, ai_usermode, int, 0600);
-
 #define UM_WARN                (1 << 0)
 #define UM_FIXUP       (1 << 1)
 #define UM_SIGNAL      (1 << 2)
diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S
index aa35773..4ba0a24 100644
--- a/arch/arm/mm/cache-v6.S
+++ b/arch/arm/mm/cache-v6.S
@@ -169,7 +169,6 @@ ENDPROC(v6_coherent_kern_range)
  */
 ENTRY(v6_flush_kern_dcache_area)
        add     r1, r0, r1
-       bic     r0, r0, #D_CACHE_LINE_SIZE - 1
 1:
 #ifdef HARVARD_CACHE
        mcr     p15, 0, r0, c7, c14, 1          @ clean & invalidate D line
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
index 5f27f4c..9073db8 100644
--- a/arch/arm/mm/cache-v7.S
+++ b/arch/arm/mm/cache-v7.S
@@ -197,8 +197,6 @@ ENDPROC(v7_coherent_user_range)
 ENTRY(v7_flush_kern_dcache_area)
        dcache_line_size r2, r3
        add     r1, r0, r1
-       sub     r3, r2, #1
-       bic     r0, r0, r3
 1:
        mcr     p15, 0, r0, c7, c14, 1          @ clean & invalidate D line / 
unified line
        add     r0, r0, r2
diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c
index dd9598b..70997d5 100644
--- a/arch/arm/mm/copypage-feroceon.c
+++ b/arch/arm/mm/copypage-feroceon.c
@@ -18,7 +18,7 @@ feroceon_copy_user_page(void *kto, const void *kfrom)
 {
        asm("\
        stmfd   sp!, {r4-r9, lr}                \n\
-       mov     ip, %2                          \n\
+       mov     ip, %0                          \n\
 1:     mov     lr, r1                          \n\
        ldmia   r1!, {r2 - r9}                  \n\
        pld     [lr, #32]                       \n\
@@ -64,7 +64,7 @@ feroceon_copy_user_page(void *kto, const void *kfrom)
        mcr     p15, 0, ip, c7, c10, 4          @ drain WB\n\
        ldmfd   sp!, {r4-r9, pc}"
        :
-       : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE));
+       : "I" (PAGE_SIZE));
 }
 
 void feroceon_copy_user_highpage(struct page *to, struct page *from,
diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c
index 7bc0ac7..9ab0984 100644
--- a/arch/arm/mm/copypage-v4wb.c
+++ b/arch/arm/mm/copypage-v4wb.c
@@ -27,7 +27,7 @@ v4wb_copy_user_page(void *kto, const void *kfrom)
 {
        asm("\
        stmfd   sp!, {r4, lr}                   @ 2\n\
-       mov     r2, %2                          @ 1\n\
+       mov     r2, %0                          @ 1\n\

_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
unionfs-cvs@fsl.cs.sunysb.edu
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to