commit 73886aa084e0c32293a609532b629f813eb42fdd
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Wed Aug 6 18:07:43 2014 +0100

    Linux 3.2.62

commit 73f98b0930b1871bbf515aa4abc2484f2d5095b4
Author: Takao Indoh <indou.takao@jp.fujitsu.com>
Date:   Tue Apr 23 17:35:03 2013 +0900

    iommu/vt-d: Disable translation if already enabled
    
    commit 3a93c841c2b3b14824f7728dd74bd00a1cedb806 upstream.
    
    This patch disables translation(dma-remapping) before its initialization
    if it is already enabled.
    
    This is needed for kexec/kdump boot. If dma-remapping is enabled in the
    first kernel, it need to be disabled before initializing its page table
    during second kernel boot. Wei Hu also reported that this is needed
    when second kernel boots with intel_iommu=off.
    
    Basically iommu->gcmd is used to know whether translation is enabled or
    disabled, but it is always zero at boot time even when translation is
    enabled since iommu->gcmd is initialized without considering such a
    case. Therefor this patch synchronizes iommu->gcmd value with global
    command register when iommu structure is allocated.
    
    Signed-off-by: Takao Indoh <indou.takao@jp.fujitsu.com>
    Signed-off-by: Joerg Roedel <joro@8bytes.org>
    [wyj: Backported to 3.4: adjust context]
    Signed-off-by: Yijing Wang <wangyijing@huawei.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit dc79279294628d41b32e86b2e0e2a850ee67dd95
Author: Sven Wegener <sven.wegener@stealer.net>
Date:   Tue Jul 22 10:26:06 2014 +0200

    x86_32, entry: Store badsys error code in %eax
    
    commit 8142b215501f8b291a108a202b3a053a265b03dd upstream.
    
    Commit 554086d ("x86_32, entry: Do syscall exit work on badsys
    (CVE-2014-4508)") introduced a regression in the x86_32 syscall entry
    code, resulting in syscall() not returning proper errors for undefined
    syscalls on CPUs supporting the sysenter feature.
    
    The following code:
    
    > int result = syscall(666);
    > printf("result=%d errno=%d error=%s\n", result, errno, strerror(errno));
    
    results in:
    
    > result=666 errno=0 error=Success
    
    Obviously, the syscall return value is the called syscall number, but it
    should have been an ENOSYS error. When run under ptrace it behaves
    correctly, which makes it hard to debug in the wild:
    
    > result=-1 errno=38 error=Function not implemented
    
    The %eax register is the return value register. For debugging via ptrace
    the syscall entry code stores the complete register context on the
    stack. The badsys handlers only store the ENOSYS error code in the
    ptrace register set and do not set %eax like a regular syscall handler
    would. The old resume_userspace call chain contains code that clobbers
    %eax and it restores %eax from the ptrace registers afterwards. The same
    goes for the ptrace-enabled call chain. When ptrace is not used, the
    syscall return value is the passed-in syscall number from the untouched
    %eax register.
    
    Use %eax as the return value register in syscall_badsys and
    sysenter_badsys, like a real syscall handler does, and have the caller
    push the value onto the stack for ptrace access.
    
    Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
    Link: http://lkml.kernel.org/r/alpine.LNX.2.11.1407221022380.31021@titan.int.lan.stealer.net
    Reviewed-and-tested-by: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e0747c72fec37e019efffb52fc23b69457cebd27
Author: Tejun Heo <tj@kernel.org>
Date:   Wed Jul 23 09:05:27 2014 -0400

    libata: introduce ata_host->n_tags to avoid oops on SAS controllers
    
    commit 1a112d10f03e83fb3a2fdc4c9165865dec8a3ca6 upstream.
    
    1871ee134b73 ("libata: support the ata host which implements a queue
    depth less than 32") directly used ata_port->scsi_host->can_queue from
    ata_qc_new() to determine the number of tags supported by the host;
    unfortunately, SAS controllers doing SATA don't initialize ->scsi_host
    leading to the following oops.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
     IP: [<ffffffff814e0618>] ata_qc_new_init+0x188/0x1b0
     PGD 0
     Oops: 0002 [#1] SMP
     Modules linked in: isci libsas scsi_transport_sas mgag200 drm_kms_helper ttm
     CPU: 1 PID: 518 Comm: udevd Not tainted 3.16.0-rc6+ #62
     Hardware name: Intel Corporation S2600CO/S2600CO, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013
     task: ffff880c1a00b280 ti: ffff88061a000000 task.ti: ffff88061a000000
     RIP: 0010:[<ffffffff814e0618>]  [<ffffffff814e0618>] ata_qc_new_init+0x188/0x1b0
     RSP: 0018:ffff88061a003ae8  EFLAGS: 00010012
     RAX: 0000000000000001 RBX: ffff88000241ca80 RCX: 00000000000000fa
     RDX: 0000000000000020 RSI: 0000000000000020 RDI: ffff8806194aa298
     RBP: ffff88061a003ae8 R08: ffff8806194a8000 R09: 0000000000000000
     R10: 0000000000000000 R11: ffff88000241ca80 R12: ffff88061ad58200
     R13: ffff8806194aa298 R14: ffffffff814e67a0 R15: ffff8806194a8000
     FS:  00007f3ad7fe3840(0000) GS:ffff880627620000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000058 CR3: 000000061a118000 CR4: 00000000001407e0
     Stack:
      ffff88061a003b20 ffffffff814e96e1 ffff88000241ca80 ffff88061ad58200
      ffff8800b6bf6000 ffff880c1c988000 ffff880619903850 ffff88061a003b68
      ffffffffa0056ce1 ffff88061a003b48 0000000013d6e6f8 ffff88000241ca80
     Call Trace:
      [<ffffffff814e96e1>] ata_sas_queuecmd+0xa1/0x430
      [<ffffffffa0056ce1>] sas_queuecommand+0x191/0x220 [libsas]
      [<ffffffff8149afee>] scsi_dispatch_cmd+0x10e/0x300
      [<ffffffff814a3bc5>] scsi_request_fn+0x2f5/0x550
      [<ffffffff81317613>] __blk_run_queue+0x33/0x40
      [<ffffffff8131781a>] queue_unplugged+0x2a/0x90
      [<ffffffff8131ceb4>] blk_flush_plug_list+0x1b4/0x210
      [<ffffffff8131d274>] blk_finish_plug+0x14/0x50
      [<ffffffff8117eaa8>] __do_page_cache_readahead+0x198/0x1f0
      [<ffffffff8117ee21>] force_page_cache_readahead+0x31/0x50
      [<ffffffff8117ee7e>] page_cache_sync_readahead+0x3e/0x50
      [<ffffffff81172ac6>] generic_file_read_iter+0x496/0x5a0
      [<ffffffff81219897>] blkdev_read_iter+0x37/0x40
      [<ffffffff811e307e>] new_sync_read+0x7e/0xb0
      [<ffffffff811e3734>] vfs_read+0x94/0x170
      [<ffffffff811e43c6>] SyS_read+0x46/0xb0
      [<ffffffff811e33d1>] ? SyS_lseek+0x91/0xb0
      [<ffffffff8171ee29>] system_call_fastpath+0x16/0x1b
     Code: 00 00 00 88 50 29 83 7f 08 01 19 d2 83 e2 f0 83 ea 50 88 50 34 c6 81 1d 02 00 00 40 c6 81 17 02 00 00 00 5d c3 66 0f 1f 44 00 00 <89> 14 25 58 00 00 00
    
    Fix it by introducing ata_host->n_tags which is initialized to
    ATA_MAX_QUEUE - 1 in ata_host_init() for SAS controllers and set to
    scsi_host_template->can_queue in ata_host_register() for !SAS ones.
    As SAS hosts are never registered, this will give them the same
    ATA_MAX_QUEUE - 1 as before.  Note that we can't use
    scsi_host->can_queue directly for SAS hosts anyway as they can go
    higher than the libata maximum.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Mike Qiu <qiudayu@linux.vnet.ibm.com>
    Reported-by: Jesse Brandeburg <jesse.brandeburg@gmail.com>
    Reported-by: Peter Hurley <peter@hurleysoftware.com>
    Reported-by: Peter Zijlstra <peterz@infradead.org>
    Tested-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Fixes: 1871ee134b73 ("libata: support the ata host which implements a queue depth less than 32")
    Cc: Kevin Hao <haokexin@gmail.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 078890ca21d7e9414ea4b948bbe0e28cb1ab640c
Author: Kevin Hao <haokexin@gmail.com>
Date:   Sat Jul 12 12:08:24 2014 +0800

    libata: support the ata host which implements a queue depth less than 32
    
    commit 1871ee134b73fb4cadab75752a7152ed2813c751 upstream.
    
    The sata on fsl mpc8315e is broken after the commit 8a4aeec8d2d6
    ("libata/ahci: accommodate tag ordered controllers"). The reason is
    that the ata controller on this SoC only implement a queue depth of
    16. When issuing the commands in tag order, all the commands in tag
    16 ~ 31 are mapped to tag 0 unconditionally and then causes the sata
    malfunction. It makes no senses to use a 32 queue in software while
    the hardware has less queue depth. So consider the queue depth
    implemented by the hardware when requesting a command tag.
    
    Fixes: 8a4aeec8d2d6 ("libata/ahci: accommodate tag ordered controllers")
    Signed-off-by: Kevin Hao <haokexin@gmail.com>
    Acked-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit dc47dfd2bdcd9d46fc80c0fc48cd70274b464f60
Author: Catalin Marinas <catalin.marinas@arm.com>
Date:   Tue Nov 12 15:07:45 2013 -0800

    mm: kmemleak: avoid false negatives on vmalloc'ed objects
    
    commit 7f88f88f83ed609650a01b18572e605ea50cd163 upstream.
    
    Commit 248ac0e1943a ("mm/vmalloc: remove guard page from between vmap
    blocks") had the side effect of making vmap_area.va_end member point to
    the next vmap_area.va_start.  This was creating an artificial reference
    to vmalloc'ed objects and kmemleak was rarely reporting vmalloc() leaks.
    
    This patch marks the vmap_area containing pointers explicitly and
    reduces the min ref_count to 2 as vm_struct still contains a reference
    to the vmalloc'ed object.  The kmemleak add_scan_area() function has
    been improved to allow a SIZE_MAX argument covering the rest of the
    object (for simpler calling sites).
    
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b11597b7041b76aa25855db6028fad853201c54e
Author: Xi Wang <xi.wang@gmail.com>
Date:   Thu May 31 16:26:04 2012 -0700

    introduce SIZE_MAX
    
    commit a3860c1c5dd1137db23d7786d284939c5761d517 upstream.
    
    ULONG_MAX is often used to check for integer overflow when calculating
    allocation size.  While ULONG_MAX happens to work on most systems, there
    is no guarantee that `size_t' must be the same size as `long'.
    
    This patch introduces SIZE_MAX, the maximum value of `size_t', to improve
    portability and readability for allocation size validation.
    
    Signed-off-by: Xi Wang <xi.wang@gmail.com>
    Acked-by: Alex Elder <elder@dreamhost.com>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Pekka Enberg <penberg@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ce4ded58d4b5869153cf5fde839161dff974cf94
Author: Xi Wang <xi.wang@gmail.com>
Date:   Thu Feb 16 11:56:29 2012 -0500

    ceph: fix overflow check in build_snap_context()
    
    commit 80834312a4da1405a9bc788313c67643de6fcb4c upstream.
    
    The overflow check for a + n * b should be (n > (ULONG_MAX - a) / b),
    rather than (n > ULONG_MAX / b - a).
    
    Signed-off-by: Xi Wang <xi.wang@gmail.com>
    Signed-off-by: Sage Weil <sage@newdream.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2c58922a118fd60866a28ef23dca495f225e9369
Author: Nicolas Pitre <nicolas.pitre@linaro.org>
Date:   Tue Mar 12 13:00:42 2013 +0100

    ARM: 7670/1: fix the memset fix
    
    commit 418df63adac56841ef6b0f1fcf435bc64d4ed177 upstream.
    
    Commit 455bd4c430b0 ("ARM: 7668/1: fix memset-related crashes caused by
    recent GCC (4.7.2) optimizations") attempted to fix a compliance issue
    with the memset return value.  However the memset itself became broken
    by that patch for misaligned pointers.
    
    This fixes the above by branching over the entry code from the
    misaligned fixup code to avoid reloading the original pointer.
    
    Also, because the function entry alignment is wrong in the Thumb mode
    compilation, that fixup code is moved to the end.
    
    While at it, the entry instructions are slightly reworked to help dual
    issue pipelines.
    
    Signed-off-by: Nicolas Pitre <nico@linaro.org>
    Tested-by: Alexander Holler <holler@ahsoftware.de>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fe7b4c337f38e0755da2c19e8c4eb4123b1155da
Author: Ivan Djelic <ivan.djelic@parrot.com>
Date:   Wed Mar 6 20:09:27 2013 +0100

    ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations
    
    commit 455bd4c430b0c0a361f38e8658a0d6cb469942b5 upstream.
    
    Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on
    assumptions about the implementation of memset and similar functions.
    The current ARM optimized memset code does not return the value of
    its first argument, as is usually expected from standard implementations.
    
    For instance in the following function:
    
    void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
    {
    	memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter));
    	waiter->magic = waiter;
    	INIT_LIST_HEAD(&waiter->list);
    }
    
    compiled as:
    
    800554d0 <debug_mutex_lock_common>:
    800554d0:       e92d4008        push    {r3, lr}
    800554d4:       e1a00001        mov     r0, r1
    800554d8:       e3a02010        mov     r2, #16 ; 0x10
    800554dc:       e3a01011        mov     r1, #17 ; 0x11
    800554e0:       eb04426e        bl      80165ea0 <memset>
    800554e4:       e1a03000        mov     r3, r0
    800554e8:       e583000c        str     r0, [r3, #12]
    800554ec:       e5830000        str     r0, [r3]
    800554f0:       e5830004        str     r0, [r3, #4]
    800554f4:       e8bd8008        pop     {r3, pc}
    
    GCC assumes memset returns the value of pointer 'waiter' in register r0; causing
    register/memory corruptions.
    
    This patch fixes the return value of the assembly version of memset.
    It adds a 'mov' instruction and merges an additional load+store into
    existing load/store instructions.
    For ease of review, here is a breakdown of the patch into 4 simple steps:
    
    Step 1
    ======
    Perform the following substitutions:
    ip -> r8, then
    r0 -> ip,
    and insert 'mov ip, r0' as the first statement of the function.
    At this point, we have a memset() implementation returning the proper result,
    but corrupting r8 on some paths (the ones that were using ip).
    
    Step 2
    ======
    Make sure r8 is saved and restored when (! CALGN(1)+0) == 1:
    
    save r8:
    -       str     lr, [sp, #-4]!
    +       stmfd   sp!, {r8, lr}
    
    and restore r8 on both exit paths:
    -       ldmeqfd sp!, {pc}               @ Now <64 bytes to go.
    +       ldmeqfd sp!, {r8, pc}           @ Now <64 bytes to go.
    (...)
            tst     r2, #16
            stmneia ip!, {r1, r3, r8, lr}
    -       ldr     lr, [sp], #4
    +       ldmfd   sp!, {r8, lr}
    
    Step 3
    ======
    Make sure r8 is saved and restored when (! CALGN(1)+0) == 0:
    
    save r8:
    -       stmfd   sp!, {r4-r7, lr}
    +       stmfd   sp!, {r4-r8, lr}
    
    and restore r8 on both exit paths:
            bgt     3b
    -       ldmeqfd sp!, {r4-r7, pc}
    +       ldmeqfd sp!, {r4-r8, pc}
    (...)
            tst     r2, #16
            stmneia ip!, {r4-r7}
    -       ldmfd   sp!, {r4-r7, lr}
    +       ldmfd   sp!, {r4-r8, lr}
    
    Step 4
    ======
    Rewrite register list "r4-r7, r8" as "r4-r8".
    
    Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com>
    Reviewed-by: Nicolas Pitre <nico@linaro.org>
    Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e6a5e9f6d4d953200020af65324d5c8b5adcb3fd
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Wed Jul 23 14:00:19 2014 -0700

    mm: hugetlb: fix copy_hugetlb_page_range()
    
    commit 0253d634e0803a8376a0d88efee0bf523d8673f9 upstream.
    
    Commit 4a705fef9862 ("hugetlb: fix copy_hugetlb_page_range() to handle
    migration/hwpoisoned entry") changed the order of
    huge_ptep_set_wrprotect() and huge_ptep_get(), which leads to breakage
    in some workloads like hugepage-backed heap allocation via libhugetlbfs.
    This patch fixes it.
    
    The test program for the problem is shown below:
    
      $ cat heap.c
      #include <unistd.h>
      #include <stdlib.h>
      #include <string.h>
    
      #define HPS 0x200000
    
      int main() {
      	int i;
      	char *p = malloc(HPS);
      	memset(p, '1', HPS);
      	for (i = 0; i < 5; i++) {
      		if (!fork()) {
      			memset(p, '2', HPS);
      			p = malloc(HPS);
      			memset(p, '3', HPS);
      			free(p);
      			return 0;
      		}
      	}
      	sleep(1);
      	free(p);
      	return 0;
      }
    
      $ export HUGETLB_MORECORE=yes ; export HUGETLB_NO_PREFAULT= ; hugectl --heap ./heap
    
    Fixes 4a705fef9862 ("hugetlb: fix copy_hugetlb_page_range() to handle
    migration/hwpoisoned entry"), so is applicable to -stable kernels which
    include it.
    
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reported-by: Guillaume Morin <guillaume@morinfr.org>
    Suggested-by: Guillaume Morin <guillaume@morinfr.org>
    Acked-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6156e7c07341b2b99e75a0d02d3c4fd6beda2ebe
Author: Markus F.X.J. Oberhumer <markus@oberhumer.com>
Date:   Sun Oct 14 15:39:04 2012 +0200

    crypto: testmgr - update LZO compression test vectors
    
    commit 0ec7382036922be063b515b2a3f1d6f7a607392c upstream.
    
    Update the LZO compression test vectors according to the latest compressor
    version.
    
    Signed-off-by: Markus F.X.J. Oberhumer <markus@oberhumer.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 25cc3a3e96212b82c5e079e115857da49a1ccc47
Author: Julian Anastasov <ja@ssi.bg>
Date:   Wed Jul 16 10:26:47 2014 +0200

    ipvs: stop tot_stats estimator only under CONFIG_SYSCTL
    
    [ Upstream commit 9802d21e7a0b0d2167ef745edc1f4ea7a0fc6ea3 ]
    
    The tot_stats estimator is started only when CONFIG_SYSCTL
    is defined. But it is stopped without checking CONFIG_SYSCTL.
    Fix the crash by moving ip_vs_stop_estimator into
    ip_vs_control_net_cleanup_sysctl.
    
    The change is needed after commit 14e405461e664b
    ("IPVS: Add __ip_vs_control_{init,cleanup}_sysctl()") from 2.6.39.
    
    Reported-by: Jet Chen <jet.chen@intel.com>
    Tested-by: Jet Chen <jet.chen@intel.com>
    Signed-off-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b3ff28673cb1aec4ca72b79b3bac7da5822c20c8
Author: Roland Dreier <roland@purestorage.com>
Date:   Fri May 2 11:18:41 2014 -0700

    x86, ioremap: Speed up check for RAM pages
    
    commit c81c8a1eeede61e92a15103748c23d100880cc8a upstream.
    
    In __ioremap_caller() (the guts of ioremap), we loop over the range of
    pfns being remapped and checks each one individually with page_is_ram().
    For large ioremaps, this can be very slow.  For example, we have a
    device with a 256 GiB PCI BAR, and ioremapping this BAR can take 20+
    seconds -- sometimes long enough to trigger the soft lockup detector!
    
    Internally, page_is_ram() calls walk_system_ram_range() on a single
    page.  Instead, we can make a single call to walk_system_ram_range()
    from __ioremap_caller(), and do our further checks only for any RAM
    pages that we find.  For the common case of MMIO, this saves an enormous
    amount of work, since the range being ioremapped doesn't intersect
    system RAM at all.
    
    With this change, ioremap on our 256 GiB BAR takes less than 1 second.
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Link: http://lkml.kernel.org/r/1399054721-1331-1-git-send-email-roland@kernel.org
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 30b605d63c147f6cd37bdd15164e8ec34d5d94b2
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Apr 8 21:52:05 2014 -0400

    sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue
    
    commit fd1232b214af43a973443aec6a2808f16ee5bf70 upstream.
    
    This patch fixes I/O errors with the sym53c8xx_2 driver when the disk
    returns QUEUE FULL status.
    
    When the controller encounters an error (including QUEUE FULL or BUSY
    status), it aborts all not yet submitted requests in the function
    sym_dequeue_from_squeue.
    
    This function aborts them with DID_SOFT_ERROR.
    
    If the disk has full tag queue, the request that caused the overflow is
    aborted with QUEUE FULL status (and the scsi midlayer properly retries
    it until it is accepted by the disk), but the sym53c8xx_2 driver aborts
    the following requests with DID_SOFT_ERROR --- for them, the midlayer
    does just a few retries and then signals the error up to sd.
    
    The result is that disk returning QUEUE FULL causes request failures.
    
    The error was reproduced on 53c895 with COMPAQ BD03685A24 disk
    (rebranded ST336607LC) with command queue 48 or 64 tags.  The disk has
    64 tags, but under some access patterns it return QUEUE FULL when there
    are less than 64 pending tags.  The SCSI specification allows returning
    QUEUE FULL anytime and it is up to the host to retry.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: Matthew Wilcox <matthew@wil.cx>
    Cc: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 12489e9cb91ea91513cb991dadd1b1b9c9e4cc3e
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri May 9 14:59:16 2014 +0300

    applicom: dereferencing NULL on error path
    
    commit 8bab797c6e5724a43b7666ad70860712365cdb71 upstream.
    
    This is a static checker fix.  The "dev" variable is always NULL after
    the while statement so we would be dereferencing a NULL pointer here.
    
    Fixes: 819a3eba4233 ('[PATCH] applicom: fix error handling')
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6806fa8b6795aba9be8742a8f598f60eed26f875
Author: H. Peter Anvin <hpa@linux.intel.com>
Date:   Wed Apr 30 14:03:25 2014 -0700

    x86-32, espfix: Remove filter for espfix32 due to race
    
    commit 246f2d2ee1d715e1077fc47d61c394569c8ee692 upstream.
    
    It is not safe to use LAR to filter when to go down the espfix path,
    because the LDT is per-process (rather than per-thread) and another
    thread might change the descriptors behind our back.  Fortunately it
    is always *safe* (if a bit slow) to go down the espfix path, and a
    32-bit LDT stack segment is extremely rare.
    
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1280d20457d89a4254842592dc5d53af30055a20
Author: Jiang Liu <liuj97@gmail.com>
Date:   Wed Jul 3 15:03:37 2013 -0700

    score: normalize global variables exported by vmlinux.lds
    
    commit ae49b83dcacfb69e22092cab688c415c2f2d870c upstream.
    
    Generate mandatory global variables _sdata in file vmlinux.lds.
    
    Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
    Cc: Chen Liqin <liqin.chen@sunplusct.com>
    Cc: Lennox Wu <lennox.wu@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1df72e0db666f088e5077ab44c998624a97ab361
Author: Michael Cree <mcree@orcon.net.nz>
Date:   Wed Nov 30 08:01:40 2011 -0500

    alpha: add io{read,write}{16,32}be functions
    
    commit 25534eb7707821b796fd84f7115367e02f36aa60 upstream.
    
    These functions are used in some PCI drivers with big-endian
    MMIO space.
    
    Admittedly it is almost certain that no one this side of the
    Moon would use such a card in an Alpha but it does get us
    closer to being able to build allyesconfig or allmodconfig,
    and it enables the Debian default generic config to build.
    
    Tested-by: Raúl Porcel <armin76@gentoo.org>
    Signed-off-by: Michael Cree <mcree@orcon.net.nz>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 951c03ac6f73eda3b6ae41ffe8c4a603d0a3b3af
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Aug 3 17:45:10 2014 +0100

    score: Add missing #include <linux/export.h>
    
    There is no upstream commit for this, as arch/score/kernel/init_task.c
    has been replaced by generic code and <linux/export.h> is included
    indirectly by arch/score/mm/init.c.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ef2706a9cce75d71717dd659e36aed3dc3aa54ef
Author: Lennox Wu <lennox.wu@gmail.com>
Date:   Sat Sep 14 13:48:37 2013 +0800

    Score: The commit is for compiling successfully. The modifications include: 1. Kconfig of Score: we don't support ioremap 2. Missed headfile including 3. There are some errors in other people's commit not checked by us, we fix it now 3.1 arch/score/kernel/entry.S: wrong instructions 3.2 arch/score/kernel/process.c : just some typos
    
    commit 5fbbf8a1a93452b26e7791cf32cefce62b0a480b upstream.
    
    	Signed-off-by: Lennox Wu <lennox.wu@gmail.com>
    [bwh: Backported to 3.2:
     - Drop addition of 'select HAVE_GENERIC_HARDIRQS' which was not removed here
     - Drop inapplicale change to copy_thread()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3e1ad261d12d7dd61851fe1dd1916aa6b82ee4e1
Author: Fengguang Wu <fengguang.wu@intel.com>
Date:   Thu Oct 4 17:11:23 2012 -0700

    unicore32: select generic atomic64_t support
    
    commit 82e54a6aaf8aec971fb16afa3a4404e238a1b98b upstream.
    
    It's required for the core fs/namespace.c and many other basic features.
    
    Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
    Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 86e9370819ecf98cb8598df1f0e04a375eae07b9
Author: Guan Xuetao <gxt@mprc.pku.edu.cn>
Date:   Thu Aug 18 15:38:05 2011 +0800

    unicore32: add ioremap_nocache definition
    
    commit a50e4213e71adc7dde0d514aabd8af7275fee39f upstream.
    
    Bugfix for following error messages:
    lib/iomap.c: In function 'pci_iomap':
    lib/iomap.c:274: error: implicit declaration of function 'ioremap_nocache'
    lib/iomap.c:274: warning: return makes pointer from integer without a cast
    
    Also see commit <f1ecc69838a2d7c8a3e1909f637d4083c071777d>
      it will hide the ioremap_nocache function for systems with an MMU
    
    Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Jonas Bonn <jonas@southpole.se>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a98831159b69223a0429e9de5ccf4a10372241be
Author: Hugh Dickins <hughd@google.com>
Date:   Wed Jul 23 14:00:13 2014 -0700

    shmem: fix splicing from a hole while it's punched
    
    commit b1a366500bd537b50c3aad26dc7df083ec03a448 upstream.
    
    shmem_fault() is the actual culprit in trinity's hole-punch starvation,
    and the most significant cause of such problems: since a page faulted is
    one that then appears page_mapped(), needing unmap_mapping_range() and
    i_mmap_mutex to be unmapped again.
    
    But it is not the only way in which a page can be brought into a hole in
    the radix_tree while that hole is being punched; and Vlastimil's testing
    implies that if enough other processors are busy filling in the hole,
    then shmem_undo_range() can be kept from completing indefinitely.
    
    shmem_file_splice_read() is the main other user of SGP_CACHE, which can
    instantiate shmem pagecache pages in the read-only case (without holding
    i_mutex, so perhaps concurrently with a hole-punch).  Probably it's
    silly not to use SGP_READ already (using the ZERO_PAGE for holes): which
    ought to be safe, but might bring surprises - not a change to be rushed.
    
    shmem_read_mapping_page_gfp() is an internal interface used by
    drivers/gpu/drm GEM (and next by uprobes): it should be okay.  And
    shmem_file_read_iter() uses the SGP_DIRTY variant of SGP_CACHE, when
    called internally by the kernel (perhaps for a stacking filesystem,
    which might rely on holes to be reserved): it's unclear whether it could
    be provoked to keep hole-punch busy or not.
    
    We could apply the same umbrella as now used in shmem_fault() to
    shmem_file_splice_read() and the others; but it looks ugly, and use over
    a range raises questions - should it actually be per page? can these get
    starved themselves?
    
    The origin of this part of the problem is my v3.1 commit d0823576bf4b
    ("mm: pincer in truncate_inode_pages_range"), once it was duplicated
    into shmem.c.  It seemed like a nice idea at the time, to ensure
    (barring RCU lookup fuzziness) that there's an instant when the entire
    hole is empty; but the indefinitely repeated scans to ensure that make
    it vulnerable.
    
    Revert that "enhancement" to hole-punch from shmem_undo_range(), but
    retain the unproblematic rescanning when it's truncating; add a couple
    of comments there.
    
    Remove the "indices[0] >= end" test: that is now handled satisfactorily
    by the inner loop, and mem_cgroup_uncharge_start()/end() are too light
    to be worth avoiding here.
    
    But if we do not always loop indefinitely, we do need to handle the case
    of swap swizzled back to page before shmem_free_swap() gets it: add a
    retry for that case, as suggested by Konstantin Khlebnikov; and for the
    case of page swizzled back to swap, as suggested by Johannes Weiner.
    
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Suggested-by: Vlastimil Babka <vbabka@suse.cz>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Lukas Czerner <lczerner@redhat.com>
    Cc: Dave Jones <davej@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit de21fd427379d404b10a6a4b4563fd38fbbb1db0
Author: Hugh Dickins <hughd@google.com>
Date:   Wed Jul 23 14:00:10 2014 -0700

    shmem: fix faulting into a hole, not taking i_mutex
    
    commit 8e205f779d1443a94b5ae81aa359cb535dd3021e upstream.
    
    Commit f00cdc6df7d7 ("shmem: fix faulting into a hole while it's
    punched") was buggy: Sasha sent a lockdep report to remind us that
    grabbing i_mutex in the fault path is a no-no (write syscall may already
    hold i_mutex while faulting user buffer).
    
    We tried a completely different approach (see following patch) but that
    proved inadequate: good enough for a rational workload, but not good
    enough against trinity - which forks off so many mappings of the object
    that contention on i_mmap_mutex while hole-puncher holds i_mutex builds
    into serious starvation when concurrent faults force the puncher to fall
    back to single-page unmap_mapping_range() searches of the i_mmap tree.
    
    So return to the original umbrella approach, but keep away from i_mutex
    this time.  We really don't want to bloat every shmem inode with a new
    mutex or completion, just to protect this unlikely case from trinity.
    So extend the original with wait_queue_head on stack at the hole-punch
    end, and wait_queue item on the stack at the fault end.
    
    This involves further use of i_lock to guard against the races: lockdep
    has been happy so far, and I see fs/inode.c:unlock_new_inode() holds
    i_lock around wake_up_bit(), which is comparable to what we do here.
    i_lock is more convenient, but we could switch to shmem's info->lock.
    
    This issue has been tagged with CVE-2014-4171, which will require commit
    f00cdc6df7d7 and this and the following patch to be backported: we
    suggest to 3.1+, though in fact the trinity forkbomb effect might go
    back as far as 2.6.16, when madvise(,,MADV_REMOVE) came in - or might
    not, since much has changed, with i_mmap_mutex a spinlock before 3.0.
    Anyone running trinity on 3.0 and earlier? I don't think we need care.
    
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Tested-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Lukas Czerner <lczerner@redhat.com>
    Cc: Dave Jones <davej@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f159cc257190477cece829606cfb879612f52f2c
Author: Hugh Dickins <hughd@google.com>
Date:   Mon Jun 23 13:22:06 2014 -0700

    shmem: fix faulting into a hole while it's punched
    
    commit f00cdc6df7d7cfcabb5b740911e6788cb0802bdb upstream.
    
    Trinity finds that mmap access to a hole while it's punched from shmem
    can prevent the madvise(MADV_REMOVE) or fallocate(FALLOC_FL_PUNCH_HOLE)
    from completing, until the reader chooses to stop; with the puncher's
    hold on i_mutex locking out all other writers until it can complete.
    
    It appears that the tmpfs fault path is too light in comparison with its
    hole-punching path, lacking an i_data_sem to obstruct it; but we don't
    want to slow down the common case.
    
    Extend shmem_fallocate()'s existing range notification mechanism, so
    shmem_fault() can refrain from faulting pages into the hole while it's
    punched, waiting instead on i_mutex (when safe to sleep; or repeatedly
    faulting when not).
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Tested-by: Sasha Levin <sasha.levin@oracle.com>
    Cc: Dave Jones <davej@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d9892580a2f3aa0d369fcec9bd50fd75ecc57dcc
Author: Dave Chinner <dchinner@redhat.com>
Date:   Thu Jul 12 07:40:42 2012 +1000

    xfs: really fix the cursor leak in xfs_alloc_ag_vextent_near
    
    commit e3a746f5aab71f2dd0a83116772922fb37ae29d6 upstream.
    
    The current cursor is reallocated when retrying the allocation, so
    the existing cursor needs to be destroyed in both the restart and
    the failure cases.
    
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Tested-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Ben Myers <bpm@sgi.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 381687bd230ca824df7a70aa1f8fa3a4345ee6e2
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Jun 12 14:20:26 2012 +1000

    xfs: fix allocbt cursor leak in xfs_alloc_ag_vextent_near
    
    commit 76d095388b040229ea1aad7dea45be0cfa20f589 upstream.
    
    When we fail to find an matching extent near the requested extent
    specification during a left-right distance search in
    xfs_alloc_ag_vextent_near, we fail to free the original cursor that
    we used to look up the XFS_BTNUM_CNT tree and hence leak it.
    
    Reported-by: Chris J Arges <chris.j.arges@canonical.com>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Ben Myers <bpm@sgi.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0368fea2438c346e753aa37606688c421ba11c4b
Author: Mathias Krause <minipli@googlemail.com>
Date:   Mon Sep 30 22:05:08 2013 +0200

    netfilter: ipt_ULOG: fix info leaks
    
    commit 278f2b3e2af5f32ea1afe34fa12a2518153e6e49 upstream.
    
    The ulog messages leak heap bytes by the means of padding bytes and
    incompletely filled string arrays. Fix those by memset(0)'ing the
    whole struct before filling it.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 438127dd5b66029f904e96900d0f90b1c5a80bf9
Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
Date:   Mon Jun 23 14:43:06 2014 +0200

    s390/ptrace: fix PSW mask check
    
    commit dab6cf55f81a6e16b8147aed9a843e1691dcd318 upstream.
    
    The PSW mask check of the PTRACE_POKEUSR_AREA command is incorrect.
    For the default user_mode=home address space layout the psw_user_bits
    variable has the home space address-space-control bits set. But the
    PSW_MASK_USER contains PSW_MASK_ASC, the ptrace validity check for the
    PSW mask will therefore always fail.
    
    Fixes CVE-2014-3534
    
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c4b4c3c5f8e6cbd1c0626a80b2ca8cd33aa0e50a
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Nov 29 12:18:13 2013 +0100

    nohz: Fix another inconsistency between CONFIG_NO_HZ=n and nohz=off
    
    commit 0e576acbc1d9600cf2d9b4a141a2554639959d50 upstream.
    
    If CONFIG_NO_HZ=n tick_nohz_get_sleep_length() returns NSEC_PER_SEC/HZ.
    
    If CONFIG_NO_HZ=y and the nohz functionality is disabled via the
    command line option "nohz=off" or not enabled due to missing hardware
    support, then tick_nohz_get_sleep_length() returns 0. That happens
    because ts->sleep_length is never set in that case.
    
    Set it to NSEC_PER_SEC/HZ when the NOHZ mode is inactive.
    
    Reported-by: Michal Hocko <mhocko@suse.cz>
    Reported-by: Borislav Petkov <bp@alien8.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ea43a736ef5810a2ff1755771cc00c367805b5bf
Author: Michal Schmidt <mschmidt@redhat.com>
Date:   Wed May 28 14:15:19 2014 +0200

    rtnetlink: fix userspace API breakage for iproute2 < v3.9.0
    
    commit e5eca6d41f53db48edd8cf88a3f59d2c30227f8e upstream.
    
    When running RHEL6 userspace on a current upstream kernel, "ip link"
    fails to show VF information.
    
    The reason is a kernel<->userspace API change introduced by commit
    88c5b5ce5cb57 ("rtnetlink: Call nlmsg_parse() with correct header length"),
    after which the kernel does not see iproute2's IFLA_EXT_MASK attribute
    in the netlink request.
    
    iproute2 adjusted for the API change in its commit 63338dca4513
    ("libnetlink: Use ifinfomsg instead of rtgenmsg in rtnl_wilddump_req_filter").
    
    The problem has been noticed before:
    http://marc.info/?l=linux-netdev&m=136692296022182&w=2
    (Subject: Re: getting VF link info seems to be broken in 3.9-rc8)
    
    We can do better than tell those with old userspace to upgrade. We can
    recognize the old iproute2 in the kernel by checking the netlink message
    length. Even when including the IFLA_EXT_MASK attribute, its netlink
    message is shorter than struct ifinfomsg.
    
    With this patch "ip link" shows VF information in both old and new
    iproute2 versions.
    
    Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 223105654ef9efb8c040cfb91e03ce1a8de69dd0
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Jul 21 07:17:42 2014 +0200

    ipv4: fix buffer overflow in ip_options_compile()
    
    [ Upstream commit 10ec9472f05b45c94db3c854d22581a20b97db41 ]
    
    There is a benign buffer overflow in ip_options_compile spotted by
    AddressSanitizer[1] :
    
    Its benign because we always can access one extra byte in skb->head
    (because header is followed by struct skb_shared_info), and in this case
    this byte is not even used.
    
    [28504.910798] ==================================================================
    [28504.912046] AddressSanitizer: heap-buffer-overflow in ip_options_compile
    [28504.913170] Read of size 1 by thread T15843:
    [28504.914026]  [<ffffffff81802f91>] ip_options_compile+0x121/0x9c0
    [28504.915394]  [<ffffffff81804a0d>] ip_options_get_from_user+0xad/0x120
    [28504.916843]  [<ffffffff8180dedf>] do_ip_setsockopt.isra.15+0x8df/0x1630
    [28504.918175]  [<ffffffff8180ec60>] ip_setsockopt+0x30/0xa0
    [28504.919490]  [<ffffffff8181e59b>] tcp_setsockopt+0x5b/0x90
    [28504.920835]  [<ffffffff8177462f>] sock_common_setsockopt+0x5f/0x70
    [28504.922208]  [<ffffffff817729c2>] SyS_setsockopt+0xa2/0x140
    [28504.923459]  [<ffffffff818cfb69>] system_call_fastpath+0x16/0x1b
    [28504.924722]
    [28504.925106] Allocated by thread T15843:
    [28504.925815]  [<ffffffff81804995>] ip_options_get_from_user+0x35/0x120
    [28504.926884]  [<ffffffff8180dedf>] do_ip_setsockopt.isra.15+0x8df/0x1630
    [28504.927975]  [<ffffffff8180ec60>] ip_setsockopt+0x30/0xa0
    [28504.929175]  [<ffffffff8181e59b>] tcp_setsockopt+0x5b/0x90
    [28504.930400]  [<ffffffff8177462f>] sock_common_setsockopt+0x5f/0x70
    [28504.931677]  [<ffffffff817729c2>] SyS_setsockopt+0xa2/0x140
    [28504.932851]  [<ffffffff818cfb69>] system_call_fastpath+0x16/0x1b
    [28504.934018]
    [28504.934377] The buggy address ffff880026382828 is located 0 bytes to the right
    [28504.934377]  of 40-byte region [ffff880026382800, ffff880026382828)
    [28504.937144]
    [28504.937474] Memory state around the buggy address:
    [28504.938430]  ffff880026382300: ........ rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.939884]  ffff880026382400: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.941294]  ffff880026382500: .....rrr rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.942504]  ffff880026382600: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.943483]  ffff880026382700: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.944511] >ffff880026382800: .....rrr rrrrrrrr rrrrrrrr rrrrrrrr
    [28504.945573]                         ^
    [28504.946277]  ffff880026382900: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.094949]  ffff880026382a00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.096114]  ffff880026382b00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.097116]  ffff880026382c00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.098472]  ffff880026382d00: ffffffff rrrrrrrr rrrrrrrr rrrrrrrr
    [28505.099804] Legend:
    [28505.100269]  f - 8 freed bytes
    [28505.100884]  r - 8 redzone bytes
    [28505.101649]  . - 8 allocated bytes
    [28505.102406]  x=1..7 - x allocated bytes + (8-x) redzone bytes
    [28505.103637] ==================================================================
    
    [1] https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerForKernel
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0d604e94c369095eba2959c39829e083b4a04855
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Mon Jul 21 00:06:48 2014 +0100

    dns_resolver: Null-terminate the right string
    
    [ Upstream commit 640d7efe4c08f06c4ae5d31b79bd8740e7f6790a ]
    
    *_result[len] is parsed as *(_result[len]) which is not at all what we
    want to touch here.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Fixes: 84a7c0b1db1c ("dns_resolver: assure that dns_query() result is null-terminated")
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bba876488ef0bde0844b411467b6cb7f37aff7f5
Author: Manuel Schölling <manuel.schoelling@gmx.de>
Date:   Sat Jun 7 23:57:25 2014 +0200

    dns_resolver: assure that dns_query() result is null-terminated
    
    [ Upstream commit 84a7c0b1db1c17d5ded8d3800228a608e1070b40 ]
    
    dns_query() credulously assumes that keys are null-terminated and
    returns a copy of a memory block that is off by one.
    
    Signed-off-by: Manuel Schölling <manuel.schoelling@gmx.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8b9b092799c87b251f7971cd08845d1d2d64e25b
Author: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Date:   Wed Jul 16 10:02:26 2014 -0400

    sunvnet: clean up objects created in vnet_new() on vnet_exit()
    
    [ Upstream commit a4b70a07ed12a71131cab7adce2ce91c71b37060 ]
    
    Nothing cleans up the objects created by
    vnet_new(), they are completely leaked.
    
    vnet_exit(), after doing the vio_unregister_driver() to clean
    up ports, should call a helper function that iterates over vnet_list
    and cleans up those objects. This includes unregister_netdevice()
    as well as free_netdev().
    
    Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Acked-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Reviewed-by: Karl Volz <karl.volz@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2a3fda712f923d7f35054dc024bea4e349812755
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Sat Jul 12 20:30:35 2014 +0200

    net: sctp: fix information leaks in ulpevent layer
    
    [ Upstream commit 8f2e5ae40ec193bc0a0ed99e95315c3eebca84ea ]
    
    While working on some other SCTP code, I noticed that some
    structures shared with user space are leaking uninitialized
    stack or heap buffer. In particular, struct sctp_sndrcvinfo
    has a 2 bytes hole between .sinfo_flags and .sinfo_ppid that
    remains unfilled by us in sctp_ulpevent_read_sndrcvinfo() when
    putting this into cmsg. But also struct sctp_remote_error
    contains a 2 bytes hole that we don't fill but place into a skb
    through skb_copy_expand() via sctp_ulpevent_make_remote_error().
    
    Both structures are defined by the IETF in RFC6458:
    
    * Section 5.3.2. SCTP Header Information Structure:
    
      The sctp_sndrcvinfo structure is defined below:
    
      struct sctp_sndrcvinfo {
        uint16_t sinfo_stream;
        uint16_t sinfo_ssn;
        uint16_t sinfo_flags;
        <-- 2 bytes hole  -->
        uint32_t sinfo_ppid;
        uint32_t sinfo_context;
        uint32_t sinfo_timetolive;
        uint32_t sinfo_tsn;
        uint32_t sinfo_cumtsn;
        sctp_assoc_t sinfo_assoc_id;
      };
    
    * 6.1.3. SCTP_REMOTE_ERROR:
    
      A remote peer may send an Operation Error message to its peer.
      This message indicates a variety of error conditions on an
      association. The entire ERROR chunk as it appears on the wire
      is included in an SCTP_REMOTE_ERROR event. Please refer to the
      SCTP specification [RFC4960] and any extensions for a list of
      possible error formats. An SCTP error notification has the
      following format:
    
      struct sctp_remote_error {
        uint16_t sre_type;
        uint16_t sre_flags;
        uint32_t sre_length;
        uint16_t sre_error;
        <-- 2 bytes hole  -->
        sctp_assoc_t sre_assoc_id;
        uint8_t  sre_data[];
      };
    
    Fix this by setting both to 0 before filling them out. We also
    have other structures shared between user and kernel space in
    SCTP that contains holes (e.g. struct sctp_paddrthlds), but we
    copy that buffer over from user space first and thus don't need
    to care about it in that cases.
    
    While at it, we can also remove lengthy comments copied from
    the draft, instead, we update the comment with the correct RFC
    number where one can look it up.
    
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7961c1a1d274ace4b8edda31f4d036ad6cf7a684
Author: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Date:   Mon Jul 7 23:22:50 2014 +0300

    appletalk: Fix socket referencing in skb
    
    [ Upstream commit 36beddc272c111689f3042bf3d10a64d8a805f93 ]
    
    Setting just skb->sk without taking its reference and setting a
    destructor is invalid. However, in the places where this was done, skb
    is used in a way not requiring skb->sk setting. So dropping the setting
    of skb->sk.
    Thanks to Eric Dumazet <eric.dumazet@gmail.com> for correct solution.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=79441
    Reported-by: Ed Martin <edman007@edman007.com>
    Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 00fcf0cfca372896e558f7bd1647b37eb7a738c2
Author: dingtianhong <dingtianhong@huawei.com>
Date:   Wed Jul 2 13:50:48 2014 +0800

    igmp: fix the problem when mc leave group
    
    [ Upstream commit 52ad353a5344f1f700c5b777175bdfa41d3cd65a ]
    
    The problem was triggered by these steps:
    
    1) create socket, bind and then setsockopt for add mc group.
       mreq.imr_multiaddr.s_addr = inet_addr("255.0.0.37");
       mreq.imr_interface.s_addr = inet_addr("192.168.1.2");
       setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));
    
    2) drop the mc group for this socket.
       mreq.imr_multiaddr.s_addr = inet_addr("255.0.0.37");
       mreq.imr_interface.s_addr = inet_addr("0.0.0.0");
       setsockopt(sockfd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq));
    
    3) and then drop the socket, I found the mc group was still used by the dev:
    
       netstat -g
    
       Interface       RefCnt Group
       --------------- ------ ---------------------
       eth2		   1	  255.0.0.37
    
    Normally even though the IP_DROP_MEMBERSHIP return error, the mc group still need
    to be released for the netdev when drop the socket, but this process was broken when
    route default is NULL, the reason is that:
    
    The ip_mc_leave_group() will choose the in_dev by the imr_interface.s_addr, if input addr
    is NULL, the default route dev will be chosen, then the ifindex is got from the dev,
    then polling the inet->mc_list and return -ENODEV, but if the default route dev is NULL,
    the in_dev and ifIndex is both NULL, when polling the inet->mc_list, the mc group will be
    released from the mc_list, but the dev didn't dec the refcnt for this mc group, so
    when dropping the socket, the mc_list is NULL and the dev still keep this group.
    
    v1->v2: According Hideaki's suggestion, we should align with IPv6 (RFC3493) and BSDs,
    	so I add the checking for the in_dev before polling the mc_list, make sure when
    	we remove the mc group, dec the refcnt to the real dev which was using the mc address.
    	The problem would never happened again.
    
    Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 96f641a7191379fef452609959ce0dc5009d021b
Author: Li RongQing <roy.qing.li@gmail.com>
Date:   Wed Jun 18 13:46:02 2014 +0800

    8021q: fix a potential memory leak
    
    [ Upstream commit 916c1689a09bc1ca81f2d7a34876f8d35aadd11b ]
    
    skb_cow called in vlan_reorder_header does not free the skb when it failed,
    and vlan_reorder_header returns NULL to reset original skb when it is called
    in vlan_untag, lead to a memory leak.
    
    Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 94fb7252513be0f7b3aa96ae03dce9e071c5dccd
Author: Neal Cardwell <ncardwell@google.com>
Date:   Wed Jun 18 21:15:03 2014 -0400

    tcp: fix tcp_match_skb_to_sack() for unaligned SACK at end of an skb
    
    [ Upstream commit 2cd0d743b05e87445c54ca124a9916f22f16742e ]
    
    If there is an MSS change (or misbehaving receiver) that causes a SACK
    to arrive that covers the end of an skb but is less than one MSS, then
    tcp_match_skb_to_sack() was rounding up pkt_len to the full length of
    the skb ("Round if necessary..."), then chopping all bytes off the skb
    and creating a zero-byte skb in the write queue.
    
    This was visible now because the recently simplified TLP logic in
    bef1909ee3ed1c ("tcp: fixing TLP's FIN recovery") could find that 0-byte
    skb at the end of the write queue, and now that we do not check that
    skb's length we could send it as a TLP probe.
    
    Consider the following example scenario:
    
     mss: 1000
     skb: seq: 0 end_seq: 4000  len: 4000
     SACK: start_seq: 3999 end_seq: 4000
    
    The tcp_match_skb_to_sack() code will compute:
    
     in_sack = false
     pkt_len = start_seq - TCP_SKB_CB(skb)->seq = 3999 - 0 = 3999
     new_len = (pkt_len / mss) * mss = (3999/1000)*1000 = 3000
     new_len += mss = 4000
    
    Previously we would find the new_len > skb->len check failing, so we
    would fall through and set pkt_len = new_len = 4000 and chop off
    pkt_len of 4000 from the 4000-byte skb, leaving a 0-byte segment
    afterward in the write queue.
    
    With this new commit, we notice that the new new_len >= skb->len check
    succeeds, so that we return without trying to fragment.
    
    Fixes: adb92db857ee ("tcp: Make SACK code to split only at mss boundaries")
    Reported-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Ilpo Jarvinen <ilpo.jarvinen@helsinki.fi>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2359626516f1c86af1ab78a835e3c84d04a5c0db
Author: Gavin Guo <gavin.guo@canonical.com>
Date:   Fri Jul 18 01:12:13 2014 +0800

    usb: Check if port status is equal to RxDetect
    
    commit bb86cf569bbd7ad4dce581a37c7fbd748057e9dc upstream.
    
    When using USB 3.0 pen drive with the [AMD] FCH USB XHCI Controller
    [1022:7814], the second hotplugging will experience the USB 3.0 pen
    drive is recognized as high-speed device. After bisecting the kernel,
    I found the commit number 41e7e056cdc662f704fa9262e5c6e213b4ab45dd
    (USB: Allow USB 3.0 ports to be disabled.) causes the bug. After doing
    some experiments, the bug can be fixed by avoiding executing the function
    hub_usb3_port_disable(). Because the port status with [AMD] FCH USB
    XHCI Controlleris [1022:7814] is already in RxDetect
    (I tried printing out the port status before setting to Disabled state),
    it's reasonable to check the port status before really executing
    hub_usb3_port_disable().
    
    Fixes: 41e7e056cdc6 (USB: Allow USB 3.0 ports to be disabled.)
    Signed-off-by: Gavin Guo <gavin.guo@canonical.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: use hub device as context for dev_dbg(),
     as hub ports are not devices in their own right]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4f9bb3eb1995f6a03f6d5bd9407274b6d67f3480
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Mon Jul 14 17:57:19 2014 -0400

    drm/radeon: avoid leaking edid data
    
    commit 0ac66effe7fcdee55bda6d5d10d3372c95a41920 upstream.
    
    In some cases we fetch the edid in the detect() callback
    in order to determine what sort of monitor is connected.
    If that happens, don't fetch the edid again in the get_modes()
    callback or we will leak the edid.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f8bac1698272b067da1d45a7027661ea855eaad8
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Wed Jul 16 17:40:31 2014 -0700

    hwmon: (adt7470) Fix writes to temperature limit registers
    
    commit de12d6f4b10b21854441f5242dcb29ea96181e58 upstream.
    
    Temperature limit registers are signed. Limits therefore need
    to be clamped to (-128, 127) degrees C and not to (0, 255)
    degrees C.
    
    Without this fix, writing a limit of 128 degrees C sets the
    actual limit to -128 degrees C.
    
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Reviewed-by: Axel Lin <axel.lin@ingics.com>
    [bwh: Backported to 3.2: driver was using SENSORS_LIMIT(), which we can
     replace with clamp_val()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e87c95f8ac1ec35ebf4d144d4b46e2ecf153ffd4
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Fri Jun 6 19:53:16 2014 +0200

    locking/mutex: Disable optimistic spinning on some architectures
    
    commit 4badad352a6bb202ec68afa7a574c0bb961e5ebc upstream.
    
    The optimistic spin code assumes regular stores and cmpxchg() play nice;
    this is found to not be true for at least: parisc, sparc32, tile32,
    metag-lock1, arc-!llsc and hexagon.
    
    There is further wreckage, but this in particular seemed easy to
    trigger, so blacklist this.
    
    Opt in for known good archs.
    
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Reported-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: David Miller <davem@davemloft.net>
    Cc: Chris Metcalf <cmetcalf@tilera.com>
    Cc: James Bottomley <James.Bottomley@hansenpartnership.com>
    Cc: Vineet Gupta <vgupta@synopsys.com>
    Cc: Jason Low <jason.low2@hp.com>
    Cc: Waiman Long <waiman.long@hp.com>
    Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
    Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
    Cc: John David Anglin <dave.anglin@bell.net>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Davidlohr Bueso <davidlohr@hp.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: sparclinux@vger.kernel.org
    Link: http://lkml.kernel.org/r/20140606175316.GV13930@laptop.programming.kicks-ass.net
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [bwh: Backported to 3.2:
     - Adjust context
     - Drop arm64 change]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8f88141b2724459ab757b44a5251cd915169f5de
Author: Mateusz Guzik <mguzik@redhat.com>
Date:   Sat Jun 14 15:00:09 2014 +0200

    sched: Fix possible divide by zero in avg_atom() calculation
    
    commit b0ab99e7736af88b8ac1b7ae50ea287fffa2badc upstream.
    
    proc_sched_show_task() does:
    
      if (nr_switches)
    	do_div(avg_atom, nr_switches);
    
    nr_switches is unsigned long and do_div truncates it to 32 bits, which
    means it can test non-zero on e.g. x86-64 and be truncated to zero for
    division.
    
    Fix the problem by using div64_ul() instead.
    
    As a side effect calculations of avg_atom for big nr_switches are now correct.
    
    Signed-off-by: Mateusz Guzik <mguzik@redhat.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: http://lkml.kernel.org/r/1402750809-31991-1-git-send-email-mguzik@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    [bwh: Backported to 3.2: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 79e70e9dc0cb707ad58ce8d3ed75b50610581edd
Author: Alex Shi <alex.shi@intel.com>
Date:   Wed Jun 12 14:05:10 2013 -0700

    include/linux/math64.h: add div64_ul()
    
    commit c2853c8df57f49620d26f317d7d43347c29bfc2e upstream.
    
    There is div64_long() to handle the s64/long division, but no mocro do
    u64/ul division.  It is necessary in some scenarios, so add this
    function.
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Alex Shi <alex.shi@intel.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0be53320ade39c226e9781c7ad72671625df6edf
Author: Martin Lau <kafai@fb.com>
Date:   Mon Jun 9 23:06:42 2014 -0700

    ring-buffer: Fix polling on trace_pipe
    
    commit 97b8ee845393701edc06e27ccec2876ff9596019 upstream.
    
    ring_buffer_poll_wait() should always put the poll_table to its wait_queue
    even there is immediate data available.  Otherwise, the following epoll and
    read sequence will eventually hang forever:
    
    1. Put some data to make the trace_pipe ring_buffer read ready first
    2. epoll_ctl(efd, EPOLL_CTL_ADD, trace_pipe_fd, ee)
    3. epoll_wait()
    4. read(trace_pipe_fd) till EAGAIN
    5. Add some more data to the trace_pipe ring_buffer
    6. epoll_wait() -> this epoll_wait() will block forever
    
    ~ During the epoll_ctl(efd, EPOLL_CTL_ADD,...) call in step 2,
      ring_buffer_poll_wait() returns immediately without adding poll_table,
      which has poll_table->_qproc pointing to ep_poll_callback(), to its
      wait_queue.
    ~ During the epoll_wait() call in step 3 and step 6,
      ring_buffer_poll_wait() cannot add ep_poll_callback() to its wait_queue
      because the poll_table->_qproc is NULL and it is how epoll works.
    ~ When there is new data available in step 6, ring_buffer does not know
      it has to call ep_poll_callback() because it is not in its wait queue.
      Hence, block forever.
    
    Other poll implementation seems to call poll_wait() unconditionally as the very
    first thing to do.  For example, tcp_poll() in tcp.c.
    
    Link: http://lkml.kernel.org/p/20140610060637.GA14045@devbig242.prn2.facebook.com
    
    Fixes: 2a2cc8f7c4d0 "ftrace: allow the event pipe to be polled"
    Reviewed-by: Chris Mason <clm@fb.com>
    Signed-off-by: Martin Lau <kafai@fb.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    [bwh: Backported to 3.2: the poll implementation looks rather different
     but does have a conditional return before and after the poll_wait() call;
     delete the return before it.]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1179c8f1caca90caf4ce0eec54b499de4f1551c4
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Mon Jul 14 17:02:31 2014 -0700

    net/l2tp: don't fall back on UDP [get|set]sockopt
    
    commit 3cf521f7dc87c031617fd47e4b7aa2593c2f3daf upstream.
    
    The l2tp [get|set]sockopt() code has fallen back to the UDP functions
    for socket option levels != SOL_PPPOL2TP since day one, but that has
    never actually worked, since the l2tp socket isn't an inet socket.
    
    As David Miller points out:
    
      "If we wanted this to work, it'd have to look up the tunnel and then
       use tunnel->sk, but I wonder how useful that would be"
    
    Since this can never have worked so nobody could possibly have depended
    on that functionality, just remove the broken code and return -EINVAL.
    
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Acked-by: James Chapman <jchapman@katalix.com>
    Acked-by: David Miller <davem@davemloft.net>
    Cc: Phil Turnbull <phil.turnbull@oracle.com>
    Cc: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f5040bb44d62a4754f98cd139ed2712495fa3a3f
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Jul 3 11:17:55 2014 -0400

    drm/radeon/dp: return -EIO for flags not zero case
    
    commit f6be5e64500abbba44e191e1ca0f3366c7d0291b upstream.
    
    If there are error flags in the aux transaction return
    -EIO rather than -EBUSY.  -EIO restarts the whole transaction
    while -EBUSY jus retries.  Fixes problematic aux transfers.
    
    Bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=80684
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    [bwh: Backported to 3.2: error code is returned directly here]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3b9185076b63d1e24cd43209a7a9c26e78b659bf
Author: Joe Thornber <thornber@redhat.com>
Date:   Fri Jun 27 15:29:04 2014 -0400

    dm io: fix a race condition in the wake up code for sync_io
    
    commit 10f1d5d111e8aed46a0f1179faf9a3cf422f689e upstream.
    
    There's a race condition between the atomic_dec_and_test(&io->count)
    in dec_count() and the waking of the sync_io() thread.  If the thread
    is spuriously woken immediately after the decrement it may exit,
    making the on stack io struct invalid, yet the dec_count could still
    be using it.
    
    Fix this race by using a completion in sync_io() and dec_count().
    
    Reported-by: Minfei Huang <huangminfei@ucloud.cn>
    Signed-off-by: Joe Thornber <thornber@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Acked-by: Mikulas Patocka <mpatocka@redhat.com>
    [bwh: Backported to 3.2: use wait_for_completion() as wait_for_completion_io()
     is not available]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6df6ecaf8904028b819f6a3115218029667dccbc
Author: Stefan Assmann <sassmann@kpanic.de>
Date:   Thu Jul 10 03:29:39 2014 -0700

    igb: do a reset on SR-IOV re-init if device is down
    
    commit 76252723e88681628a3dbb9c09c963e095476f73 upstream.
    
    To properly re-initialize SR-IOV it is necessary to reset the device
    even if it is already down. Not doing this may result in Tx unit hangs.
    
    Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 05a0c2fd19f45f1fc93d56f32cbec25936f7ec34
Author: Bert Vermeulen <bert@biot.com>
Date:   Tue Jul 8 14:42:23 2014 +0200

    USB: ftdi_sio: Add extra PID.
    
    commit 5a7fbe7e9ea0b1b9d7ffdba64db1faa3a259164c upstream.
    
    This patch adds PID 0x0003 to the VID 0x128d (Testo). At least the
    Testo 435-4 uses this, likely other gear as well.
    
    Signed-off-by: Bert Vermeulen <bert@biot.com>
    Cc: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit febee6d26e3a89a656a9afdc13228eef679899bf
Author: John Stultz <john.stultz@linaro.org>
Date:   Mon Jul 7 14:06:11 2014 -0700

    alarmtimer: Fix bug where relative alarm timers were treated as absolute
    
    commit 16927776ae757d0d132bdbfabbfe2c498342bd59 upstream.
    
    Sharvil noticed with the posix timer_settime interface, using the
    CLOCK_REALTIME_ALARM or CLOCK_BOOTTIME_ALARM clockid, if the users
    tried to specify a relative time timer, it would incorrectly be
    treated as absolute regardless of the state of the flags argument.
    
    This patch corrects this, properly checking the absolute/relative flag,
    as well as adds further error checking that no invalid flag bits are set.
    
    Reported-by: Sharvil Nanavati <sharvil@google.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Sharvil Nanavati <sharvil@google.com>
    Link: http://lkml.kernel.org/r/1404767171-6902-1-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 831068ee2981914898798c1a7bd7988a2426b844
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sun Jul 6 11:39:24 2014 -0700

    hwmon: (emc2103) Clamp limits instead of bailing out
    
    commit f6c2dd20108c35e30e2c1f3c6142d189451a626b upstream.
    
    It is customary to clamp limits instead of bailing out with an error
    if a configured limit is out of the range supported by the driver.
    This simplifies limit configuration, since the user will not typically
    know chip and/or driver specific limits.
    
    Reviewed-by: Jean Delvare <jdelvare@suse.de>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 58b546648b5a5618db31ffaec70eb80b53a87d5b
Author: Miklos Szeredi <mszeredi@suse.cz>
Date:   Mon Jul 7 15:28:51 2014 +0200

    fuse: handle large user and group ID
    
    commit 233a01fa9c4c7c41238537e8db8434667ff28a2f upstream.
    
    If the number in "user_id=N" or "group_id=N" mount options was larger than
    INT_MAX then fuse returned EINVAL.
    
    Fix this to handle all valid uid/gid values.
    
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    [bwh: Backported to 3.2: no user namespace conversion]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 38f8813cf29676b719ad3f15ae9489ce95b98ea9
Author: Miklos Szeredi <mszeredi@suse.cz>
Date:   Mon Jul 7 15:28:50 2014 +0200

    fuse: timeout comparison fix
    
    commit 126b9d4365b110c157bc4cbc32540dfa66c9c85a upstream.
    
    As suggested by checkpatch.pl, use time_before64() instead of direct
    comparison of jiffies64 values.
    
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a5931b2e8091230192d178a25f136f7bb3dc2177
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Jul 3 13:44:23 2014 -0700

    hwmon: (adm1031) Fix writes to limit registers
    
    commit 145e74a4e5022225adb84f4e5d4fff7938475c35 upstream.
    
    Upper limit for write operations to temperature limit registers
    was clamped to a fractional value. However, limit registers do
    not support fractional values. As a result, upper limits of 127.5
    degrees C or higher resulted in a rounded limit of 128 degrees C.
    Since limit registers are signed, this was stored as -128 degrees C.
    Clamp limits to (-55, +127) degrees C to solve the problem.
    
    Value on writes to auto_temp[12]_min and auto_temp[12]_max were not
    clamped at all, but masked. As a result, out-of-range writes resulted
    in a more or less arbitrary limit. Clamp those attributes to (0, 127)
    degrees C for more predictable results.
    
    Cc: Axel Lin <axel.lin@ingics.com>
    Reviewed-by: Jean Delvare <jdelvare@suse.de>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    [bwh: Backported to 3.2:
     - Adjust context
     - Driver was using SENSORS_LIMIT(), which we can replace with clamp_val()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6c91403e65acb0f4c32b59bb15a3e10044bbb37f
Author: Lan Tianyu <tianyu.lan@intel.com>
Date:   Mon Jul 7 15:47:12 2014 +0800

    ACPI / battery: Retry to get battery information if failed during probing
    
    commit 75646e758a0ecbed5024454507d5be5b9ea9dcbf upstream.
    
    Some machines (eg. Lenovo Z480) ECs are not stable during boot up
    and causes battery driver fails to be loaded due to failure of getting
    battery information from EC sometimes. After several retries, the
    operation will work. This patch is to retry to get battery information 5
    times if the first try fails.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=75581
    Reported-and-tested-by: naszar <naszar@ya.ru>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2: acpi_battery_update() doesn't take a second parameter]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2355ef590bd9a61fad7edb4ee4ad0e7e7693f7db
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Sun Jun 15 08:42:07 2014 +0800

    ACPI / EC: Fix race condition in ec_transaction_completed()
    
    commit c0d653412fc8450370167a3268b78fc772ff9c87 upstream.
    
    There is a race condition in ec_transaction_completed().
    
    When ec_transaction_completed() is called in the GPE handler, it could
    return true because of (ec->curr == NULL). Then the wake_up() invocation
    could complete the next command unexpectedly since there is no lock between
    the 2 invocations. With the previous cleanup, the IBF=0 waiter race need
    not be handled any more. It's now safe to return a flag from
    advance_condition() to indicate the requirement of wakeup, the flag is
    returned from a locked context.
    
    The ec_transaction_completed() is now only invoked by the ec_poll() where
    the ec->curr is ensured to be different from NULL.
    
    After cleaning up, the EVT_SCI=1 check should be moved out of the wakeup
    condition so that an EVT_SCI raised with (ec->curr == NULL) can trigger a
    QR_SC command.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=70891
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=63931
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=59911
    Reported-and-tested-by: Gareth Williams <gareth@garethwilliams.me.uk>
    Reported-and-tested-by: Hans de Goede <jwrdegoede@fedoraproject.org>
    Reported-by: Barton Xu <tank.xuhan@gmail.com>
    Tested-by: Steffen Weber <steffen.weber@gmail.com>
    Tested-by: Arthur Chen <axchen@nvidia.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0038798270d8139fde6ee836f6ad8d96f932275e
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Sun Jun 15 08:41:48 2014 +0800

    ACPI / EC: Remove duplicated ec_wait_ibf0() waiter
    
    commit 9b80f0f73ae1583c22325ede341c74195847618c upstream.
    
    After we've added the first command byte write into advance_transaction(),
    the IBF=0 waiter is duplicated with the command completion waiter
    implemented in the ec_poll() because:
       If IBF=1 blocked the first command byte write invoked in the task
       context ec_poll(), it would be kicked off upon IBF=0 interrupt or timed
       out and retried again in the task context.
    
    Remove this seperate and duplicate IBF=0 waiter.  By doing so we can
    reduce the overall number of times to access the EC_SC(R) status
    register.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=70891
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=63931
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=59911
    Reported-and-tested-by: Gareth Williams <gareth@garethwilliams.me.uk>
    Reported-and-tested-by: Hans de Goede <jwrdegoede@fedoraproject.org>
    Reported-by: Barton Xu <tank.xuhan@gmail.com>
    Tested-by: Steffen Weber <steffen.weber@gmail.com>
    Tested-by: Arthur Chen <axchen@nvidia.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1fac28d9b785fe4149b8bf6642bce5ff1bf6304e
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Sun Jun 15 08:41:35 2014 +0800

    ACPI / EC: Add asynchronous command byte write support
    
    commit f92fca0060fc4dc9227342d0072d75df98c1e5a5 upstream.
    
    Move the first command byte write into advance_transaction() so that all
    EC register accesses that can affect the command processing state machine
    can happen in this asynchronous state machine advancement function.
    
    The advance_transaction() function then can be a complete implementation
    of an asyncrhonous transaction for a single command so that:
     1. The first command byte can be written in the interrupt context;
     2. The command completion waiter can also be used to wait the first command
        byte's timeout;
     3. In BURST mode, the follow-up command bytes can be written in the
        interrupt context directly, so that it doesn't need to return to the
        task context. Returning to the task context reduces the throughput of
        the BURST mode and in the worst cases where the system workload is very
        high, this leads to the hardware driven automatic BURST mode exit.
    
    In order not to increase memory consumption, convert 'done' into 'flags'
    to contain multiple indications:
     1. ACPI_EC_COMMAND_COMPLETE: converting from original 'done' condition,
        indicating the completion of the command transaction.
     2. ACPI_EC_COMMAND_POLL: indicating the availability of writing the first
        command byte. A new command can utilize this flag to compete for the
        right of accessing the underlying hardware. There is a follow-up bug
        fix that has utilized this new flag.
    
    The 2 flags are important because it also reflects a key concept of IO
    programs' design used in the system softwares. Normally an IO program
    running in the kernel should first be implemented in the asynchronous way.
    And the 2 flags are the most common way to implement its synchronous
    operations on top of the asynchronous operations:
    1. POLL: This flag can be used to block until the asynchronous operations
             can happen.
    2. COMPLETE: This flag can be used to block until the asynchronous
                 operations have completed.
    By constructing code cleanly in this way, many difficult problems can be
    solved smoothly.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=70891
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=63931
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=59911
    Reported-and-tested-by: Gareth Williams <gareth@garethwilliams.me.uk>
    Reported-and-tested-by: Hans de Goede <jwrdegoede@fedoraproject.org>
    Reported-by: Barton Xu <tank.xuhan@gmail.com>
    Tested-by: Steffen Weber <steffen.weber@gmail.com>
    Tested-by: Arthur Chen <axchen@nvidia.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2:
     - Adjust context
     - s/ec->lock/ec->curr_lock/]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d1b4412416361dcb90585b366096dfa801da45a7
Author: Feng Tang <feng.tang@intel.com>
Date:   Tue Oct 23 01:30:12 2012 +0200

    ACPI / EC: Don't count a SCI interrupt as a false one
    
    commit a3cd8d2789c2e265e09377f260e7d2ac9cec81bb upstream.
    
    Currently when advance_transaction() is called in EC interrupt handler,
    if there is nothing driver can do with the interrupt, it will be taken
    as a false one.
    
    But this is not always true, as there may be a SCI EC interrupt fired
    during normal read/write operation, which should not be counted as a
    false one. This patch fixes the problem.
    
    Signed-off-by: Feng Tang <feng.tang@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4beb3dab5a4b7789cb765a7ff90bbdb188f35317
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Sun Jun 15 08:41:17 2014 +0800

    ACPI / EC: Avoid race condition related to advance_transaction()
    
    commit 66b42b78bc1e816f92b662e8888c89195e4199e1 upstream.
    
    The advance_transaction() will be invoked from the IRQ context GPE handler
    and the task context ec_poll(). The handling of this function is locked so
    that the EC state machine are ensured to be advanced sequentially.
    
    But there is a problem. Before invoking advance_transaction(), EC_SC(R) is
    read. Then for advance_transaction(), there could be race condition around
    the lock from both contexts. The first one reading the register could fail
    this race and when it passes the stale register value to the state machine
    advancement code, the hardware condition is totally different from when
    the register is read. And the hardware accesses determined from the wrong
    hardware status can break the EC state machine. And there could be cases
    that the functionalities of the platform firmware are seriously affected.
    For example:
     1. When 2 EC_DATA(W) writes compete the IBF=0, the 2nd EC_DATA(W) write may
        be invalid due to IBF=1 after the 1st EC_DATA(W) write. Then the
        hardware will either refuse to respond a next EC_SC(W) write of the next
        command or discard the current WR_EC command when it receives a EC_SC(W)
        write of the next command.
     2. When 1 EC_SC(W) write and 1 EC_DATA(W) write compete the IBF=0, the
        EC_DATA(W) write may be invalid due to IBF=1 after the EC_SC(W) write.
        The next EC_DATA(R) could never be responded by the hardware. This is
        the root cause of the reported issue.
    
    Fix this issue by moving the EC_SC(R) access into the lock so that we can
    ensure that the state machine is advanced consistently.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=70891
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=63931
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=59911
    Reported-and-tested-by: Gareth Williams <gareth@garethwilliams.me.uk>
    Reported-and-tested-by: Hans de Goede <jwrdegoede@fedoraproject.org>
    Reported-by: Barton Xu <tank.xuhan@gmail.com>
    Tested-by: Steffen Weber <steffen.weber@gmail.com>
    Tested-by: Arthur Chen <axchen@nvidia.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2:
     - Adjust context
     - Use PREFIX in log message]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2934cf26e2b83e01a36fcb9ce5bfdb3209f2957e
Author: Puneet Kumar <puneetster@chromium.org>
Date:   Fri Nov 15 11:41:29 2013 -0800

    ACPI / EC: Ensure lock is acquired before accessing ec struct members
    
    commit 36b15875a7819a2ec4cb5748ff7096ad7bd86cbb upstream.
    
    A bug was introduced by commit b76b51ba0cef ('ACPI / EC: Add more debug
    info and trivial code cleanup') that erroneously caused the struct member
    to be accessed before acquiring the required lock.  This change fixes
    it by ensuring the lock acquisition is done first.
    
    Found by Aaron Durbin <adurbin@chromium.org>
    
    Fixes: b76b51ba0cef ('ACPI / EC: Add more debug info and trivial code cleanup')
    References: http://crbug.com/319019
    Signed-off-by: Puneet Kumar <puneetster@chromium.org>
    Reviewed-by: Aaron Durbin <adurbin@chromium.org>
    [olof: Commit message reworded a bit]
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d5c85f63672263b2f8ea12ac1c1b925e793fdd0a
Author: Feng Tang <feng.tang@intel.com>
Date:   Tue Oct 23 01:29:38 2012 +0200

    ACPI / EC: Add more debug info and trivial code cleanup
    
    commit b76b51ba0cef13980813373a548a12206e3cd3c9 upstream.
    
    Add more debug info for EC transaction debugging, like the interrupt
    status register value, the detail info of a EC transaction.
    
    Signed-off-by: Feng Tang <feng.tang@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d9843d599d58f7aedfbe7629d05051a888d5a012
Author: Bernd Wachter <bernd.wachter@jolla.com>
Date:   Wed Jul 2 12:36:48 2014 +0300

    usb: option: Add ID for Telewell TW-LTE 4G v2
    
    commit 3d28bd840b2d3981cd28caf5fe1df38f1344dd60 upstream.
    
    Add ID of the Telewell 4G v2 hardware to option driver to get legacy
    serial interface working
    
    Signed-off-by: Bernd Wachter <bernd.wachter@jolla.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 209a75af462caae53021e3331fb4ac4c523a199b
Author: Andras Kovacs <andras@sth.sze.hu>
Date:   Fri Jun 27 14:50:11 2014 +0200

    USB: cp210x: add support for Corsair usb dongle
    
    commit b9326057a3d8447f5d2e74a7b521ccf21add2ec0 upstream.
    
    Corsair USB Dongles are shipped with Corsair AXi series PSUs.
    These are cp210x serial usb devices, so make driver detect these.
    I have a program, that can get information from these PSUs.
    
    Tested with 2 different dongles shipped with Corsair AX860i and
    AX1200i units.
    
    Signed-off-by: Andras Kovacs <andras@sth.sze.hu>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e7746e31bf3027ed9172e8b648069e7f2101c198
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Sat Jul 5 19:18:22 2014 -0400

    ext4: disable synchronous transaction batching if max_batch_time==0
    
    commit 5dd214248f94d430d70e9230bda72f2654ac88a8 upstream.
    
    The mount manpage says of the max_batch_time option,
    
    	This optimization can be turned off entirely
    	by setting max_batch_time to 0.
    
    But the code doesn't do that.  So fix the code to do
    that.
    
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 3.2: option parsing looks different]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5661f259a74876761ed632e05e5b29164e40332c
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Jul 5 18:40:52 2014 -0400

    ext4: clarify error count warning messages
    
    commit ae0f78de2c43b6fadd007c231a352b13b5be8ed2 upstream.
    
    Make it clear that values printed are times, and that it is error
    since last fsck. Also add note about fsck version required.
    
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: Andreas Dilger <adilger@dilger.ca>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1df779f8b094895bce7636e211b620646aaba2cc
Author: Axel Lin <axel.lin@ingics.com>
Date:   Wed Jul 2 08:29:55 2014 +0800

    hwmon: (adm1029) Ensure the fan_div cache is updated in set_fan_div
    
    commit 1035a9e3e9c76b64a860a774f5b867d28d34acc2 upstream.
    
    Writing to fanX_div does not clear the cache. As a result, reading
    from fanX_div may return the old value for up to two seconds
    after writing a new value.
    
    This patch ensures the fan_div cache is updated in set_fan_div().
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0d8f0631725937741074527722aa885c12aa7dce
Author: Axel Lin <axel.lin@ingics.com>
Date:   Wed Jul 2 07:44:44 2014 +0800

    hwmon: (amc6821) Fix permissions for temp2_input
    
    commit df86754b746e9a0ff6f863f690b1c01d408e3cdc upstream.
    
    temp2_input should not be writable, fix it.
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 34762248788fc01d22199635a247fb6f0c75b59f
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Wed Jul 2 15:47:04 2014 +0200

    drm/vmwgfx: Fix incorrect write to read-only register v2:
    
    commit 4e578080ed3262ed2c3985868539bc66218d25c0 upstream.
    
    Commit "drm/vmwgfx: correct fb_fix_screeninfo.line_length", while fixing a
    vmwgfx fbdev bug, also writes the pitch to a supposedly read-only register:
    SVGA_REG_BYTES_PER_LINE, while it should be (and also in fact is) written to
    SVGA_REG_PITCHLOCK.
    
    This patch is Cc'd stable because of the unknown effects writing to this
    register might have, particularly on older device versions.
    
    v2: Updated log message.
    
    Cc: Christopher Friedt <chrisfriedt@gmail.com>
    Tested-by: Christopher Friedt <chrisfriedt@gmail.com>
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 94f85e69a50b0136a45037a90306c172db40e4bc
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed Jun 25 09:12:30 2014 +0300

    iwlwifi: dvm: don't enable CTS to self
    
    commit 43d826ca5979927131685cc2092c7ce862cb91cd upstream.
    
    We should always prefer to use full RTS protection. Using
    CTS to self gives a meaningless improvement, but this flow
    is much harder for the firmware which is likely to have
    issues with it.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    [bwh: Backported to 3.2:
     - Adjust filename
     - Condition for RXON_FLG_SELF_CTS_EN in iwlagn_commit_rxon() was different]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8a9c266c7bbac51a32d70ca0bc9e70a54233b89e
Author: David Vrabel <david.vrabel@citrix.com>
Date:   Wed Jul 2 17:25:23 2014 +0100

    xen/manage: fix potential deadlock when resuming the console
    
    commit 1b6478231c6f5f844185acb32045cf195028cfce upstream.
    
    Calling xen_console_resume() in xen_suspend() causes a warning because
    it locks irq_mapping_update_lock (a mutex) and this may sleep.  If a
    userspace process is using the evtchn device then this mutex may be
    locked at the point of the stop_machine() call and
    xen_console_resume() would then deadlock.
    
    Resuming the console after stop_machine() returns avoids this
    deadlock.
    
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 74d31de64a0bc7a37a0020e9ddb10af1047ddbbf
Author: NeilBrown <neilb@suse.de>
Date:   Wed Jul 2 12:04:14 2014 +1000

    md: flush writes before starting a recovery.
    
    commit 133d4527eab8d199a62eee6bd433f0776842df2e upstream.
    
    When we write to a degraded array which has a bitmap, we
    make sure the relevant bit in the bitmap remains set when
    the write completes (so a 're-add' can quickly rebuilt a
    temporarily-missing device).
    
    If, immediately after such a write starts, we incorporate a spare,
    commence recovery, and skip over the region where the write is
    happening (because the 'needs recovery' flag isn't set yet),
    then that write will not get to the new device.
    
    Once the recovery finishes the new device will be trusted, but will
    have incorrect data, leading to possible corruption.
    
    We cannot set the 'needs recovery' flag when we start the write as we
    do not know easily if the write will be "degraded" or not.  That
    depends on details of the particular raid level and particular write
    request.
    
    This patch fixes a corruption issue of long standing and so it
    suitable for any -stable kernel.  It applied correctly to 3.0 at
    least and will minor editing to earlier kernels.
    
    Reported-by: Bill <billstuff2001@sbcglobal.net>
    Tested-by: Bill <billstuff2001@sbcglobal.net>
    Link: http://lkml.kernel.org/r/53A518BB.60709@sbcglobal.net
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0fda305647fbf6894015df9b350aebdcf540d0cf
Author: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
Date:   Wed Jun 25 10:09:07 2014 +0900

    perf/x86/intel: ignore CondChgd bit to avoid false NMI handling
    
    commit b292d7a10487aee6e74b1c18b8d95b92f40d4a4f upstream.
    
    Currently, any NMI is falsely handled by a NMI handler of NMI watchdog
    if CondChgd bit in MSR_CORE_PERF_GLOBAL_STATUS MSR is set.
    
    For example, we use external NMI to make system panic to get crash
    dump, but in this case, the external NMI is falsely handled do to the
    issue.
    
    This commit deals with the issue simply by ignoring CondChgd bit.
    
    Here is explanation in detail.
    
    On x86 NMI watchdog uses performance monitoring feature to
    periodically signal NMI each time performance counter gets overflowed.
    
    intel_pmu_handle_irq() is called as a NMI_LOCAL handler from a NMI
    handler of NMI watchdog, perf_event_nmi_handler(). It identifies an
    owner of a given NMI by looking at overflow status bits in
    MSR_CORE_PERF_GLOBAL_STATUS MSR. If some of the bits are set, then it
    handles the given NMI as its own NMI.
    
    The problem is that the intel_pmu_handle_irq() doesn't distinguish
    CondChgd bit from other bits. Unlike the other status bits, CondChgd
    bit doesn't represent overflow status for performance counters. Thus,
    CondChgd bit cannot be thought of as a mark indicating a given NMI is
    NMI watchdog's.
    
    As a result, if CondChgd bit is set, any NMI is falsely handled by the
    NMI handler of NMI watchdog. Also, if type of the falsely handled NMI
    is either NMI_UNKNOWN, NMI_SERR or NMI_IO_CHECK, the corresponding
    action is never performed until CondChgd bit is cleared.
    
    I noticed this behavior on systems with Ivy Bridge processors: Intel
    Xeon CPU E5-2630 v2 and Intel Xeon CPU E7-8890 v2. On both systems,
    CondChgd bit in MSR_CORE_PERF_GLOBAL_STATUS MSR has already been set
    in the beginning at boot. Then the CondChgd bit is immediately cleared
    by next wrmsr to MSR_CORE_PERF_GLOBAL_CTRL MSR and appears to remain
    0.
    
    On the other hand, on older processors such as Nehalem, Xeon E7540,
    CondChgd bit is not set in the beginning at boot.
    
    I'm not sure about exact behavior of CondChgd bit, in particular when
    this bit is set. Although I read Intel System Programmer's Manual to
    figure out that, the descriptions I found are:
    
      In 18.9.1:
    
      "The MSR_PERF_GLOBAL_STATUS MSR also provides a ¡sticky bit¢ to
       indicate changes to the state of performancmonitoring hardware"
    
      In Table 35-2 IA-32 Architectural MSRs
    
      63 CondChg: status bits of this register has changed.
    
    These are different from the bahviour I see on the actual system as I
    explained above.
    
    At least, I think ignoring CondChgd bit should be enough for NMI
    watchdog perspective.
    
    Signed-off-by: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
    Acked-by: Don Zickus <dzickus@redhat.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: linux-kernel@vger.kernel.org
    Link: http://lkml.kernel.org/r/20140625.103503.409316067.d.hatayama@jp.fujitsu.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 27bbd86f9319dbeeb588b8f43fe0ac241ad336ba
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Jun 30 11:04:21 2014 -0400

    usb-storage/SCSI: Add broken_fua blacklist flag
    
    commit b14bf2d0c0358140041d1c1805a674376964d0e0 upstream.
    
    Some buggy JMicron USB-ATA bridges don't know how to translate the FUA
    bit in READs or WRITEs.  This patch adds an entry in unusual_devs.h
    and a blacklist flag to tell the sd driver not to use FUA.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Michael Büsch <m@bues.ch>
    Tested-by: Michael Büsch <m@bues.ch>
    Acked-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2:
     - Adjust context
     - Use sd_printk() not sd_first_printk()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 949ff4d69cf2497e9a0b1302979818cd944af02b
Author: Michal Nazarewicz <mina86@mina86.com>
Date:   Fri Jun 13 15:38:05 2014 +0200

    tools: ffs-test: fix header values endianess
    
    commit f35f71244da6e51db4e1f2c7e318581f498ececf upstream.
    
    It appears that no one ever run ffs-test on a big-endian machine,
    since it used cpu-endianess for fs_count and hs_count fields which
    should be in little-endian format.  Fix by wrapping the numbers in
    cpu_to_le32.
    
    Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fde2b7c55aa3a1a353288b1f62f06804416c19a6
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Thu Jun 19 16:44:48 2014 -0400

    nfsd: fix rare symlink decoding bug
    
    commit 76f47128f9b33af1e96819746550d789054c9664 upstream.
    
    An NFS operation that creates a new symlink includes the symlink data,
    which is xdr-encoded as a length followed by the data plus 0 to 3 bytes
    of zero-padding as required to reach a 4-byte boundary.
    
    The vfs, on the other hand, wants null-terminated data.
    
    The simple way to handle this would be by copying the data into a newly
    allocated buffer with space for the final null.
    
    The current nfsd_symlink code tries to be more clever by skipping that
    step in the (likely) case where the byte following the string is already
    0.
    
    But that assumes that the byte following the string is ours to look at.
    In fact, it might be the first byte of a page that we can't read, or of
    some object that another task might modify.
    
    Worse, the NFSv4 code tries to fix the problem by actually writing to
    that byte.
    
    In the NFSv2/v3 cases this actually appears to be safe:
    
    	- nfs3svc_decode_symlinkargs explicitly null-terminates the data
    	  (after first checking its length and copying it to a new
    	  page).
    	- NFSv2 limits symlinks to 1k.  The buffer holding the rpc
    	  request is always at least a page, and the link data (and
    	  previous fields) have maximum lengths that prevent the request
    	  from reaching the end of a page.
    
    In the NFSv4 case the CREATE op is potentially just one part of a long
    compound so can end up on the end of a page if you're unlucky.
    
    The minimal fix here is to copy and null-terminate in the NFSv4 case.
    The nfsd_symlink() interface here seems too fragile, though.  It should
    really either do the copy itself every time or just require a
    null-terminated string.
    
    Reported-by: Jeff Layton <jlayton@primarydata.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e70acb57de1a6ae6dc930e5316a14e1ae60a99d2
Author: Amitkumar Karwar <akarwar@marvell.com>
Date:   Fri Jun 20 11:45:25 2014 -0700

    mwifiex: fix Tx timeout issue
    
    commit d76744a93246eccdca1106037e8ee29debf48277 upstream.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=70191
    https://bugzilla.kernel.org/show_bug.cgi?id=77581
    
    It is observed that sometimes Tx packet is downloaded without
    adding driver's txpd header. This results in firmware parsing
    garbage data as packet length. Sometimes firmware is unable
    to read the packet if length comes out as invalid. This stops
    further traffic and timeout occurs.
    
    The root cause is uninitialized fields in tx_info(skb->cb) of
    packet used to get garbage values. In this case if
    MWIFIEX_BUF_FLAG_REQUEUED_PKT flag is mistakenly set, txpd
    header was skipped. This patch makes sure that tx_info is
    correctly initialized to fix the problem.
    
    Reported-by: Andrew Wiley <wiley.andrew.j@gmail.com>
    Reported-by: Linus Gasser <list@markas-al-nour.org>
    Reported-by: Michael Hirsch <hirsch@teufel.de>
    Tested-by: Xinming Hu <huxm@marvell.com>
    Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: Maithili Hinge <maithili@marvell.com>
    Signed-off-by: Avinash Patil <patila@marvell.com>
    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 08c7de520767720580585c7d6b03a83f8cc694ee
Author: Gu Zheng <guz.fnst@cn.fujitsu.com>
Date:   Wed Jun 25 09:57:18 2014 +0800

    cpuset,mempolicy: fix sleeping function called from invalid context
    
    commit 391acf970d21219a2a5446282d3b20eace0c0d7a upstream.
    
    When runing with the kernel(3.15-rc7+), the follow bug occurs:
    [ 9969.258987] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:586
    [ 9969.359906] in_atomic(): 1, irqs_disabled(): 0, pid: 160655, name: python
    [ 9969.441175] INFO: lockdep is turned off.
    [ 9969.488184] CPU: 26 PID: 160655 Comm: python Tainted: G       A      3.15.0-rc7+ #85
    [ 9969.581032] Hardware name: FUJITSU-SV PRIMEQUEST 1800E/SB, BIOS PRIMEQUEST 1000 Series BIOS Version 1.39 11/16/2012
    [ 9969.706052]  ffffffff81a20e60 ffff8803e941fbd0 ffffffff8162f523 ffff8803e941fd18
    [ 9969.795323]  ffff8803e941fbe0 ffffffff8109995a ffff8803e941fc58 ffffffff81633e6c
    [ 9969.884710]  ffffffff811ba5dc ffff880405c6b480 ffff88041fdd90a0 0000000000002000
    [ 9969.974071] Call Trace:
    [ 9970.003403]  [<ffffffff8162f523>] dump_stack+0x4d/0x66
    [ 9970.065074]  [<ffffffff8109995a>] __might_sleep+0xfa/0x130
    [ 9970.130743]  [<ffffffff81633e6c>] mutex_lock_nested+0x3c/0x4f0
    [ 9970.200638]  [<ffffffff811ba5dc>] ? kmem_cache_alloc+0x1bc/0x210
    [ 9970.272610]  [<ffffffff81105807>] cpuset_mems_allowed+0x27/0x140
    [ 9970.344584]  [<ffffffff811b1303>] ? __mpol_dup+0x63/0x150
    [ 9970.409282]  [<ffffffff811b1385>] __mpol_dup+0xe5/0x150
    [ 9970.471897]  [<ffffffff811b1303>] ? __mpol_dup+0x63/0x150
    [ 9970.536585]  [<ffffffff81068c86>] ? copy_process.part.23+0x606/0x1d40
    [ 9970.613763]  [<ffffffff810bf28d>] ? trace_hardirqs_on+0xd/0x10
    [ 9970.683660]  [<ffffffff810ddddf>] ? monotonic_to_bootbased+0x2f/0x50
    [ 9970.759795]  [<ffffffff81068cf0>] copy_process.part.23+0x670/0x1d40
    [ 9970.834885]  [<ffffffff8106a598>] do_fork+0xd8/0x380
    [ 9970.894375]  [<ffffffff81110e4c>] ? __audit_syscall_entry+0x9c/0xf0
    [ 9970.969470]  [<ffffffff8106a8c6>] SyS_clone+0x16/0x20
    [ 9971.030011]  [<ffffffff81642009>] stub_clone+0x69/0x90
    [ 9971.091573]  [<ffffffff81641c29>] ? system_call_fastpath+0x16/0x1b
    
    The cause is that cpuset_mems_allowed() try to take
    mutex_lock(&callback_mutex) under the rcu_read_lock(which was hold in
    __mpol_dup()). And in cpuset_mems_allowed(), the access to cpuset is
    under rcu_read_lock, so in __mpol_dup, we can reduce the rcu_read_lock
    protection region to protect the access to cpuset only in
    current_cpuset_is_being_rebound(). So that we can avoid this bug.
    
    This patch is a temporary solution that just addresses the bug
    mentioned above, can not fix the long-standing issue about cpuset.mems
    rebinding on fork():
    
    "When the forker's task_struct is duplicated (which includes
     ->mems_allowed) and it races with an update to cpuset_being_rebound
     in update_tasks_nodemask() then the task's mems_allowed doesn't get
     updated. And the child task's mems_allowed can be wrong if the
     cpuset's nodemask changes before the child has been added to the
     cgroup's tasklist."
    
    Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
    Acked-by: Li Zefan <lizefan@huawei.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a89c6d3b6c9660ef09bc794135400b2f8f16db8f
Author: Brian King <brking@linux.vnet.ibm.com>
Date:   Fri May 23 10:52:11 2014 -0500

    ibmvscsi: Add memory barriers for send / receive
    
    commit 7114aae02742d6b5c5a0d39a41deb61d415d3717 upstream.
    
    Add a memory barrier prior to sending a new command to the VIOS
    to ensure the VIOS does not receive stale data in the command buffer.
    Also add a memory barrier when processing the CRQ for completed commands.
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    [bwh: Backported to 3.2: as the iSeries code is still present, these
     functions have different names and live in rpa_vscsi.c.]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d9916e33837bcb661d0faad19641eca425c1a52d
Author: Brian King <brking@linux.vnet.ibm.com>
Date:   Fri May 23 10:52:10 2014 -0500

    ibmvscsi: Abort init sequence during error recovery
    
    commit 9ee755974bea2f9880e517ec985dc9dede1b3a36 upstream.
    
    If a CRQ reset is triggered for some reason while in the middle
    of performing VSCSI adapter initialization, we don't want to
    call the done function for the initialization MAD commands as
    this will only result in two threads attempting initialization
    at the same time, resulting in failures.
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 54f216e45c7926999ba53d324ce7c207b07f5bae
Author: Wang, Yu <yu.y.wang@intel.com>
Date:   Tue Jun 24 17:14:44 2014 +0300

    xhci: Fix runtime suspended xhci from blocking system suspend.
    
    commit d6236f6d1d885aa19d1cd7317346fe795227a3cc upstream.
    
    The system suspend flow as following:
    1, Freeze all user processes and kenrel threads.
    
    2, Try to suspend all devices.
    
    2.1, If pci device is in RPM suspended state, then pci driver will try
    to resume it to RPM active state in the prepare stage.
    
    2.2, xhci_resume function calls usb_hcd_resume_root_hub to queue two
    workqueue items to resume usb2&usb3 roothub devices.
    
    2.3, Call suspend callbacks of devices.
    
    2.3.1, All suspend callbacks of all hcd's children, including
    roothub devices are called.
    
    2.3.2, Finally, hcd_pci_suspend callback is called.
    
    Due to workqueue threads were already frozen in step 1, the workqueue
    items can't be scheduled, and the roothub devices can't be resumed in
    this flow. The HCD_FLAG_WAKEUP_PENDING flag which is set in
    usb_hcd_resume_root_hub won't be cleared. Finally,
    hcd_pci_suspend will return -EBUSY, and system suspend fails.
    
    The reason why this issue doesn't show up very often is due to that
    choose_wakeup will be called in step 2.3.1. In step 2.3.1, if
    udev->do_remote_wakeup is not equal to device_may_wakeup(&udev->dev), then
    udev will resume to RPM active for changing the wakeup settings. This
    has been a lucky hit which hides this issue.
    
    For some special xHCI controllers which have no USB2 port, then roothub
    will not match hub driver due to probe failed. Then its
    do_remote_wakeup will be set to zero, and we won't be as lucky.
    
    xhci driver doesn't need to resume roothub devices everytime like in
    the above case. It's only needed when there are pending event TRBs.
    
    This patch should be back-ported to kernels as old as 3.2, that
    contains the commit f69e3120df82391a0ee8118e0a156239a06b2afb
    "USB: XHCI: resume root hubs when the controller resumes"
    
    Signed-off-by: Wang, Yu <yu.y.wang@intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    [use readl() instead of removed xhci_readl(), reword commit message -Mathias]
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6833fc8599e2eaad3b5bf2aef0a07468379cc43b
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Tue Jun 24 17:14:43 2014 +0300

    xhci: clear root port wake on bits if controller isn't wake-up capable
    
    commit ff8cbf250b448aac35589f6075082c3fcad8a8fe upstream.
    
    When xHCI PCI host is suspended, if do_wakeup is false in xhci_pci_suspend,
    xhci_bus_suspend needs to clear all root port wake on bits. Otherwise some Intel
    platforms may get a spurious wakeup, even if PCI PME# is disabled.
    
    This patch should be back-ported to kernels as old as 2.6.37, that
    contains the commit 9777e3ce907d4cb5a513902a87ecd03b52499569
    "USB: xHCI: bus power management implementation".
    
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b85631abb6d4fa4d70ee223c3c4a65c5bf7e1709
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Jun 24 17:14:41 2014 +0300

    xhci: correct burst count field for isoc transfers on 1.0 xhci hosts
    
    commit 3213b151387df0b95f4eada104f68eb1c1409cb3 upstream.
    
    The transfer burst count (TBC) field in xhci 1.0 hosts should be set
    to the number of bursts needed to transfer all packets in a isoc TD.
    Supported values are 0-2 (1 to 3 bursts per service interval).
    
    Formula for TBC calculation is given in xhci spec section 4.11.2.3:
    TBC = roundup( Transfer Descriptor Packet Count / Max Burst Size +1 ) - 1
    
    This patch should be applied to stable kernels since 3.0 that contain
    the commit 5cd43e33b9519143f06f507dd7cbee6b7a621885
    "xhci 1.0: Set transfer burst count field."
    
    Suggested-by: ShiChun Ma <masc2008@qq.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 31f8e87fc4a58d5207142b2108c22f39f4b9d147
Author: Bjørn Mork <bjorn@mork.no>
Date:   Fri Jun 6 17:25:56 2014 +0200

    usb: option: add/modify Olivetti Olicard modems
    
    commit b0ebef36e93703e59003ad6a1a20227e47714417 upstream.
    
    Adding a couple of Olivetti modems and blacklisting the net
    function on a couple which are already supported.
    
    Reported-by: Lars Melin <larsm17@gmail.com>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a4518ea13630be9dee5a1721e011ce61191e0d9e
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jun 5 16:05:52 2014 +0200

    USB: ftdi_sio: fix null deref at port probe
    
    commit aea1ae8760314e072bf1b773521e9de5d5dda10d upstream.
    
    Fix NULL-pointer dereference when probing an interface with no
    endpoints.
    
    These devices have two bulk endpoints per interface, but this avoids
    crashing the kernel if a user forces a non-FTDI device to be probed.
    
    Note that the iterator variable was made unsigned in order to avoid
    a maybe-uninitialized compiler warning for ep_desc after the loop.
    
    Fixes: 895f28badce9 ("USB: ftdi_sio: fix hi-speed device packet size
    calculation")
    
    Reported-by: Mike Remski <mremski@mutualink.net>
    Tested-by: Mike Remski <mremski@mutualink.net>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9919dc4b14683d1edefac5d13503046920776e72
Author: Michal Nazarewicz <mina86@mina86.com>
Date:   Tue Jun 17 17:47:41 2014 +0200

    usb: gadget: f_fs: fix NULL pointer dereference when there are no strings
    
    commit f0688c8b81d2ea239c3fb0b848f623b579238d99 upstream.
    
    If the descriptors do not need any strings and user space sends empty
    set of strings, the ffs->stringtabs field remains NULL.  Thus
    *ffs->stringtabs in functionfs_bind leads to a NULL pointer
    dereferenece.
    
    The bug was introduced by commit [fd7c9a007f: “use usb_string_ids_n()”].
    
    While at it, remove double initialisation of lang local variable in
    that function.
    
    ffs->strings_count does not need to be checked in any way since in
    the above scenario it will remain zero and usb_string_ids_n() is
    a no-operation when colled with 0 argument.
    
    Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 23f2204d5d91dc5c383fbc3707cc0694688e04c2
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Thu Jun 19 11:40:18 2014 +0200

    KVM: x86: preserve the high 32-bits of the PAT register
    
    commit 7cb060a91c0efc5ff94f83c6df3ed705e143cdb9 upstream.
    
    KVM does not really do much with the PAT, so this went unnoticed for a
    long time.  It is exposed however if you try to do rdmsr on the PAT
    register.
    
    Reported-by: Valentine Sinitsyn <valentine.sinitsyn@gmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4314612cfd22219e631a31aaed491b040b686562
Author: Nadav Amit <namit@cs.technion.ac.il>
Date:   Wed Jun 18 17:21:19 2014 +0300

    KVM: x86: Increase the number of fixed MTRR regs to 10
    
    commit 682367c494869008eb89ef733f196e99415ae862 upstream.
    
    Recent Intel CPUs have 10 variable range MTRRs. Since operating systems
    sometime make assumptions on CPUs while they ignore capability MSRs, it is
    better for KVM to be consistent with recent CPUs. Reporting more MTRRs than
    actually supported has no functional implications.
    
    Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d7a3e3ec5f4396517d6548abb03f07bdf915674f
Author: David R. Piegdon <lkml@p23q.org>
Date:   Mon Jun 16 23:42:51 2014 +0000

    ARM: OMAP2+: Fix parser-bug in platform muxing code
    
    commit c021f241f4fab2bb4fc4120a38a828a03dd3f970 upstream.
    
    Fix a parser-bug in the omap2 muxing code where muxtable-entries will be
    wrongly selected if the requested muxname is a *prefix* of their
    m0-entry and they have a matching mN-entry. Fix by additionally checking
    that the length of the m0_entry is equal.
    
    For example muxing of "dss_data2.dss_data2" on omap32xx will fail
    because the prefix "dss_data2" will match the mux-entries "dss_data2" as
    well as "dss_data20", with the suffix "dss_data2" matching m0 (for
    dss_data2) and m4 (for dss_data20). Thus both are recognized as signal
    path candidates:
    
    Relevant muxentries from mux34xx.c:
            _OMAP3_MUXENTRY(DSS_DATA20, 90,
                    "dss_data20", NULL, "mcspi3_somi", "dss_data2",
                    "gpio_90", NULL, NULL, "safe_mode"),
            _OMAP3_MUXENTRY(DSS_DATA2, 72,
                    "dss_data2", NULL, NULL, NULL,
                    "gpio_72", NULL, NULL, "safe_mode"),
    
    This will result in a failure to mux the pin at all:
    
     _omap_mux_get_by_name: Multiple signal paths (2) for dss_data2.dss_data2
    
    Patch should apply to linus' latest master down to rather old linux-2.6
    trees.
    
    Signed-off-by: David R. Piegdon <lkml@p23q.org>
    [tony@atomide.com: updated description to include full description]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3d4a1eea8aac05f347bbfbf41b9e2f8d6f116926
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sat Jul 12 21:00:54 2014 +0100

    Revert "net: ip, ipv6: handle gso skbs in forwarding path"
    
    This reverts commit caa5344994778a2b4725b2d75c74430f76925e4a, which
    was commit fe6cc55f3a9a053482a76f5a6b2257cee51b4663 upstream.  In 3.2,
    the transport header length is not calculated in the forwarding path,
    so skb_gso_network_seglen() returns an incorrect result.  We also have
    problems due to the local_df flag not being set correctly.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8bbfe822fbadf05ff84a057bde1e59c198e24aa0
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Fri Jul 11 20:01:52 2014 +0100

    Revert "net: ipv4: ip_forward: fix inverted local_df test"
    
    This reverts commit 59d9f389df3cdf72833d5ee17c3fe959b6bdc792, which
    was commit ca6c5d4ad216d5942ae544bbf02503041bd802aa upstream.  It is a
    valid fix, but depends on sk_buff::local_df being set in all the right
    cases, which it wasn't in 3.2.  We need to defer it unless and until
    the other fixes are also backported to 3.2.y.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>