commit 389fb5fb0b8b812ce0e853d5eca748b08fc73289
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Mar 6 14:42:00 2015 -0800

    Linux 3.10.71

commit 6af167fbe6c42fda5203b8095b92669dd0a687d4
Author: Ilya Dryomov <idryomov@gmail.com>
Date:   Tue Feb 17 19:37:15 2015 +0300

    libceph: fix double __remove_osd() problem
    
    commit 7eb71e0351fbb1b242ae70abb7bb17107fe2f792 upstream.
    
    It turns out it's possible to get __remove_osd() called twice on the
    same OSD.  That doesn't sit well with rb_erase() - depending on the
    shape of the tree we can get a NULL dereference, a soft lockup or
    a random crash at some point in the future as we end up touching freed
    memory.  One scenario that I was able to reproduce is as follows:
    
                <osd3 is idle, on the osd lru list>
    <con reset - osd3>
    con_fault_finish()
      osd_reset()
                                  <osdmap - osd3 down>
                                  ceph_osdc_handle_map()
                                    <takes map_sem>
                                    kick_requests()
                                      <takes request_mutex>
                                      reset_changed_osds()
                                        __reset_osd()
                                          __remove_osd()
                                      <releases request_mutex>
                                    <releases map_sem>
        <takes map_sem>
        <takes request_mutex>
        __kick_osd_requests()
          __reset_osd()
            __remove_osd() <-- !!!
    
    A case can be made that osd refcounting is imperfect and reworking it
    would be a proper resolution, but for now Sage and I decided to fix
    this by adding a safe guard around __remove_osd().
    
    Fixes: http://tracker.ceph.com/issues/8087
    
    Cc: Sage Weil <sage@redhat.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Reviewed-by: Sage Weil <sage@redhat.com>
    Reviewed-by: Alex Elder <elder@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54ff4c89a5445fa8f313a338c1cf5478317df154
Author: Ilya Dryomov <idryomov@redhat.com>
Date:   Wed Nov 5 19:33:44 2014 +0300

    libceph: change from BUG to WARN for __remove_osd() asserts
    
    commit cc9f1f518cec079289d11d732efa490306b1ddad upstream.
    
    No reason to use BUG_ON for osd request list assertions.
    
    Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
    Reviewed-by: Alex Elder <elder@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d3c6d27f48ce3b501c988bd0ab2232a0d4612c6
Author: Ilya Dryomov <ilya.dryomov@inktank.com>
Date:   Wed Jun 18 13:02:12 2014 +0400

    libceph: assert both regular and lingering lists in __remove_osd()
    
    commit 7c6e6fc53e7335570ed82f77656cedce1502744e upstream.
    
    It is important that both regular and lingering requests lists are
    empty when the OSD is removed.
    
    Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
    Reviewed-by: Alex Elder <elder@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 813a631f08c7112f12a3da9f63da632c925a8b37
Author: James Hogan <james.hogan@imgtec.com>
Date:   Tue Feb 10 10:02:59 2015 +0000

    MIPS: Export FP functions used by lose_fpu(1) for KVM
    
    commit 3ce465e04bfd8de9956d515d6e9587faac3375dc upstream.
    
    Export the _save_fp asm function used by the lose_fpu(1) macro to GPL
    modules so that KVM can make use of it when it is built as a module.
    
    This fixes the following build error when CONFIG_KVM=m due to commit
    f798217dfd03 ("KVM: MIPS: Don't leak FPU/DSP to guest"):
    
    ERROR: "_save_fp" [arch/mips/kvm/kvm.ko] undefined!
    
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Fixes: f798217dfd03 (KVM: MIPS: Don't leak FPU/DSP to guest)
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Paul Burton <paul.burton@imgtec.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: kvm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/9260/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    [james.hogan@imgtec.com: Only export when CPU_R4K_FPU=y prior to v3.16,
     so as not to break the Octeon build which excludes FPU support. KVM
     depends on MIPS32r2 anyway.]
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f2e84da8a809db7747dd9712a120a44bebd92f3
Author: Hector Marco-Gisbert <hecmargi@upv.es>
Date:   Sat Feb 14 09:33:50 2015 -0800

    x86, mm/ASLR: Fix stack randomization on 64-bit systems
    
    commit 4e7c22d447bb6d7e37bfe39ff658486ae78e8d77 upstream.
    
    The issue is that the stack for processes is not properly randomized on
    64 bit architectures due to an integer overflow.
    
    The affected function is randomize_stack_top() in file
    "fs/binfmt_elf.c":
    
      static unsigned long randomize_stack_top(unsigned long stack_top)
      {
               unsigned int random_variable = 0;
    
               if ((current->flags & PF_RANDOMIZE) &&
                       !(current->personality & ADDR_NO_RANDOMIZE)) {
                       random_variable = get_random_int() & STACK_RND_MASK;
                       random_variable <<= PAGE_SHIFT;
               }
               return PAGE_ALIGN(stack_top) + random_variable;
               return PAGE_ALIGN(stack_top) - random_variable;
      }
    
    Note that, it declares the "random_variable" variable as "unsigned int".
    Since the result of the shifting operation between STACK_RND_MASK (which
    is 0x3fffff on x86_64, 22 bits) and PAGE_SHIFT (which is 12 on x86_64):
    
    	  random_variable <<= PAGE_SHIFT;
    
    then the two leftmost bits are dropped when storing the result in the
    "random_variable". This variable shall be at least 34 bits long to hold
    the (22+12) result.
    
    These two dropped bits have an impact on the entropy of process stack.
    Concretely, the total stack entropy is reduced by four: from 2^28 to
    2^30 (One fourth of expected entropy).
    
    This patch restores back the entropy by correcting the types involved
    in the operations in the functions randomize_stack_top() and
    stack_maxrandom_size().
    
    The successful fix can be tested with:
    
      $ for i in `seq 1 10`; do cat /proc/self/maps | grep stack; done
      7ffeda566000-7ffeda587000 rw-p 00000000 00:00 0                          [stack]
      7fff5a332000-7fff5a353000 rw-p 00000000 00:00 0                          [stack]
      7ffcdb7a1000-7ffcdb7c2000 rw-p 00000000 00:00 0                          [stack]
      7ffd5e2c4000-7ffd5e2e5000 rw-p 00000000 00:00 0                          [stack]
      ...
    
    Once corrected, the leading bytes should be between 7ffc and 7fff,
    rather than always being 7fff.
    
    Signed-off-by: Hector Marco-Gisbert <hecmargi@upv.es>
    Signed-off-by: Ismael Ripoll <iripoll@upv.es>
    [ Rebased, fixed 80 char bugs, cleaned up commit message, added test example and CVE ]
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Fixes: CVE-2015-1593
    Link: http://lkml.kernel.org/r/20150214173350.GA18393@www.outflux.net
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 65e63ea91b18e634c53e68a846608fcf8d571418
Author: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Date:   Mon Feb 16 17:16:45 2015 -0200

    blk-throttle: check stats_cpu before reading it from sysfs
    
    commit 045c47ca306acf30c740c285a77a4b4bda6be7c5 upstream.
    
    When reading blkio.throttle.io_serviced in a recently created blkio
    cgroup, it's possible to race against the creation of a throttle policy,
    which delays the allocation of stats_cpu.
    
    Like other functions in the throttle code, just checking for a NULL
    stats_cpu prevents the following oops caused by that race.
    
    [ 1117.285199] Unable to handle kernel paging request for data at address 0x7fb4d0020
    [ 1117.285252] Faulting instruction address: 0xc0000000003efa2c
    [ 1137.733921] Oops: Kernel access of bad area, sig: 11 [#1]
    [ 1137.733945] SMP NR_CPUS=2048 NUMA PowerNV
    [ 1137.734025] Modules linked in: bridge stp llc kvm_hv kvm binfmt_misc autofs4
    [ 1137.734102] CPU: 3 PID: 5302 Comm: blkcgroup Not tainted 3.19.0 #5
    [ 1137.734132] task: c000000f1d188b00 ti: c000000f1d210000 task.ti: c000000f1d210000
    [ 1137.734167] NIP: c0000000003efa2c LR: c0000000003ef9f0 CTR: c0000000003ef980
    [ 1137.734202] REGS: c000000f1d213500 TRAP: 0300   Not tainted  (3.19.0)
    [ 1137.734230] MSR: 9000000000009032 <SF,HV,EE,ME,IR,DR,RI>  CR: 42008884  XER: 20000000
    [ 1137.734325] CFAR: 0000000000008458 DAR: 00000007fb4d0020 DSISR: 40000000 SOFTE: 0
    GPR00: c0000000003ed3a0 c000000f1d213780 c000000000c59538 0000000000000000
    GPR04: 0000000000000800 0000000000000000 0000000000000000 0000000000000000
    GPR08: ffffffffffffffff 00000007fb4d0020 00000007fb4d0000 c000000000780808
    GPR12: 0000000022000888 c00000000fdc0d80 0000000000000000 0000000000000000
    GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    GPR20: 000001003e120200 c000000f1d5b0cc0 0000000000000200 0000000000000000
    GPR24: 0000000000000001 c000000000c269e0 0000000000000020 c000000f1d5b0c80
    GPR28: c000000000ca3a08 c000000000ca3dec c000000f1c667e00 c000000f1d213850
    [ 1137.734886] NIP [c0000000003efa2c] .tg_prfill_cpu_rwstat+0xac/0x180
    [ 1137.734915] LR [c0000000003ef9f0] .tg_prfill_cpu_rwstat+0x70/0x180
    [ 1137.734943] Call Trace:
    [ 1137.734952] [c000000f1d213780] [d000000005560520] 0xd000000005560520 (unreliable)
    [ 1137.734996] [c000000f1d2138a0] [c0000000003ed3a0] .blkcg_print_blkgs+0xe0/0x1a0
    [ 1137.735039] [c000000f1d213960] [c0000000003efb50] .tg_print_cpu_rwstat+0x50/0x70
    [ 1137.735082] [c000000f1d2139e0] [c000000000104b48] .cgroup_seqfile_show+0x58/0x150
    [ 1137.735125] [c000000f1d213a70] [c0000000002749dc] .kernfs_seq_show+0x3c/0x50
    [ 1137.735161] [c000000f1d213ae0] [c000000000218630] .seq_read+0xe0/0x510
    [ 1137.735197] [c000000f1d213bd0] [c000000000275b04] .kernfs_fop_read+0x164/0x200
    [ 1137.735240] [c000000f1d213c80] [c0000000001eb8e0] .__vfs_read+0x30/0x80
    [ 1137.735276] [c000000f1d213cf0] [c0000000001eb9c4] .vfs_read+0x94/0x1b0
    [ 1137.735312] [c000000f1d213d90] [c0000000001ebb38] .SyS_read+0x58/0x100
    [ 1137.735349] [c000000f1d213e30] [c000000000009218] syscall_exit+0x0/0x98
    [ 1137.735383] Instruction dump:
    [ 1137.735405] 7c6307b4 7f891800 409d00b8 60000000 60420000 3d420004 392a63b0 786a1f24
    [ 1137.735471] 7d49502a e93e01c8 7d495214 7d2ad214 <7cead02a> e9090008 e9490010 e9290018
    
    And here is one code that allows to easily reproduce this, although this
    has first been found by running docker.
    
    void run(pid_t pid)
    {
    	int n;
    	int status;
    	int fd;
    	char *buffer;
    	buffer = memalign(BUFFER_ALIGN, BUFFER_SIZE);
    	n = snprintf(buffer, BUFFER_SIZE, "%d\n", pid);
    	fd = open(CGPATH "/test/tasks", O_WRONLY);
    	write(fd, buffer, n);
    	close(fd);
    	if (fork() > 0) {
    		fd = open("/dev/sda", O_RDONLY | O_DIRECT);
    		read(fd, buffer, 512);
    		close(fd);
    		wait(&status);
    	} else {
    		fd = open(CGPATH "/test/blkio.throttle.io_serviced", O_RDONLY);
    		n = read(fd, buffer, BUFFER_SIZE);
    		close(fd);
    	}
    	free(buffer);
    	exit(0);
    }
    
    void test(void)
    {
    	int status;
    	mkdir(CGPATH "/test", 0666);
    	if (fork() > 0)
    		wait(&status);
    	else
    		run(getpid());
    	rmdir(CGPATH "/test");
    }
    
    int main(int argc, char **argv)
    {
    	int i;
    	for (i = 0; i < NR_TESTS; i++)
    		test();
    	return 0;
    }
    
    Reported-by: Ricardo Marin Matinata <rmm@br.ibm.com>
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6192e21a91dca9f225f028079835aa04601e1309
Author: Chen Jie <chenjie6@huawei.com>
Date:   Tue Feb 10 12:49:48 2015 -0800

    jffs2: fix handling of corrupted summary length
    
    commit 164c24063a3eadee11b46575c5482b2f1417be49 upstream.
    
    sm->offset maybe wrong but magic maybe right, the offset do not have CRC.
    
    Badness at c00c7580 [verbose debug info unavailable]
    NIP: c00c7580 LR: c00c718c CTR: 00000014
    REGS: df07bb40 TRAP: 0700   Not tainted  (2.6.34.13-WR4.3.0.0_standard)
    MSR: 00029000 <EE,ME,CE>  CR: 22084f84  XER: 00000000
    TASK = df84d6e0[908] 'mount' THREAD: df07a000
    GPR00: 00000001 df07bbf0 df84d6e0 00000000 00000001 00000000 df07bb58 00000041
    GPR08: 00000041 c0638860 00000000 00000010 22084f88 100636c8 df814ff8 00000000
    GPR16: df84d6e0 dfa558cc c05adb90 00000048 c0452d30 00000000 000240d0 000040d0
    GPR24: 00000014 c05ae734 c05be2e0 00000000 00000001 00000000 00000000 c05ae730
    NIP [c00c7580] __alloc_pages_nodemask+0x4d0/0x638
    LR [c00c718c] __alloc_pages_nodemask+0xdc/0x638
    Call Trace:
    [df07bbf0] [c00c718c] __alloc_pages_nodemask+0xdc/0x638 (unreliable)
    [df07bc90] [c00c7708] __get_free_pages+0x20/0x48
    [df07bca0] [c00f4a40] __kmalloc+0x15c/0x1ec
    [df07bcd0] [c01fc880] jffs2_scan_medium+0xa58/0x14d0
    [df07bd70] [c01ff38c] jffs2_do_mount_fs+0x1f4/0x6b4
    [df07bdb0] [c020144c] jffs2_do_fill_super+0xa8/0x260
    [df07bdd0] [c020230c] jffs2_fill_super+0x104/0x184
    [df07be00] [c0335814] get_sb_mtd_aux+0x9c/0xec
    [df07be20] [c033596c] get_sb_mtd+0x84/0x1e8
    [df07be60] [c0201ed0] jffs2_get_sb+0x1c/0x2c
    [df07be70] [c0103898] vfs_kern_mount+0x78/0x1e8
    [df07bea0] [c0103a58] do_kern_mount+0x40/0x100
    [df07bec0] [c011fe90] do_mount+0x240/0x890
    [df07bf10] [c0120570] sys_mount+0x90/0xd8
    [df07bf40] [c00110d8] ret_from_syscall+0x0/0x4
    
    === Exception: c01 at 0xff61a34
        LR = 0x100135f0
    Instruction dump:
    38800005 38600000 48010f41 4bfffe1c 4bfc2d15 4bfffe8c 72e90200 4082fc28
    3d20c064 39298860 8809000d 68000001 <0f000000> 2f800000 419efc0c 38000001
    mount: mounting /dev/mtdblock3 on /common failed: Input/output error
    
    Signed-off-by: Chen Jie <chenjie6@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b581e762b1a452ac94d452117a6c953f4d011767
Author: Tomáš Hodek <tomas.hodek@volny.cz>
Date:   Mon Feb 23 11:00:38 2015 +1100

    md/raid1: fix read balance when a drive is write-mostly.
    
    commit d1901ef099c38afd11add4cfb3312c02ef21ec4a upstream.
    
    When a drive is marked write-mostly it should only be the
    target of reads if there is no other option.
    
    This behaviour was broken by
    
    commit 9dedf60313fa4dddfd5b9b226a0ef12a512bf9dc
        md/raid1: read balance chooses idlest disk for SSD
    
    which causes a write-mostly device to be *preferred* is some cases.
    
    Restore correct behaviour by checking and setting
    best_dist_disk and best_pending_disk rather than best_disk.
    
    We only need to test one of these as they are both changed
    from -1 or >=0 at the same time.
    
    As we leave min_pending and best_dist unchanged, any non-write-mostly
    device will appear better than the write-mostly device.
    
    Reported-by: Tomáš Hodek <tomas.hodek@volny.cz>
    Reported-by: Dark Penguin <darkpenguin@yandex.ru>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Link: http://marc.info/?l=linux-raid&m=135982797322422
    Fixes: 9dedf60313fa4dddfd5b9b226a0ef12a512bf9dc
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58f0e96a4358f164f3857ee0d609d1b75a3ccf7d
Author: NeilBrown <neilb@suse.de>
Date:   Wed Feb 18 11:35:14 2015 +1100

    md/raid5: Fix livelock when array is both resyncing and degraded.
    
    commit 26ac107378c4742978216be1005b7291b799c7b2 upstream.
    
    Commit a7854487cd7128a30a7f4f5259de9f67d5efb95f:
      md: When RAID5 is dirty, force reconstruct-write instead of read-modify-write.
    
    Causes an RCW cycle to be forced even when the array is degraded.
    A degraded array cannot support RCW as that requires reading all data
    blocks, and one may be missing.
    
    Forcing an RCW when it is not possible causes a live-lock and the code
    spins, repeatedly deciding to do something that cannot succeed.
    
    So change the condition to only force RCW on non-degraded arrays.
    
    Reported-by: Manibalan P <pmanibalan@amiindia.co.in>
    Bisected-by: Jes Sorensen <Jes.Sorensen@redhat.com>
    Tested-by: Jes Sorensen <Jes.Sorensen@redhat.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Fixes: a7854487cd7128a30a7f4f5259de9f67d5efb95f
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb96928e7520aa9c68074afd7229a2020005d132
Author: James Hogan <james.hogan@imgtec.com>
Date:   Tue Feb 24 12:25:25 2015 +0000

    metag: Fix KSTK_EIP() and KSTK_ESP() macros
    
    commit c2996cb29bfb73927a79dc96e598a718e843f01a upstream.
    
    The KSTK_EIP() and KSTK_ESP() macros should return the user program
    counter (PC) and stack pointer (A0StP) of the given task. These are used
    to determine which VMA corresponds to the user stack in
    /proc/<pid>/maps, and for the user PC & A0StP in /proc/<pid>/stat.
    
    However for Meta the PC & A0StP from the task's kernel context are used,
    resulting in broken output. For example in following /proc/<pid>/maps
    output, the 3afff000-3b021000 VMA should be described as the stack:
    
      # cat /proc/self/maps
      ...
      100b0000-100b1000 rwxp 00000000 00:00 0          [heap]
      3afff000-3b021000 rwxp 00000000 00:00 0
    
    And in the following /proc/<pid>/stat output, the PC is in kernel code
    (1074234964 = 0x40078654) and the A0StP is in the kernel heap
    (1335981392 = 0x4fa17550):
    
      # cat /proc/self/stat
      51 (cat) R ... 1335981392 1074234964 ...
    
    Fix the definitions of KSTK_EIP() and KSTK_ESP() to use
    task_pt_regs(tsk)->ctx rather than (tsk)->thread.kernel_context. This
    gets the registers from the user context stored after the thread info at
    the base of the kernel stack, which is from the last entry into the
    kernel from userland, regardless of where in the kernel the task may
    have been interrupted, which results in the following more correct
    /proc/<pid>/maps output:
    
      # cat /proc/self/maps
      ...
      0800b000-08070000 r-xp 00000000 00:02 207        /lib/libuClibc-0.9.34-git.so
      ...
      100b0000-100b1000 rwxp 00000000 00:00 0          [heap]
      3afff000-3b021000 rwxp 00000000 00:00 0          [stack]
    
    And /proc/<pid>/stat now correctly reports the PC in libuClibc
    (134320308 = 0x80190b4) and the A0StP in the [stack] region (989864576 =
    0x3b002280):
    
      # cat /proc/self/stat
      51 (cat) R ... 989864576 134320308 ...
    
    Reported-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
    Reported-by: Vineet Gupta <Vineet.Gupta1@synopsys.com>
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: linux-metag@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd17ef27db2d79b4cb2ade1dc03f5ee151b0240b
Author: Nicolas Saenz Julienne <nicolassaenzj@gmail.com>
Date:   Thu Feb 19 01:52:25 2015 +0000

    gpio: tps65912: fix wrong container_of arguments
    
    commit 2f97c20e5f7c3582c7310f65a04465bfb0fd0e85 upstream.
    
    The gpio_chip operations receive a pointer the gpio_chip struct which is
    contained in the driver's private struct, yet the container_of call in those
    functions point to the mfd struct defined in include/linux/mfd/tps65912.h.
    
    Signed-off-by: Nicolas Saenz Julienne <nicolassaenzj@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 424180f54384dd24cbd81e503d41eaa531ca0580
Author: Catalin Marinas <catalin.marinas@arm.com>
Date:   Mon Feb 23 15:13:40 2015 +0000

    arm64: compat Fix siginfo_t -> compat_siginfo_t conversion on big endian
    
    commit 9d42d48a342aee208c1154696196497fdc556bbf upstream.
    
    The native (64-bit) sigval_t union contains sival_int (32-bit) and
    sival_ptr (64-bit). When a compat application invokes a syscall that
    takes a sigval_t value (as part of a larger structure, e.g.
    compat_sys_mq_notify, compat_sys_timer_create), the compat_sigval_t
    union is converted to the native sigval_t with sival_int overlapping
    with either the least or the most significant half of sival_ptr,
    depending on endianness. When the corresponding signal is delivered to a
    compat application, on big endian the current (compat_uptr_t)sival_ptr
    cast always returns 0 since sival_int corresponds to the top part of
    sival_ptr. This patch fixes copy_siginfo_to_user32() so that sival_int
    is copied to the compat_siginfo_t structure.
    
    Reported-by: Bamvor Jian Zhang <bamvor.zhangjian@huawei.com>
    Tested-by: Bamvor Jian Zhang <bamvor.zhangjian@huawei.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09fc2667f76b53fabf9af2cc6ebd936fecfe6ffe
Author: Martin Vajnar <martin.vajnar@gmail.com>
Date:   Wed Dec 24 00:27:57 2014 +0100

    hx4700: regulator: declare full constraints
    
    commit a52d209336f8fc7483a8c7f4a8a7d2a8e1692a6c upstream.
    
    Since the removal of CONFIG_REGULATOR_DUMMY option, the touchscreen stopped
    working. This patch enables the "replacement" for REGULATOR_DUMMY and
    allows the touchscreen to work even though there is no regulator for "vcc".
    
    Signed-off-by: Martin Vajnar <martin.vajnar@gmail.com>
    Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7e4884e64bcfefd359812a96505ecfa67c3ce8d
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Tue Nov 4 21:30:44 2014 -0200

    KVM: x86: update masterclock values on TSC writes
    
    commit 7f187922ddf6b67f2999a76dcb71663097b75497 upstream.
    
    When the guest writes to the TSC, the masterclock TSC copy must be
    updated as well along with the TSC_OFFSET update, otherwise a negative
    tsc_timestamp is calculated at kvm_guest_time_update.
    
    Once "if (!vcpus_matched && ka->use_master_clock)" is simplified to
    "if (ka->use_master_clock)", the corresponding "if (!ka->use_master_clock)"
    becomes redundant, so remove the do_request boolean and collapse
    everything into a single condition.
    
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef6bb317ad2f9fc585fcb87e6393763ea9850265
Author: James Hogan <james.hogan@imgtec.com>
Date:   Wed Feb 4 17:06:37 2015 +0000

    KVM: MIPS: Don't leak FPU/DSP to guest
    
    commit f798217dfd038af981a18bbe4bc57027a08bb182 upstream.
    
    The FPU and DSP are enabled via the CP0 Status CU1 and MX bits by
    kvm_mips_set_c0_status() on a guest exit, presumably in case there is
    active state that needs saving if pre-emption occurs. However neither of
    these bits are cleared again when returning to the guest.
    
    This effectively gives the guest access to the FPU/DSP hardware after
    the first guest exit even though it is not aware of its presence,
    allowing FP instructions in guest user code to intermittently actually
    execute instead of trapping into the guest OS for emulation. It will
    then read & manipulate the hardware FP registers which technically
    belong to the user process (e.g. QEMU), or are stale from another user
    process. It can also crash the guest OS by causing an FP exception, for
    which a guest exception handler won't have been registered.
    
    First lets save and disable the FPU (and MSA) state with lose_fpu(1)
    before entering the guest. This simplifies the problem, especially for
    when guest FPU/MSA support is added in the future, and prevents FR=1 FPU
    state being live when the FR bit gets cleared for the guest, which
    according to the architecture causes the contents of the FPU and vector
    registers to become UNPREDICTABLE.
    
    We can then safely remove the enabling of the FPU in
    kvm_mips_set_c0_status(), since there should never be any active FPU or
    MSA state to save at pre-emption, which should plug the FPU leak.
    
    DSP state is always live rather than being lazily restored, so for that
    it is simpler to just clear the MX bit again when re-entering the guest.
    
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Sanjay Lal <sanjayl@kymasys.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: kvm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: <stable@vger.kernel.org> # v3.10+: 044f0f03eca0: MIPS: KVM: Deliver guest interrupts
    Cc: <stable@vger.kernel.org> # v3.10+
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16eff7f2f472966415d6d0f598fe11da31d24432
Author: Alexey Brodkin <abrodkin@synopsys.com>
Date:   Thu Feb 12 21:10:11 2015 +0300

    ARC: fix page address calculation if PAGE_OFFSET != LINUX_LINK_BASE
    
    commit 06f34e1c28f3608b0ce5b310e41102d3fe7b65a1 upstream.
    
    We used to calculate page address differently in 2 cases:
    
    1. In virt_to_page(x) we do
     --->8---
     mem_map + (x - CONFIG_LINUX_LINK_BASE) >> PAGE_SHIFT
     --->8---
    
    2. In in pte_page(x) we do
     --->8---
     mem_map + (pte_val(x) - PAGE_OFFSET) >> PAGE_SHIFT
     --->8---
    
    That leads to problems in case PAGE_OFFSET != CONFIG_LINUX_LINK_BASE -
    different pages will be selected depending on where and how we calculate
    page address.
    
    In particular in the STAR 9000853582 when gdb attempted to read memory
    of another process it got improper page in get_user_pages() because this
    is exactly one of the places where we search for a page by pte_page().
    
    The fix is trivial - we need to calculate page address similarly in both
    cases.
    
    Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72e2d609260a5a7515d4c9d2d709759fc282e552
Author: John Stultz <john.stultz@linaro.org>
Date:   Mon Feb 9 23:30:36 2015 -0800

    ntp: Fixup adjtimex freq validation on 32-bit systems
    
    commit 29183a70b0b828500816bd794b3fe192fce89f73 upstream.
    
    Additional validation of adjtimex freq values to avoid
    potential multiplication overflows were added in commit
    5e5aeb4367b (time: adjtimex: Validate the ADJ_FREQUENCY values)
    
    Unfortunately the patch used LONG_MAX/MIN instead of
    LLONG_MAX/MIN, which was fine on 64-bit systems, but being
    much smaller on 32-bit systems caused false positives
    resulting in most direct frequency adjustments to fail w/
    EINVAL.
    
    ntpd only does direct frequency adjustments at startup, so
    the issue was not as easily observed there, but other time
    sync applications like ptpd and chrony were more effected by
    the bug.
    
    See bugs:
    
      https://bugzilla.kernel.org/show_bug.cgi?id=92481
      https://bugzilla.redhat.com/show_bug.cgi?id=1188074
    
    This patch changes the checks to use LLONG_MAX for
    clarity, and additionally the checks are disabled
    on 32-bit systems since LLONG_MAX/PPM_SCALE is always
    larger then the 32-bit long freq value, so multiplication
    overflows aren't possible there.
    
    Reported-by: Josh Boyer <jwboyer@fedoraproject.org>
    Reported-by: George Joseph <george.joseph@fairview5.com>
    Tested-by: George Joseph <george.joseph@fairview5.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Link: http://lkml.kernel.org/r/1423553436-29747-1-git-send-email-john.stultz@linaro.org
    [ Prettified the changelog and the comments a bit. ]
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab92b84e8d3efaff78ca896ae2a0f3b2edc871b0
Author: Jay Lan <jlan@sgi.com>
Date:   Mon Sep 29 15:36:57 2014 -0700

    kdb: fix incorrect counts in KDB summary command output
    
    commit 146755923262037fc4c54abc28c04b1103f3cc51 upstream.
    
    The output of KDB 'summary' command should report MemTotal, MemFree
    and Buffers output in kB. Current codes report in unit of pages.
    
    A define of K(x) as
    is defined in the code, but not used.
    
    This patch would apply the define to convert the values to kB.
    Please include me on Cc on replies. I do not subscribe to linux-kernel.
    
    Signed-off-by: Jay Lan <jlan@sgi.com>
    Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e35c538b978e909a7805997f5944d5a0b7f5e95
Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Date:   Thu Dec 4 14:10:01 2014 +0300

    ARM: pxa: add regulator_has_full_constraints to poodle board file
    
    commit 9bc78f32c2e430aebf6def965b316aa95e37a20c upstream.
    
    Add regulator_has_full_constraints() call to poodle board file to let
    regulator core know that we do not have any additional regulators left.
    This lets it substitute unprovided regulators with dummy ones.
    
    This fixes the following warnings that can be seen on poodle if
    regulators are enabled:
    
    ads7846 spi1.0: unable to get regulator: -517
    spi spi1.0: Driver ads7846 requests probe deferral
    wm8731 0-001b: Failed to get supply 'AVDD': -517
    wm8731 0-001b: Failed to request supplies: -517
    wm8731 0-001b: ASoC: failed to probe component -517
    
    Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Acked-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3dd19196c47778f7e23e5db3eda22f69de31d45
Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Date:   Thu Dec 4 14:10:00 2014 +0300

    ARM: pxa: add regulator_has_full_constraints to corgi board file
    
    commit 271e80176aae4e5b481f4bb92df9768c6075bbca upstream.
    
    Add regulator_has_full_constraints() call to corgi board file to let
    regulator core know that we do not have any additional regulators left.
    This lets it substitute unprovided regulators with dummy ones.
    
    This fixes the following warnings that can be seen on corgi if
    regulators are enabled:
    
    ads7846 spi1.0: unable to get regulator: -517
    spi spi1.0: Driver ads7846 requests probe deferral
    wm8731 0-001b: Failed to get supply 'AVDD': -517
    wm8731 0-001b: Failed to request supplies: -517
    wm8731 0-001b: ASoC: failed to probe component -517
    corgi-audio corgi-audio: ASoC: failed to instantiate card -517
    
    Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Acked-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cabab528e7641cc210791af946031ff98d06046d
Author: Nicolas Pitre <nicolas.pitre@linaro.org>
Date:   Fri Jan 23 17:07:21 2015 -0500

    vt: provide notifications on selection changes
    
    commit 19e3ae6b4f07a87822c1c9e7ed99d31860e701af upstream.
    
    The vcs device's poll/fasync support relies on the vt notifier to signal
    changes to the screen content.  Notifier invocations were missing for
    changes that comes through the selection interface though.  Fix that.
    
    Tested with BRLTTY 5.2.
    
    Signed-off-by: Nicolas Pitre <nico@linaro.org>
    Cc: Dave Mielke <dave@mielke.cc>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8b1d57fdf3dd846e4b797a913aecd7f832abb629
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Fri Dec 5 15:13:54 2014 +0100

    usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN
    
    commit 5efd2ea8c9f4f12916ffc8ba636792ce052f6911 upstream.
    
    the following error pops up during "testusb -a -t 10"
    | musb-hdrc musb-hdrc.1.auto: dma_pool_free buffer-128,	f134e000/be842000 (bad dma)
    hcd_buffer_create() creates a few buffers, the smallest has 32 bytes of
    size. ARCH_KMALLOC_MINALIGN is set to 64 bytes. This combo results in
    hcd_buffer_alloc() returning memory which is 32 bytes aligned and it
    might by identified by buffer_offset() as another buffer. This means the
    buffer which is on a 32 byte boundary will not get freed, instead it
    tries to free another buffer with the error message.
    
    This patch fixes the issue by creating the smallest DMA buffer with the
    size of ARCH_KMALLOC_MINALIGN (or 32 in case ARCH_KMALLOC_MINALIGN is
    smaller). This might be 32, 64 or even 128 bytes. The next three pools
    will have the size 128, 512 and 2048.
    In case the smallest pool is 128 bytes then we have only three pools
    instead of four (and zero the first entry in the array).
    The last pool size is always 2048 bytes which is the assumed PAGE_SIZE /
    2 of 4096. I doubt it makes sense to continue using PAGE_SIZE / 2 where
    we would end up with 8KiB buffer in case we have 16KiB pages.
    Instead I think it makes sense to have a common size(s) and extend them
    if there is need to.
    There is a BUILD_BUG_ON() now in case someone has a minalign of more than
    128 bytes.
    
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c237545ea8eab3d3e7647bde17634f51327847ff
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Fri Jan 30 12:58:26 2015 -0500

    USB: fix use-after-free bug in usb_hcd_unlink_urb()
    
    commit c99197902da284b4b723451c1471c45b18537cde upstream.
    
    The usb_hcd_unlink_urb() routine in hcd.c contains two possible
    use-after-free errors.  The dev_dbg() statement at the end of the
    routine dereferences urb and urb->dev even though both structures may
    have been deallocated.
    
    This patch fixes the problem by storing urb->dev in a local variable
    (avoiding the dereference of urb) and moving the dev_dbg() up before
    the usb_put_dev() call.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Joe Lawrence <joe.lawrence@stratus.com>
    Tested-by: Joe Lawrence <joe.lawrence@stratus.com>
    Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 931c8f77302707c736236b3d8b4c4ad0854b51c8
Author: Lennart Sorensen <lsorense@csclub.uwaterloo.ca>
Date:   Wed Jan 21 15:24:27 2015 -0500

    USB: cp210x: add ID for RUGGEDCOM USB Serial Console
    
    commit a6f0331236fa75afba14bbcf6668d42cebb55c43 upstream.
    
    Added the USB serial console device ID for Siemens Ruggedcom devices
    which have a USB port for their serial console.
    
    Signed-off-by: Len Sorensen <lsorense@csclub.uwaterloo.ca>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4324af6a14ad1c0553a35d82a17d2a6066e98b79
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Mon Jan 19 13:05:03 2015 -0500

    tty: Prevent untrappable signals from malicious program
    
    commit 37480a05685ed5b8e1b9bf5e5c53b5810258b149 upstream.
    
    Commit 26df6d13406d1a5 ("tty: Add EXTPROC support for LINEMODE")
    allows a process which has opened a pty master to send _any_ signal
    to the process group of the pty slave. Although potentially
    exploitable by a malicious program running a setuid program on
    a pty slave, it's unknown if this exploit currently exists.
    
    Limit to signals actually used.
    
    Cc: Theodore Ts'o <tytso@mit.edu>
    Cc: Howard Chu <hyc@symas.com>
    Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d8039b13aea028b16676c28fcac358ec24e7b3b
Author: Matthew Wilcox <matthew.r.wilcox@intel.com>
Date:   Wed Jan 7 18:04:18 2015 +0200

    axonram: Fix bug in direct_access
    
    commit 91117a20245b59f70b563523edbf998a62fc6383 upstream.
    
    The 'pfn' returned by axonram was completely bogus, and has been since
    2008.
    
    Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a9a6a13371bac27f6cd7c9fc52f9b1ee98c2ba4
Author: Jeff Moyer <jmoyer@redhat.com>
Date:   Mon Jan 12 15:21:01 2015 -0500

    cfq-iosched: fix incorrect filing of rt async cfqq
    
    commit c6ce194325cef342313e3d27620411ce90a89c50 upstream.
    
    Hi,
    
    If you can manage to submit an async write as the first async I/O from
    the context of a process with realtime scheduling priority, then a
    cfq_queue is allocated, but filed into the wrong async_cfqq bucket.  It
    ends up in the best effort array, but actually has realtime I/O
    scheduling priority set in cfqq->ioprio.
    
    The reason is that cfq_get_queue assumes the default scheduling class and
    priority when there is no information present (i.e. when the async cfqq
    is created):
    
    static struct cfq_queue *
    cfq_get_queue(struct cfq_data *cfqd, bool is_sync, struct cfq_io_cq *cic,
    	      struct bio *bio, gfp_t gfp_mask)
    {
    	const int ioprio_class = IOPRIO_PRIO_CLASS(cic->ioprio);
    	const int ioprio = IOPRIO_PRIO_DATA(cic->ioprio);
    
    cic->ioprio starts out as 0, which is "invalid".  So, class of 0
    (IOPRIO_CLASS_NONE) is passed to cfq_async_queue_prio like so:
    
    		async_cfqq = cfq_async_queue_prio(cfqd, ioprio_class, ioprio);
    
    static struct cfq_queue **
    cfq_async_queue_prio(struct cfq_data *cfqd, int ioprio_class, int ioprio)
    {
            switch (ioprio_class) {
            case IOPRIO_CLASS_RT:
                    return &cfqd->async_cfqq[0][ioprio];
            case IOPRIO_CLASS_NONE:
                    ioprio = IOPRIO_NORM;
                    /* fall through */
            case IOPRIO_CLASS_BE:
                    return &cfqd->async_cfqq[1][ioprio];
            case IOPRIO_CLASS_IDLE:
                    return &cfqd->async_idle_cfqq;
            default:
                    BUG();
            }
    }
    
    Here, instead of returning a class mapped from the process' scheduling
    priority, we get back the bucket associated with IOPRIO_CLASS_BE.
    
    Now, there is no queue allocated there yet, so we create it:
    
    		cfqq = cfq_find_alloc_queue(cfqd, is_sync, cic, bio, gfp_mask);
    
    That function ends up doing this:
    
    			cfq_init_cfqq(cfqd, cfqq, current->pid, is_sync);
    			cfq_init_prio_data(cfqq, cic);
    
    cfq_init_cfqq marks the priority as having changed.  Then, cfq_init_prio
    data does this:
    
    	ioprio_class = IOPRIO_PRIO_CLASS(cic->ioprio);
    	switch (ioprio_class) {
    	default:
    		printk(KERN_ERR "cfq: bad prio %x\n", ioprio_class);
    	case IOPRIO_CLASS_NONE:
    		/*
    		 * no prio set, inherit CPU scheduling settings
    		 */
    		cfqq->ioprio = task_nice_ioprio(tsk);
    		cfqq->ioprio_class = task_nice_ioclass(tsk);
    		break;
    
    So we basically have two code paths that treat IOPRIO_CLASS_NONE
    differently, which results in an RT async cfqq filed into a best effort
    bucket.
    
    Attached is a patch which fixes the problem.  I'm not sure how to make
    it cleaner.  Suggestions would be welcome.
    
    Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
    Tested-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8ace7cca0c77f9140a25ed175e4d0aaa5d77566
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Mon Feb 9 16:42:49 2015 +0300

    cfq-iosched: handle failure of cfq group allocation
    
    commit 69abaffec7d47a083739b79e3066cb3730eba72e upstream.
    
    Cfq_lookup_create_cfqg() allocates struct blkcg_gq using GFP_ATOMIC.
    In cfq_find_alloc_queue() possible allocation failure is not handled.
    As a result kernel oopses on NULL pointer dereference when
    cfq_link_cfqq_cfqg() calls cfqg_get() for NULL pointer.
    
    Bug was introduced in v3.5 in commit cd1604fab4f9 ("blkcg: factor
    out blkio_group creation"). Prior to that commit cfq group lookup
    had returned pointer to root group as fallback.
    
    This patch handles this error using existing fallback oom_cfqq.
    
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Acked-by: Tejun Heo <tj@kernel.org>
    Acked-by: Vivek Goyal <vgoyal@redhat.com>
    Fixes: cd1604fab4f9 ("blkcg: factor out blkio_group creation")
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1a9198768efe67b11af1b72df379a4d75e8479e
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Thu Jan 22 00:56:53 2015 -0800

    iscsi-target: Drop problematic active_ts_list usage
    
    commit 3fd7b60f2c7418239d586e359e0c6d8503e10646 upstream.
    
    This patch drops legacy active_ts_list usage within iscsi_target_tq.c
    code.  It was originally used to track the active thread sets during
    iscsi-target shutdown, and is no longer used by modern upstream code.
    
    Two people have reported list corruption using traditional iscsi-target
    and iser-target with the following backtrace, that appears to be related
    to iscsi_thread_set->ts_list being used across both active_ts_list and
    inactive_ts_list.
    
    [   60.782534] ------------[ cut here ]------------
    [   60.782543] WARNING: CPU: 0 PID: 9430 at lib/list_debug.c:53 __list_del_entry+0x63/0xd0()
    [   60.782545] list_del corruption, ffff88045b00d180->next is LIST_POISON1 (dead000000100100)
    [   60.782546] Modules linked in: ib_srpt tcm_qla2xxx qla2xxx tcm_loop tcm_fc libfc scsi_transport_fc scsi_tgt ib_isert rdma_cm iw_cm ib_addr iscsi_target_mod target_core_pscsi target_core_file target_core_iblock target_core_mod configfs ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 ipt_REJECT xt_CHECKSUM iptable_mangle iptable_filter ip_tables bridge stp llc autofs4 sunrpc ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 ib_ipoib ib_cm ib_uverbs ib_umad mlx4_en mlx4_ib ib_sa ib_mad ib_core mlx4_core dm_mirror dm_region_hash dm_log dm_mod vhost_net macvtap macvlan vhost tun kvm_intel kvm uinput iTCO_wdt iTCO_vendor_support microcode serio_raw pcspkr sb_edac edac_core sg i2c_i801 lpc_ich mfd_core mtip32xx igb i2c_algo_bit i2c_core ptp pps_core ioatdma dca wmi ext3(F) jbd(F) mbcache(F) sd_mod(F) crc_t10dif(F) crct10dif_common(F) ahci(F) libahci(F) isci(F) libsas(F) scsi_transport_sas(F) [last unloaded: speedstep_lib]
    [   60.782597] CPU: 0 PID: 9430 Comm: iscsi_ttx Tainted: GF 3.12.19+ #2
    [   60.782598] Hardware name: Supermicro X9DRX+-F/X9DRX+-F, BIOS 3.00 07/09/2013
    [   60.782599]  0000000000000035 ffff88044de31d08 ffffffff81553ae7 0000000000000035
    [   60.782602]  ffff88044de31d58 ffff88044de31d48 ffffffff8104d1cc 0000000000000002
    [   60.782605]  ffff88045b00d180 ffff88045b00d0c0 ffff88045b00d0c0 ffff88044de31e58
    [   60.782607] Call Trace:
    [   60.782611]  [<ffffffff81553ae7>] dump_stack+0x49/0x62
    [   60.782615]  [<ffffffff8104d1cc>] warn_slowpath_common+0x8c/0xc0
    [   60.782618]  [<ffffffff8104d2b6>] warn_slowpath_fmt+0x46/0x50
    [   60.782620]  [<ffffffff81280933>] __list_del_entry+0x63/0xd0
    [   60.782622]  [<ffffffff812809b1>] list_del+0x11/0x40
    [   60.782630]  [<ffffffffa06e7cf9>] iscsi_del_ts_from_active_list+0x29/0x50 [iscsi_target_mod]
    [   60.782635]  [<ffffffffa06e87b1>] iscsi_tx_thread_pre_handler+0xa1/0x180 [iscsi_target_mod]
    [   60.782642]  [<ffffffffa06fb9ae>] iscsi_target_tx_thread+0x4e/0x220 [iscsi_target_mod]
    [   60.782647]  [<ffffffffa06fb960>] ? iscsit_handle_snack+0x190/0x190 [iscsi_target_mod]
    [   60.782652]  [<ffffffffa06fb960>] ? iscsit_handle_snack+0x190/0x190 [iscsi_target_mod]
    [   60.782655]  [<ffffffff8106f99e>] kthread+0xce/0xe0
    [   60.782657]  [<ffffffff8106f8d0>] ? kthread_freezable_should_stop+0x70/0x70
    [   60.782660]  [<ffffffff8156026c>] ret_from_fork+0x7c/0xb0
    [   60.782662]  [<ffffffff8106f8d0>] ? kthread_freezable_should_stop+0x70/0x70
    [   60.782663] ---[ end trace 9662f4a661d33965 ]---
    
    Since this code is no longer used, go ahead and drop the problematic usage
    all-together.
    
    Reported-by: Gavin Guo <gavin.guo@canonical.com>
    Reported-by: Moussa Ba <moussaba@micron.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72b19f30985230979d812ae65a3fd4c28067a589
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Wed Feb 11 17:27:55 2015 -0500

    NFSv4.1: Fix a kfree() of uninitialised pointers in decode_cb_sequence_args
    
    commit d8ba1f971497c19cf80da1ea5391a46a5f9fbd41 upstream.
    
    If the call to decode_rc_list() fails due to a memory allocation error,
    then we need to truncate the array size to ensure that we only call
    kfree() on those pointer that were allocated.
    
    Reported-by: David Ramos <daramos@stanford.edu>
    Fixes: 4aece6a19cf7f ("nfs41: cb_sequence xdr implementation")
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c213da80aa303730ca6d99a30f10043428c0e354
Author: honclo <honclo@imap.linux.ibm.com>
Date:   Thu Feb 12 21:02:24 2015 -0500

    Added Little Endian support to vtpm module
    
    commit eb71f8a5e33fa1066fb92f0111ab366a341e1f6c upstream.
    
    The tpm_ibmvtpm module is affected by an unaligned access problem.
    ibmvtpm_crq_get_version failed with rc=-4 during boot when vTPM is
    enabled in Power partition, which supports both little endian and
    big endian modes.
    
    We added little endian support to fix this problem:
    1) added cpu_to_be64 calls to ensure BE data is sent from an LE OS.
    2) added be16_to_cpu and be32_to_cpu calls to make sure data received
       is in LE format on a LE OS.
    
    Signed-off-by: Hon Ching(Vicky) Lo <honclo@linux.vnet.ibm.com>
    Signed-off-by: Joy Latten <jmlatten@linux.vnet.ibm.com>
    [phuewe: manually applied the patch :( ]
    Reviewed-by: Ashley Lai <ashley@ahsleylai.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6280501c3e6346652bb9a1f2a77148f5aa5a37a6
Author: Christophe Ricard <christophe.ricard@gmail.com>
Date:   Mon Dec 1 19:32:46 2014 +0100

    tpm/tpm_i2c_stm_st33: Fix potential bug in tpm_stm_i2c_send
    
    commit 1ba3b0b6f218072afe8372d12f1b6bf26a26008e upstream.
    
    When sending data in tpm_stm_i2c_send, each loop iteration send buf.
    Send buf + i instead as the goal of this for loop is to send a number
    of byte from buf that fit in burstcnt. Once those byte are sent, we are
    supposed to send the next ones.
    
    The driver was working because the burstcount value returns always the maximum size for a TPM
    command or response. (0x800 for a command and 0x400 for a response).
    
    Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c243c211c1141a14e5e418de314ed466c513ac6
Author: Hon Ching (Vicky) Lo <honclo@linux.vnet.ibm.com>
Date:   Sun Nov 30 15:01:28 2014 +0100

    tpm: Fix NULL return in tpm_ibmvtpm_get_desired_dma
    
    commit 84eb186bc37c0900b53077ca21cf6dd15823a232 upstream.
    
    There was an oops in tpm_ibmvtpm_get_desired_dma, which caused
    kernel panic during boot when vTPM is enabled in Power partition
    configured in AMS mode.
    
    vio_bus_probe calls vio_cmo_bus_probe which calls
    tpm_ibmvtpm_get_desired_dma to get the size needed for DMA allocation.
    The problem is, vio_cmo_bus_probe is called before calling probe, which
    for vtpm is tpm_ibmvtpm_probe and it's this function that initializes
    and sets up vtpm's CRQ and gets required data values.  Therefore,
    since this has not yet been done, NULL is returned in attempt to get
    the size for DMA allocation.
    
    We added a NULL check.  In addition, a default buffer size will
    be set when NULL is returned.
    
    Signed-off-by: Hon Ching (Vicky) Lo <honclo@linux.vnet.ibm.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8716dbb11fc845a2fa28d889efe638b9dae86daf
Author: Scot Doyle <lkml14@scotdoyle.com>
Date:   Wed Sep 24 22:41:10 2014 +0000

    tpm_tis: verify interrupt during init
    
    commit 448e9c55c12d6bd4fa90a7e31d802e045666d7c8 upstream.
    
    Some machines, such as the Acer C720 and Toshiba CB35, have TPMs that do
    not send IRQs while also having an ACPI TPM entry indicating that they
    will be sent. These machines freeze on resume while the tpm_tis module
    waits for an IRQ, eventually timing out.
    
    When in interrupt mode, the tpm_tis module should receive an IRQ during
    module init. Fall back to polling mode if none is received when expected.
    
    Signed-off-by: Scot Doyle <lkml14@scotdoyle.com>
    Tested-by: Michael Mullin <masmullin@gmail.com>
    Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    [phuewe: minor checkpatch fixed]
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49d9336fac46885eb0b6ddf5072f3e20bdfdbdce
Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Date:   Thu Jan 15 03:06:22 2015 +0100

    ARM: 8284/1: sa1100: clear RCSR_SMR on resume
    
    commit e461894dc2ce7778ccde1c3483c9b15a85a7fc5f upstream.
    
    StrongARM core uses RCSR SMR bit to tell to bootloader that it was reset
    by entering the sleep mode. After we have resumed, there is little point
    in having that bit enabled. Moreover, if this bit is set before reboot,
    the bootloader can become confused. Thus clear the SMR bit on resume
    just before clearing the scratchpad (resume address) register.
    
    Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d998434cec4071f7ea4ec5f7c53aee681504e58
Author: Vikram Mulukutla <markivx@codeaurora.org>
Date:   Wed Dec 17 18:50:56 2014 -0800

    tracing: Fix unmapping loop in tracing_mark_write
    
    commit 7215853e985a4bef1a6c14e00e89dfec84f1e457 upstream.
    
    Commit 6edb2a8a385f0cdef51dae37ff23e74d76d8a6ce introduced
    an array map_pages that contains the addresses returned by
    kmap_atomic. However, when unmapping those pages, map_pages[0]
    is unmapped before map_pages[1], breaking the nesting requirement
    as specified in the documentation for kmap_atomic/kunmap_atomic.
    
    This was caught by the highmem debug code present in kunmap_atomic.
    Fix the loop to do the unmapping properly.
    
    Link: http://lkml.kernel.org/r/1418871056-6614-1-git-send-email-markivx@codeaurora.org
    
    Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
    Reported-by: Lime Yang <limey@codeaurora.org>
    Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7528bb2ef8466d7a1ff5f0e316b96383349a7d60
Author: James Hogan <james.hogan@imgtec.com>
Date:   Thu May 29 10:16:32 2014 +0100

    MIPS: KVM: Deliver guest interrupts after local_irq_disable()
    
    commit 044f0f03eca0110e1835b2ea038a484b93950328 upstream.
    
    When about to run the guest, deliver guest interrupts after disabling
    host interrupts. This should prevent an hrtimer interrupt from being
    handled after delivering guest interrupts, and therefore not delivering
    the guest timer interrupt until after the next guest exit.
    
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: kvm@vger.kernel.org
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: Sanjay Lal <sanjayl@kymasys.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a2d3f26253901627f4b5ef8866e3adea434b4c8
Author: Jeff Layton <jlayton@primarydata.com>
Date:   Wed Jan 14 13:08:57 2015 -0500

    nfs: don't call blocking operations while !TASK_RUNNING
    
    commit 6ffa30d3f734d4f6b478081dfc09592021028f90 upstream.
    
    Bruce reported seeing this warning pop when mounting using v4.1:
    
         ------------[ cut here ]------------
         WARNING: CPU: 1 PID: 1121 at kernel/sched/core.c:7300 __might_sleep+0xbd/0xd0()
        do not call blocking ops when !TASK_RUNNING; state=1 set at [<ffffffff810ff58f>] prepare_to_wait+0x2f/0x90
        Modules linked in: rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace sunrpc fscache ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm snd_timer ppdev joydev snd virtio_console virtio_balloon pcspkr serio_raw parport_pc parport pvpanic floppy soundcore i2c_piix4 virtio_blk virtio_net qxl drm_kms_helper ttm drm virtio_pci virtio_ring ata_generic virtio pata_acpi
        CPU: 1 PID: 1121 Comm: nfsv4.1-svc Not tainted 3.19.0-rc4+ #25
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140709_153950- 04/01/2014
         0000000000000000 000000004e5e3f73 ffff8800b998fb48 ffffffff8186ac78
         0000000000000000 ffff8800b998fba0 ffff8800b998fb88 ffffffff810ac9da
         ffff8800b998fb68 ffffffff81c923e7 00000000000004d9 0000000000000000
        Call Trace:
         [<ffffffff8186ac78>] dump_stack+0x4c/0x65
         [<ffffffff810ac9da>] warn_slowpath_common+0x8a/0xc0
         [<ffffffff810aca65>] warn_slowpath_fmt+0x55/0x70
         [<ffffffff810ff58f>] ? prepare_to_wait+0x2f/0x90
         [<ffffffff810ff58f>] ? prepare_to_wait+0x2f/0x90
         [<ffffffff810dd2ad>] __might_sleep+0xbd/0xd0
         [<ffffffff8124c973>] kmem_cache_alloc_trace+0x243/0x430
         [<ffffffff810d941e>] ? groups_alloc+0x3e/0x130
         [<ffffffff810d941e>] groups_alloc+0x3e/0x130
         [<ffffffffa0301b1e>] svcauth_unix_accept+0x16e/0x290 [sunrpc]
         [<ffffffffa0300571>] svc_authenticate+0xe1/0xf0 [sunrpc]
         [<ffffffffa02fc564>] svc_process_common+0x244/0x6a0 [sunrpc]
         [<ffffffffa02fd044>] bc_svc_process+0x1c4/0x260 [sunrpc]
         [<ffffffffa03d5478>] nfs41_callback_svc+0x128/0x1f0 [nfsv4]
         [<ffffffff810ff970>] ? wait_woken+0xc0/0xc0
         [<ffffffffa03d5350>] ? nfs4_callback_svc+0x60/0x60 [nfsv4]
         [<ffffffff810d45bf>] kthread+0x11f/0x140
         [<ffffffff810ea815>] ? local_clock+0x15/0x30
         [<ffffffff810d44a0>] ? kthread_create_on_node+0x250/0x250
         [<ffffffff81874bfc>] ret_from_fork+0x7c/0xb0
         [<ffffffff810d44a0>] ? kthread_create_on_node+0x250/0x250
        ---[ end trace 675220a11e30f4f2 ]---
    
    nfs41_callback_svc does most of its work while in TASK_INTERRUPTIBLE,
    which is just wrong. Fix that by finishing the wait immediately if we've
    found that the list has something on it.
    
    Also, we don't expect this kthread to accept signals, so we should be
    using a TASK_UNINTERRUPTIBLE sleep instead. That however, opens us up
    hung task warnings from the watchdog, so have the schedule_timeout
    wake up every 60s if there's no callback activity.
    
    Reported-by: "J. Bruce Fields" <bfields@fieldses.org>
    Signed-off-by: Jeff Layton <jlayton@primarydata.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d37544fb1dedda1974bf406c0033bbbfa5944af
Author: Jisheng Zhang <jszhang@marvell.com>
Date:   Wed Jan 28 19:54:12 2015 +0800

    mmc: sdhci-pxav3: fix setting of pdata->clk_delay_cycles
    
    commit 14460dbaf7a5a0488963fdb8232ad5c8a8cca7b7 upstream.
    
    Current code checks "clk_delay_cycles > 0" to know whether the optional
    "mrvl,clk_delay_cycles" is set or not. But of_property_read_u32() doesn't
    touch clk_delay_cycles if the property is not set. And type of
    clk_delay_cycles is u32, so we may always set pdata->clk_delay_cycles as a
    random value.
    
    This patch fix this problem by check the return value of of_property_read_u32()
    to know whether the optional clk-delay-cycles is set or not.
    
    Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4315974144b8b18eeeb958f43a9d50825a5a4254
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Tue Jan 27 16:51:54 2015 +0100

    power_supply: 88pm860x: Fix leaked power supply on probe fail
    
    commit 24727b45b484e8937dcde53fa8d1aa70ac30ec0c upstream.
    
    Driver forgot to unregister power supply if request_threaded_irq()
    failed in probe(). In such case the memory associated with power supply
    leaked.
    
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Fixes: a830d28b48bf ("power_supply: Enable battery-charger for 88pm860x")
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3962a253b21474940c8b858ec0aff0428c2c3e82
Author: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Date:   Tue Feb 10 11:33:50 2015 +0100

    ALSA: hdspm - Constrain periods to 2 on older cards
    
    commit f0153c3d948c1764f6c920a0675d86fc1d75813e upstream.
    
    RME RayDAT and AIO use a fixed buffer size of 16384 samples. With period
    sizes of 32-4096, this translates to 4-512 periods.
    
    The older RME cards have a variable buffer size but require exactly two
    periods.
    
    This patch enforces nperiods=2 on those cards.
    
    Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 331e036da19ecd0e1d4e0feb78226f99c04fdc4b
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Feb 9 16:51:40 2015 +0300

    ALSA: off by one bug in snd_riptide_joystick_probe()
    
    commit e4940626defdf6c92da1052ad3f12741c1a28c90 upstream.
    
    The problem here is that we check:
    
    	if (dev >= SNDRV_CARDS)
    
    Then we increment "dev".
    
           if (!joystick_port[dev++])
    
    Then we use it as an offset into a array with SNDRV_CARDS elements.
    
    	if (!request_region(joystick_port[dev], 8, "Riptide gameport")) {
    
    This has 3 effects:
    1) If you use the module option to specify the joystick port then it has
       to be shifted one space over.
    2) The wrong error message will be printed on failure if you have over
       32 cards.
    3) Static checkers will correctly complain that are off by one.
    
    Fixes: db1005ec6ff8 ('ALSA: riptide - Fix joystick resource handling')
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4cf981513778209b86dc90ec8fb479929aef8d50
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Fri Jan 2 10:56:28 2015 -0300

    lmedm04: Fix usb_submit_urb BOGUS urb xfer, pipe 1 != type 3 in interrupt urb
    
    commit 15e1ce33182d1d5dbd8efe8d382b9352dc857527 upstream.
    
    A quirk of some older firmwares that report endpoint pipe type as PIPE_BULK
    but the endpoint otheriwse functions as interrupt.
    
    Check if usb_endpoint_type is USB_ENDPOINT_XFER_BULK and set as usb_rcvbulkpipe.
    
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea9bc74573040bb38b143a743281bc808a2136ba
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Mon Feb 9 13:38:17 2015 -0500

    cpufreq: speedstep-smi: enable interrupts when waiting
    
    commit d4d4eda23794c701442e55129dd4f8f2fefd5e4d upstream.
    
    On Dell Latitude C600 laptop with Pentium 3 850MHz processor, the
    speedstep-smi driver sometimes loads and sometimes doesn't load with
    "change to state X failed" message.
    
    The hardware sometimes refuses to change frequency and in this case, we
    need to retry later. I found out that we need to enable interrupts while
    waiting. When we enable interrupts, the hardware blockage that prevents
    frequency transition resolves and the transition is possible. With
    disabled interrupts, the blockage doesn't resolve (no matter how long do
    we wait). The exact reasons for this hardware behavior are unknown.
    
    This patch enables interrupts in the function speedstep_set_state that can
    be called with disabled interrupts. However, this function is called with
    disabled interrupts only from speedstep_get_freqs, so it shouldn't cause
    any problem.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1b940de40bc1cc28dbbe41c7416ef5031e093f8
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Mon Jan 19 17:53:20 2015 +0900

    PCI: Fix infinite loop with ROM image of size 0
    
    commit 16b036af31e1456cb69243a5a0c9ef801ecd1f17 upstream.
    
    If the image size would ever read as 0, pci_get_rom_size() could keep
    processing the same image over and over again.  Exit the loop if we ever
    read a length of zero.
    
    This fixes a soft lockup on boot when the radeon driver calls
    pci_get_rom_size() on an AMD Radeon R7 250X PCIe discrete graphics card.
    
    [bhelgaas: changelog, reference]
    Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1386973
    Reported-by: Federico <federicotg@gmail.com>
    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fbc0c467414464bcb7d6a5303f448fdd246e9f71
Author: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Date:   Tue Dec 2 17:35:04 2014 +0100

    PCI: Generate uppercase hex for modalias var in uevent
    
    commit 145b3fe579db66fbe999a2bc3fd5b63dffe9636d upstream.
    
    Some implementations of modprobe fail to load the driver for a PCI device
    automatically because the "interface" part of the modalias from the kernel
    is lowercase, and the modalias from file2alias is uppercase.
    
    The "interface" is the low-order byte of the Class Code, defined in PCI
    r3.0, Appendix D.  Most interface types defined in the spec do not use
    alpha characters, so they won't be affected.  For example, 00h, 01h, 10h,
    20h, etc. are unaffected.
    
    Print the "interface" byte of the Class Code in uppercase hex, as we
    already do for the Vendor ID, Device ID, Class, etc.
    
    Commit 89ec3dcf17fd ("PCI: Generate uppercase hex for modalias interface
    class") fixed only half of the problem.  Some udev implementations rely on
    the uevent file and not the modalias file.
    
    Fixes: d1ded203adf1 ("PCI: add MODALIAS to hotplug event for pci devices")
    Fixes: 89ec3dcf17fd ("PCI: Generate uppercase hex for modalias interface class")
    Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de13322c2802b274eaff42c6027ee32e0567b75a
Author: Seth Forshee <seth.forshee@canonical.com>
Date:   Fri Feb 20 11:45:11 2015 -0600

    HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events
    
    commit 6d00f37e49d95e640a3937a4a1ae07dbe92a10cb upstream.
    
    d1c7e29e8d27 (HID: i2c-hid: prevent buffer overflow in early IRQ)
    changed hid_get_input() to read ihid->bufsize bytes, which can be
    more than wMaxInputLength. This is the case with the Dell XPS 13
    9343, and it is causing events to be missed. In some cases the
    missed events are releases, which can cause the cursor to jump or
    freeze, among other problems. Limit the number of bytes read to
    min(wMaxInputLength, ihid->bufsize) to prevent such problems.
    
    Fixes: d1c7e29e8d27 "HID: i2c-hid: prevent buffer overflow in early IRQ"
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4313b9cb8964781bed89316a3c929f56b9651f9d
Author: Luciano Coelho <luciano.coelho@intel.com>
Date:   Thu Jan 29 12:48:20 2015 +0200

    iwlwifi: mvm: always use mac color zero
    
    commit 5523d11cc46393a1e61b7ef4a0b2d4e7ed9521e4 upstream.
    
    We don't really need to use different mac colors when adding mac
    contexts, because they're not used anywhere.  In fact, the firmware
    doesn't accept 255 as a valid color, so we get into a SYSASSERT 0x3401
    when we reach that.
    
    Remove the color increment to use always zero and avoid reaching 255.
    
    Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
    Reviewed-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fce2d025479af5e1fa6717480c7853cdfb8b71aa
Author: Luciano Coelho <luciano.coelho@intel.com>
Date:   Tue Jan 27 15:06:57 2015 +0200

    iwlwifi: mvm: fix failure path when power_update fails in add_interface
    
    commit fd66fc1cafd72ddf27dbec3a5e29e99839d1bc84 upstream.
    
    When iwl_mvm_power_update_mac() is called, we have already added the
    mac context, so if this call fails we should remove the mac.
    
    Fixes: commit e5e7aa8e2561 ('iwlwifi: mvm: refactor power code')
    Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
    Reviewed-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 12faeccac04d9a018b662561204cb31c64aa3590
Author: Eyal Shapira <eyal@wizery.com>
Date:   Fri Jan 16 11:09:30 2015 +0200

    iwlwifi: mvm: validate tid and sta_id in ba_notif
    
    commit 2cee4762c528a9bd2cdff793197bf591a2196c11 upstream.
    
    These are coming from the FW and are used to access arrays.
    Bad values can cause an out of bounds access so discard
    such ba_notifs and warn.
    
    Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7596982b02d15570974252f6b1aeaf4e5589e1a
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Thu Jan 29 21:34:00 2015 +0200

    iwlwifi: pcie: disable the SCD_BASE_ADDR when we resume from WoWLAN
    
    commit cd8f438405032ac8ff88bd8f2eca5e0c0063b14b upstream.
    
    The base address of the scheduler in the device's memory
    (SRAM) comes from two different sources. The periphery
    register and the alive notification from the firmware.
    We have a check in iwl_pcie_tx_start that ensures that
    they are the same.
    When we resume from WoWLAN, the firmware may have crashed
    for whatever reason. In that case, the whole device may be
    reset which means that the periphery register will hold a
    meaningless value. When we come to compare
    trans_pcie->scd_base_addr (which really holds the value we
    had when we loaded the WoWLAN firmware upon suspend) and
    the current value of the register, we don't see a match
    unsurprisingly.
    Trick the check to avoid a loud yet harmless WARN.
    Note that when the WoWLAN has crashed, we will see that
    in iwl_trans_pcie_d3_resume which will let the op_mode
    know. Once the op_mode is informed that the WowLAN firmware
    has crashed, it can't do much besides resetting the whole
    device.
    
    Reviewed-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 65c62025ac749e2597fcdc5e200479ba7ef26e9d
Author: Jan Kara <jack@suse.cz>
Date:   Tue Feb 10 14:08:32 2015 -0800

    fsnotify: fix handling of renames in audit
    
    commit 6ee8e25fc3e916193bce4ebb43d5439e1e2144ab upstream.
    
    Commit e9fd702a58c4 ("audit: convert audit watches to use fsnotify
    instead of inotify") broke handling of renames in audit.  Audit code
    wants to update inode number of an inode corresponding to watched name
    in a directory.  When something gets renamed into a directory to a
    watched name, inotify previously passed moved inode to audit code
    however new fsnotify code passes directory inode where the change
    happened.  That confuses audit and it starts watching parent directory
    instead of a file in a directory.
    
    This can be observed for example by doing:
    
      cd /tmp
      touch foo bar
      auditctl -w /tmp/foo
      touch foo
      mv bar foo
      touch foo
    
    In audit log we see events like:
    
      type=CONFIG_CHANGE msg=audit(1423563584.155:90): auid=1000 ses=2 op="updated rules" path="/tmp/foo" key=(null) list=4 res=1
      ...
      type=PATH msg=audit(1423563584.155:91): item=2 name="bar" inode=1046884 dev=08:0 2 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
      type=PATH msg=audit(1423563584.155:91): item=3 name="foo" inode=1046842 dev=08:0 2 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
      type=PATH msg=audit(1423563584.155:91): item=4 name="foo" inode=1046884 dev=08:0 2 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
      ...
    
    and that's it - we see event for the first touch after creating the
    audit rule, we see events for rename but we don't see any event for the
    last touch.  However we start seeing events for unrelated stuff
    happening in /tmp.
    
    Fix the problem by passing moved inode as data in the FS_MOVED_FROM and
    FS_MOVED_TO events instead of the directory where the change happens.
    This doesn't introduce any new problems because noone besides
    audit_watch.c cares about the passed value:
    
      fs/notify/fanotify/fanotify.c cares only about FSNOTIFY_EVENT_PATH events.
      fs/notify/dnotify/dnotify.c doesn't care about passed 'data' value at all.
      fs/notify/inotify/inotify_fsnotify.c uses 'data' only for FSNOTIFY_EVENT_PATH.
      kernel/audit_tree.c doesn't care about passed 'data' at all.
      kernel/audit_watch.c expects moved inode as 'data'.
    
    Fixes: e9fd702a58c49db ("audit: convert audit watches to use fsnotify instead of inotify")
    Signed-off-by: Jan Kara <jack@suse.cz>
    Cc: Paul Moore <paul@paul-moore.com>
    Cc: Eric Paris <eparis@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>

commit 66c4da6566ec1cf89349911fd83b9540e985e058
Author: Dave Chinner <dchinner@redhat.com>
Date:   Thu Jan 22 09:30:23 2015 +1100

    xfs: set superblock buffer type correctly
    
    commit 3443a3bca54588f43286b725d8648d33a38c86f1 upstream.
    
    When the superblock is modified in a transaction, the commonly
    modified fields are not actually copied to the superblock buffer to
    avoid the buffer lock becoming a serialisation point. However, there
    are some other operations that modify the superblock fields within
    the transaction that don't directly log to the superblock but rely
    on the changes to be applied during the transaction commit (to
    minimise the buffer lock hold time).
    
    When we do this, we fail to mark the buffer log item as being a
    superblock buffer and that can lead to the buffer not being marked
    with the corect type in the log and hence causing recovery issues.
    Fix it by setting the type correctly, similar to xfs_mod_sb()...
    
    Tested-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 70c0c8b3d5844839658fd0c1127a9641127d5098
Author: Dave Chinner <dchinner@redhat.com>
Date:   Thu Jan 22 09:29:40 2015 +1100

    xfs: inode unlink does not set AGI buffer type
    
    commit f19b872b086711bb4b22c3a0f52f16aa920bcc61 upstream.
    
    This leads to log recovery throwing errors like:
    
    XFS (md0): Mounting V5 Filesystem
    XFS (md0): Starting recovery (logdev: internal)
    XFS (md0): Unknown buffer type 0!
    XFS (md0): _xfs_buf_ioapply: no ops on block 0xaea8802/0x1
    ffff8800ffc53800: 58 41 47 49 .....
    
    Which is the AGI buffer magic number.
    
    Ensure that we set the type appropriately in both unlink list
    addition and removal.
    
    Tested-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8997bc45956a7c206326326eac2207c5dd4dc207
Author: Dave Chinner <dchinner@redhat.com>
Date:   Thu Jan 22 09:29:05 2015 +1100

    xfs: ensure buffer types are set correctly
    
    commit 0d612fb570b71ea2e49554a770cff4c489018b2c upstream.
    
    Jan Kara reported that log recovery was finding buffers with invalid
    types in them. This should not happen, and indicates a bug in the
    logging of buffers. To catch this, add asserts to the buffer
    formatting code to ensure that the buffer type is in range when the
    transaction is committed.
    
    We don't set a type on buffers being marked stale - they are not
    going to get replayed, the format item exists only for recovery to
    be able to prevent replay of the buffer, so the type does not
    matter. Hence that needs special casing here.
    
    Reported-by: Jan Kara <jack@suse.cz>
    Tested-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31e48a8de983179e0aa005b27fc949c07d3eb44a
Author: Adam Lee <adam.lee@canonical.com>
Date:   Wed Jan 28 15:30:27 2015 -0500

    Bluetooth: ath3k: workaround the compatibility issue with xHCI controller
    
    commit c561a5753dd631920c4459a067d22679b3d110d6 upstream.
    
    BugLink: https://bugs.launchpad.net/bugs/1400215
    
    ath3k devices fail to load firmwares on xHCI buses, but work well on
    EHCI, this might be a compatibility issue between xHCI and ath3k chips.
    As my testing result, those chips will work on xHCI buses again with
    this patch.
    
    This workaround is from Qualcomm, they also did some workarounds in
    Windows driver.
    
    Signed-off-by: Adam Lee <adam.lee@canonical.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>