commit 5392bc6bce5ff16ca78d7d3780bde272f9119bb8
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Mar 6 14:57:59 2015 -0800

    Linux 3.19.1

commit 3c201105568388046da448947e8abc8673fedfd9
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Tue Jan 6 22:41:46 2015 +0100

    ppc/kvm: Replace ACCESS_ONCE with READ_ONCE
    
    commit 5ee07612e9e20817bb99256ab6cf1400fd5aa270 upstream.
    
    ACCESS_ONCE does not work reliably on non-scalar types. For
    example gcc 4.6 and 4.7 might remove the volatile tag for such
    accesses during the SRA (scalar replacement of aggregates) step
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145)
    
    Change the ppc/kvm code to replace ACCESS_ONCE with READ_ONCE.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Acked-by: Alexander Graf <agraf@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a806d27573f9a2df193e5a374fe8e452be9c6c7
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Tue Jan 6 22:47:41 2015 +0100

    ppc/hugetlbfs: Replace ACCESS_ONCE with READ_ONCE
    
    commit da1a288d8562739aa8ba0273d4fb6b73b856c0d3 upstream.
    
    ACCESS_ONCE does not work reliably on non-scalar types. For
    example gcc 4.6 and 4.7 might remove the volatile tag for such
    accesses during the SRA (scalar replacement of aggregates) step
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145)
    
    Change the ppc/hugetlbfs code to replace ACCESS_ONCE with READ_ONCE.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd4c10858bb00704df476ef17a0b3037b909e4f5
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Tue Jan 6 22:54:46 2015 +0100

    mm/gup: Replace ACCESS_ONCE with READ_ONCE
    
    commit 38c5ce936a0862a6ce2c8d1c72689a3aba301425 upstream.
    
    ACCESS_ONCE does not work reliably on non-scalar types. For
    example gcc 4.6 and 4.7 might remove the volatile tag for such
    accesses during the SRA (scalar replacement of aggregates) step
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145)
    
    Fixup gup_pmd_range.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74df55cf12da35361087869e3e4cb7e9e942d4f6
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Wed Jan 7 12:32:28 2015 -0800

    next: sh: Fix compile error
    
    commit 378af02b1aecabb3756e19c0cbb8cdd9c3b9637f upstream.
    
    Commit 927609d622a3 ("kernel: tighten rules for ACCESS ONCE") results in a
    compile failure for sh builds with CONFIG_X2TLB enabled.
    
    arch/sh/mm/gup.c: In function 'gup_get_pte':
    arch/sh/mm/gup.c:20:2: error: invalid initializer
    make[1]: *** [arch/sh/mm/gup.o] Error 1
    
    Replace ACCESS_ONCE with READ_ONCE to fix the problem.
    
    Fixes: 927609d622a3 ("kernel: tighten rules for ACCESS ONCE")
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1adf6d7f02e9b25ac8bc618c29cae9f0d25cedb
Author: Jan Kara <jack@suse.cz>
Date:   Thu Oct 9 16:54:13 2014 +0200

    quota: Store maximum space limit in bytes
    
    commit b10a08194c2b615955dfab2300331a90ae9344c7 upstream.
    
    Currently maximum space limit quota format supports is in blocks however
    since we store space limits in bytes, this is somewhat confusing. So
    store the maximum limit in bytes as well. Also rename the field to match
    the new unit and related inode field to match the new naming scheme.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24c94559aff487245e423acffd05bc751a43674f
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Sun Dec 7 22:01:59 2014 +0100

    x86/xen/p2m: Replace ACCESS_ONCE with READ_ONCE
    
    commit 1760f1eb7ec485197bd3a8a9c13e4160bb740275 upstream.
    
    ACCESS_ONCE does not work reliably on non-scalar types. For
    example gcc 4.6 and 4.7 might remove the volatile tag for such
    accesses during the SRA (scalar replacement of aggregates) step
    (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145)
    
    Change the p2m code to replace ACCESS_ONCE with READ_ONCE.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Acked-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dcc2e51a1fc91c2a631ed3ea5afed22c6aa13728
Author: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
Date:   Fri Feb 6 16:44:11 2015 +0530

    x86/spinlocks/paravirt: Fix memory corruption on unlock
    
    commit d6abfdb2022368d8c6c4be3f11a06656601a6cc2 upstream.
    
    Paravirt spinlock clears slowpath flag after doing unlock.
    As explained by Linus currently it does:
    
                    prev = *lock;
                    add_smp(&lock->tickets.head, TICKET_LOCK_INC);
    
                    /* add_smp() is a full mb() */
    
                    if (unlikely(lock->tickets.tail & TICKET_SLOWPATH_FLAG))
                            __ticket_unlock_slowpath(lock, prev);
    
    which is *exactly* the kind of things you cannot do with spinlocks,
    because after you've done the "add_smp()" and released the spinlock
    for the fast-path, you can't access the spinlock any more.  Exactly
    because a fast-path lock might come in, and release the whole data
    structure.
    
    Linus suggested that we should not do any writes to lock after unlock(),
    and we can move slowpath clearing to fastpath lock.
    
    So this patch implements the fix with:
    
     1. Moving slowpath flag to head (Oleg):
        Unlocked locks don't care about the slowpath flag; therefore we can keep
        it set after the last unlock, and clear it again on the first (try)lock.
        -- this removes the write after unlock. note that keeping slowpath flag would
        result in unnecessary kicks.
        By moving the slowpath flag from the tail to the head ticket we also avoid
        the need to access both the head and tail tickets on unlock.
    
     2. use xadd to avoid read/write after unlock that checks the need for
        unlock_kick (Linus):
        We further avoid the need for a read-after-release by using xadd;
        the prev head value will include the slowpath flag and indicate if we
        need to do PV kicking of suspended spinners -- on modern chips xadd
        isn't (much) more expensive than an add + load.
    
    Result:
     setup: 16core (32 cpu +ht sandy bridge 8GB 16vcpu guest)
     benchmark overcommit %improve
     kernbench  1x           -0.13
     kernbench  2x            0.02
     dbench     1x           -1.77
     dbench     2x           -0.63
    
    [Jeremy: Hinted missing TICKET_LOCK_INC for kick]
    [Oleg: Moved slowpath flag to head, ticket_equals idea]
    [PeterZ: Added detailed changelog]
    
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Tested-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Cc: Andrew Jones <drjones@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Dave Jones <davej@redhat.com>
    Cc: David Vrabel <david.vrabel@citrix.com>
    Cc: Fernando Luis Vázquez Cao <fernando_b1@lab.ntt.co.jp>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Ulrich Obergfell <uobergfe@redhat.com>
    Cc: Waiman Long <Waiman.Long@hp.com>
    Cc: a.ryabinin@samsung.com
    Cc: dave@stgolabs.net
    Cc: hpa@zytor.com
    Cc: jasowang@redhat.com
    Cc: jeremy@goop.org
    Cc: paul.gortmaker@windriver.com
    Cc: riel@redhat.com
    Cc: tglx@linutronix.de
    Cc: waiman.long@hp.com
    Cc: xen-devel@lists.xenproject.org
    Link: http://lkml.kernel.org/r/20150215173043.GA7471@linux.vnet.ibm.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6888abd998c2ac2d2a3291cc205556762dda581
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Feb 20 15:46:31 2015 -0800

    kernel: make READ_ONCE() valid on const arguments
    
    commit dd36929720f40f17685e841ae0d4c581c165ea60 upstream.
    
    The use of READ_ONCE() causes lots of warnings witht he pending paravirt
    spinlock fixes, because those ends up having passing a member to a
    'const' structure to READ_ONCE().
    
    There should certainly be nothing wrong with using READ_ONCE() with a
    const source, but the helper function __read_once_size() would cause
    warnings because it would drop the 'const' qualifier, but also because
    the destination would be marked 'const' too due to the use of 'typeof'.
    
    Use a union of types in READ_ONCE() to avoid this issue.
    
    Also make sure to use parenthesis around the macro arguments to avoid
    possible operator precedence issues.
    
    Tested-by: Ingo Molnar <mingo@kernel.org>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fec1418da2939d368d934d787f340dd667edc5b7
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Mon Jan 12 12:13:39 2015 +0100

    kernel: Fix sparse warning for ACCESS_ONCE
    
    commit c5b19946eb76c67566aae6a84bf2b10ad59295ea upstream.
    
    Commit 927609d622a3 ("kernel: tighten rules for ACCESS ONCE") results in
    sparse warnings like "Using plain integer as NULL pointer" - Let's add a
    type cast to the dummy assignment.
    To avoid warnings lik "sparse: warning: cast to restricted __hc32" we also
    use __force on that cast.
    
    Fixes: 927609d622a3 ("kernel: tighten rules for ACCESS ONCE")
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02c3106b329bae407e8ce994fb7995dc854ca4e8
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Tue Nov 25 10:16:39 2014 +0100

    kernel: tighten rules for ACCESS ONCE
    
    commit 927609d622a3773995f84bc03b4564f873cf0e22 upstream.
    
    Now that all non-scalar users of ACCESS_ONCE have been converted
    to READ_ONCE or ASSIGN once, lets tighten ACCESS_ONCE to only
    work on scalar types.
    This variant was proposed by Alexei Starovoitov.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db8b5886cf08a4890e920b1fae8cbf21608cfbcc
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Jan 14 18:39:31 2015 +0200

    x86: pmc-atom: Assign debugfs node as soon as possible
    
    commit 1b43d7125f3b6f7d46e72da64f65f3187a83b66b upstream.
    
    pmc_dbgfs_unregister() will be called when pmc->dbgfs_dir is unconditionally
    NULL on error path in pmc_dbgfs_register(). To prevent this we move the
    assignment to where is should be.
    
    Fixes: f855911c1f48 (x86/pmc_atom: Expose PMC device state and platform sleep state)
    Reported-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Aubrey Li <aubrey.li@linux.intel.com>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Kumar P. Mahesh <mahesh.kumar.p@intel.com>
    Link: http://lkml.kernel.org/r/1421253575-22509-2-git-send-email-andriy.shevchenko@linux.intel.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58557add70dcae1dd7df1d039c99f27edc7f4ece
Author: Jiang Liu <jiang.liu@linux.intel.com>
Date:   Mon Feb 16 10:11:13 2015 +0800

    x86/irq: Fix regression caused by commit b568b8601f05
    
    commit 1ea76fbadd667b19c4fa4466f3a3b55a505e83d9 upstream.
    
    Commit b568b8601f05 ("Treat SCI interrupt as normal GSI interrupt")
    accidently removes support of legacy PIC interrupt when fixing a
    regression for Xen, which causes a nasty regression on HP/Compaq
    nc6000 where we fail to register the ACPI interrupt, and thus
    lose eg. thermal notifications leading a potentially overheated
    machine.
    
    So reintroduce support of legacy PIC based ACPI SCI interrupt.
    
    Reported-by: Ville Syrjälä <syrjala@sci.fi>
    Tested-by: Ville Syrjälä <syrjala@sci.fi>
    Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Len Brown <len.brown@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
    Cc: Sander Eikelenboom <linux@eikelenboom.it>
    Cc: linux-pm@vger.kernel.org
    Link: http://lkml.kernel.org/r/1424052673-22974-1-git-send-email-jiang.liu@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f455ae12905fd211fd9440273dd06758997c9f2
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 c4f934bc8afc2d9ba633c9fc0f0ce593338ecae9
Author: Matt Fleming <matt.fleming@intel.com>
Date:   Tue Jan 13 15:25:00 2015 +0000

    x86/efi: Avoid triple faults during EFI mixed mode calls
    
    commit 96738c69a7fcdbf0d7c9df0c8a27660011e82a7b upstream.
    
    Andy pointed out that if an NMI or MCE is received while we're in the
    middle of an EFI mixed mode call a triple fault will occur. This can
    happen, for example, when issuing an EFI mixed mode call while running
    perf.
    
    The reason for the triple fault is that we execute the mixed mode call
    in 32-bit mode with paging disabled but with 64-bit kernel IDT handlers
    installed throughout the call.
    
    At Andy's suggestion, stop playing the games we currently do at runtime,
    such as disabling paging and installing a 32-bit GDT for __KERNEL_CS. We
    can simply switch to the __KERNEL32_CS descriptor before invoking
    firmware services, and run in compatibility mode. This way, if an
    NMI/MCE does occur the kernel IDT handler will execute correctly, since
    it'll jump to __KERNEL_CS automatically.
    
    However, this change is only possible post-ExitBootServices(). Before
    then the firmware "owns" the machine and expects for its 32-bit IDT
    handlers to be left intact to service interrupts, etc.
    
    So, we now need to distinguish between early boot and runtime
    invocations of EFI services. During early boot, we need to restore the
    GDT that the firmware expects to be present. We can only jump to the
    __KERNEL32_CS code segment for mixed mode calls after ExitBootServices()
    has been invoked.
    
    A liberal sprinkling of comments in the thunking code should make the
    differences in early and late environments more apparent.
    
    Reported-by: Andy Lutomirski <luto@amacapital.net>
    Tested-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84cf433355b87753cdc67d7405ad88e9ff1f28de
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 c5966bf78165ff493aefe87f4e81b267858764c5
Author: Filipe Manana <fdmanana@suse.com>
Date:   Fri Feb 13 12:30:56 2015 +0000

    Btrfs: fix fsync data loss after adding hard link to inode
    
    commit 1a4bcf470c886b955adf36486f4c86f2441d85cb upstream.
    
    We have a scenario where after the fsync log replay we can lose file data
    that had been previously fsync'ed if we added an hard link for our inode
    and after that we sync'ed the fsync log (for example by fsync'ing some
    other file or directory).
    
    This is because when adding an hard link we updated the inode item in the
    log tree with an i_size value of 0. At that point the new inode item was
    in memory only and a subsequent fsync log replay would not make us lose
    the file data. However if after adding the hard link we sync the log tree
    to disk, by fsync'ing some other file or directory for example, we ended
    up losing the file data after log replay, because the inode item in the
    persisted log tree had an an i_size of zero.
    
    This is easy to reproduce, and the following excerpt from my test for
    xfstests shows this:
    
      _scratch_mkfs >> $seqres.full 2>&1
      _init_flakey
      _mount_flakey
    
      # Create one file with data and fsync it.
      # This made the btrfs fsync log persist the data and the inode metadata with
      # a correct inode->i_size (4096 bytes).
      $XFS_IO_PROG -f -c "pwrite -S 0xaa -b 4K 0 4K" -c "fsync" \
           $SCRATCH_MNT/foo | _filter_xfs_io
    
      # Now add one hard link to our file. This made the btrfs code update the fsync
      # log, in memory only, with an inode metadata having a size of 0.
      ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link
    
      # Now force persistence of the fsync log to disk, for example, by fsyncing some
      # other file.
      touch $SCRATCH_MNT/bar
      $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/bar
    
      # Before a power loss or crash, we could read the 4Kb of data from our file as
      # expected.
      echo "File content before:"
      od -t x1 $SCRATCH_MNT/foo
    
      # Simulate a crash/power loss.
      _load_flakey_table $FLAKEY_DROP_WRITES
      _unmount_flakey
    
      _load_flakey_table $FLAKEY_ALLOW_WRITES
      _mount_flakey
    
      # After the fsync log replay, because the fsync log had a value of 0 for our
      # inode's i_size, we couldn't read anymore the 4Kb of data that we previously
      # wrote and fsync'ed. The size of the file became 0 after the fsync log replay.
      echo "File content after:"
      od -t x1 $SCRATCH_MNT/foo
    
    Another alternative test, that doesn't need to fsync an inode in the same
    transaction it was created, is:
    
      _scratch_mkfs >> $seqres.full 2>&1
      _init_flakey
      _mount_flakey
    
      # Create our test file with some data.
      $XFS_IO_PROG -f -c "pwrite -S 0xaa -b 8K 0 8K" \
           $SCRATCH_MNT/foo | _filter_xfs_io
    
      # Make sure the file is durably persisted.
      sync
    
      # Append some data to our file, to increase its size.
      $XFS_IO_PROG -f -c "pwrite -S 0xcc -b 4K 8K 4K" \
           $SCRATCH_MNT/foo | _filter_xfs_io
    
      # Fsync the file, so from this point on if a crash/power failure happens, our
      # new data is guaranteed to be there next time the fs is mounted.
      $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo
    
      # Add one hard link to our file. This made btrfs write into the in memory fsync
      # log a special inode with generation 0 and an i_size of 0 too. Note that this
      # didn't update the inode in the fsync log on disk.
      ln $SCRATCH_MNT/foo $SCRATCH_MNT/foo_link
    
      # Now make sure the in memory fsync log is durably persisted.
      # Creating and fsync'ing another file will do it.
      touch $SCRATCH_MNT/bar
      $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/bar
    
      # As expected, before the crash/power failure, we should be able to read the
      # 12Kb of file data.
      echo "File content before:"
      od -t x1 $SCRATCH_MNT/foo
    
      # Simulate a crash/power loss.
      _load_flakey_table $FLAKEY_DROP_WRITES
      _unmount_flakey
    
      _load_flakey_table $FLAKEY_ALLOW_WRITES
      _mount_flakey
    
      # After mounting the fs again, the fsync log was replayed.
      # The btrfs fsync log replay code didn't update the i_size of the persisted
      # inode because the inode item in the log had a special generation with a
      # value of 0 (and it couldn't know the correct i_size, since that inode item
      # had a 0 i_size too). This made the last 4Kb of file data inaccessible and
      # effectively lost.
      echo "File content after:"
      od -t x1 $SCRATCH_MNT/foo
    
    This isn't a new issue/regression. This problem has been around since the
    log tree code was added in 2008:
    
      Btrfs: Add a write ahead tree log to optimize synchronous operations
      (commit e02119d5a7b4396c5a872582fddc8bd6d305a70a)
    
    Test cases for xfstests follow soon.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46da9e765e0d01b6abd5eec8044c50006deca134
Author: David Sterba <dsterba@suse.cz>
Date:   Fri Jan 2 18:45:16 2015 +0100

    btrfs: fix leak of path in btrfs_find_item
    
    commit 381cf6587f8a8a8e981bc0c1aaaa8859b51dc756 upstream.
    
    If btrfs_find_item is called with NULL path it allocates one locally but
    does not free it. Affected paths are inserting an orphan item for a file
    and for a subvol root.
    
    Move the path allocation to the callers.
    
    Fixes: 3f870c289900 ("btrfs: expand btrfs_find_item() to include find_orphan_item functionality")
    Signed-off-by: David Sterba <dsterba@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c034fa385b2c0fdea8f2fb9fb112c98c8b91adb
Author: David Sterba <dsterba@suse.cz>
Date:   Fri Dec 19 18:38:47 2014 +0100

    btrfs: set proper message level for skinny metadata
    
    commit 5efa0490cc94aee06cd8d282683e22a8ce0a0026 upstream.
    
    This has been confusing people for too long, the message is really just
    informative.
    
    Signed-off-by: David Sterba <dsterba@suse.cz>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c9f7cbfc80535d0bc558518fd7613755b0cb34f
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 c0accdab94c4aedd71c08a8d3f8fc65e5cac4405
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Jan 9 15:10:01 2015 +0100

    samsung-laptop: Add use_native_backlight quirk, and enable it on some models
    
    commit 4690555e13c48fef07f2762f6b0cd6b181e326d0 upstream.
    
    Since kernel 3.14 the backlight control has been broken on various Samsung
    Atom based netbooks. This has been bisected and this problem happens since
    commit b35684b8fa94 ("drm/i915: do full backlight setup at enable time")
    
    This has been reported and discussed in detail here:
    http://lists.freedesktop.org/archives/intel-gfx/2014-July/049395.html
    
    Unfortunately no-one has been able to fix this. This only affects Samsung
    Atom netbooks, and the Linux kernel and the BIOS of those laptops have never
    worked well together. All affected laptops already have a quirk to avoid using
    the standard acpi-video interface and instead use the samsung specific SABI
    interface which samsung-laptop uses. It seems that recent fixes to the i915
    driver have also broken backlight control through the SABI interface.
    
    The intel_backlight driver OTOH works fine, and also allows for finer grained
    backlight control. So add a new use_native_backlight quirk, and replace the
    broken_acpi_video quirk with this quirk for affected models. This new quirk
    disables acpi-video as before and also stops samsung-laptop from registering
    the SABI based samsung_laptop backlight interface, leaving only the working
    intel_backlight interface.
    
    This commit enables this new quirk for 3 models which are known to be affected,
    chances are that it needs to be used on other models too.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1094948 # N145P
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1115713 # N250P
    Reported-by: Bertrik Sikken <bertrik@sikken.nl> # N150P
    Cc: stable@vger.kernel.org # 3.16
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c84a6855897baaf2b57dbdadec91ea6841d154fd
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 6d209d9ada74279a3fb64b0ab873fe8e4a11f853
Author: Daniel J Blueman <daniel@numascale.com>
Date:   Tue Feb 17 11:34:38 2015 +0800

    EDAC, amd64_edac: Prevent OOPS with >16 memory controllers
    
    commit 0c510cc83bdbaac8406f4f7caef34f4da0ba35ea upstream.
    
    When DRAM errors occur on memory controllers after EDAC_MAX_MCS (16),
    the kernel fatally dereferences unallocated structures, see splat below;
    this occurs on at least NumaConnect systems.
    
    Fix by checking if a memory controller info structure was found.
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000320
    IP: [<ffffffff819f714f>] decode_bus_error+0x2f/0x2b0
    PGD 2f8b5a3067 PUD 2f8b5a2067 PMD 0
    Oops: 0000 [#2] SMP
    Modules linked in:
    CPU: 224 PID: 11930 Comm: stream_c.exe.gn Tainted: G   D    3.19.0 #1
    Hardware name: Supermicro H8QGL/H8QGL, BIOS 3.5b    01/28/2015
    task: ffff8807dbfb8c00 ti: ffff8807dd16c000 task.ti: ffff8807dd16c000
    RIP: 0010:[<ffffffff819f714f>] [<ffffffff819f714f>] decode_bus_error+0x2f/0x2b0
    RSP: 0000:ffff8907dfc03c48 EFLAGS: 00010297
    RAX: 0000000000000001 RBX: 9c67400010080a13 RCX: 0000000000001dc6
    RDX: 000000001dc61dc6 RSI: ffff8907dfc03df0 RDI: 000000000000001c
    RBP: ffff8907dfc03ce8 R08: 0000000000000000 R09: 0000000000000022
    R10: ffff891fffa30380 R11: 00000000001cfc90 R12: 0000000000000008
    R13: 0000000000000000 R14: 000000000000001c R15: 00009c6740001000
    FS: 00007fa97ee18700(0000) GS:ffff8907dfc00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000320 CR3: 0000003f889b8000 CR4: 00000000000407e0
    Stack:
     0000000000000000 ffff8907dfc03df0 0000000000000008 9c67400010080a13
     000000000000001c 00009c6740001000 ffff8907dfc03c88 ffffffff810e4f9a
     ffff8907dfc03ce8 ffffffff81b375b9 0000000000000000 0000000000000010
    Call Trace:
     <IRQ>
     ? vprintk_default
     ? printk
     amd_decode_mce
     notifier_call_chain
     atomic_notifier_call_chain
     mce_log
     machine_check_poll
     mce_timer_fn
     ? mce_cpu_restart
     call_timer_fn.isra.29
     run_timer_softirq
     __do_softirq
     irq_exit
     smp_apic_timer_interrupt
     apic_timer_interrupt
     <EOI>
     ? down_read_trylock
     __do_page_fault
     ? __schedule
     do_page_fault
     page_fault
    
    Signed-off-by: Daniel J Blueman <daniel@numascale.com>
    Link: http://lkml.kernel.org/r/1424144078-24589-1-git-send-email-daniel@numascale.com
    [ Boris: massage commit message ]
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7afafa82e799a946cc1b88de2af9c23dc267687
Author: Borislav Petkov <bp@suse.de>
Date:   Thu Feb 5 12:39:36 2015 +0100

    sb_edac: Fix detection on SNB machines
    
    commit 11249e73992981e31fd50e7231da24fad68e3320 upstream.
    
    d0585cd815fa ("sb_edac: Claim a different PCI device") changed the
    probing of sb_edac to look for PCI device 0x3ca0:
    
    3f:0e.0 System peripheral: Intel Corporation Xeon E5/Core i7 Processor Home Agent (rev 07)
    00: 86 80 a0 3c 00 00 00 00 07 00 80 08 00 00 80 00
    ...
    
    but we're matching for 0x3ca8, i.e. PCI_DEVICE_ID_INTEL_SBRIDGE_IMC_TA
    in sbridge_probe() therefore the probing fails.
    
    Changing it to probe for 0x3ca0 (PCI_DEVICE_ID_INTEL_SBRIDGE_IMC_HA0),
    .i.e., the 14.0 device, fixes the issue and driver loads successfully
    again:
    
    [ 2449.013120] EDAC DEBUG: sbridge_init:
    [ 2449.017029] EDAC sbridge: Seeking for: PCI ID 8086:3ca0
    [ 2449.022368] EDAC DEBUG: sbridge_get_onedevice: Detected 8086:3ca0
    [ 2449.028498] EDAC sbridge: Seeking for: PCI ID 8086:3ca0
    [ 2449.033768] EDAC sbridge: Seeking for: PCI ID 8086:3ca8
    [ 2449.039028] EDAC DEBUG: sbridge_get_onedevice: Detected 8086:3ca8
    [ 2449.045155] EDAC sbridge: Seeking for: PCI ID 8086:3ca8
    ...
    
    Add a debug printk while at it to be able to catch the failure in the
    future and dump driver version on successful load.
    
    Fixes: d0585cd815fa ("sb_edac: Claim a different PCI device")
    Acked-by: Aristeu Rozanski <aris@redhat.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Acked-by: Andy Lutomirski <luto@amacapital.net>
    Acked-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63a7d0a9160421a23baac407847e484e8488d12a
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 97ec321278ff96e9cbf88f99a911463118ea8be2
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 1a15e64c3afce5542925a68ac6c571124801555c
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Tue Feb 24 13:20:59 2015 +0200

    perf tools: Fix probing for PERF_FLAG_FD_CLOEXEC flag
    
    commit 48536c9195ae8c2a00fd8f400bac72ab613feaab upstream.
    
    Commit f6edb53c4993ffe92ce521fb449d1c146cea6ec2 converted the probe to
    a CPU wide event first (pid == -1). For kernels that do not support
    the PERF_FLAG_FD_CLOEXEC flag the probe fails with EINVAL. Since this
    errno is not handled pid is not reset to 0 and the subsequent use of
    pid = -1 as an argument brings in an additional failure path if
    perf_event_paranoid > 0:
    
    $ perf record -- sleep 1
    perf_event_open(..., 0) failed unexpectedly with error 13 (Permission denied)
    [ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.007 MB /tmp/perf.data (11 samples) ]
    
    Also, ensure the fd of the confirmation check is closed and comment why
    pid = -1 is used.
    
    Needs to go to 3.18 stable tree as well.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Based-on-patch-by: David Ahern <david.ahern@oracle.com>
    Acked-by: David Ahern <david.ahern@oracle.com>
    Cc: David Ahern <dsahern@gmail.com>
    Link: http://lkml.kernel.org/r/54EC610C.8000403@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c09fe950fbf5f1cbb13385f2c91cdcb2f5f4fa0
Author: Matthias Brugger <matthias.bgg@gmail.com>
Date:   Thu Feb 19 11:41:33 2015 +0100

    clocksource: mtk: Fix race conditions in probe code
    
    commit d4a19eb3b15a4ba98f627182f48d5bc0cffae670 upstream.
    
    We have two race conditions in the probe code which could lead to a null
    pointer dereference in the interrupt handler.
    
    The interrupt handler accesses the clockevent device, which may not yet be
    registered.
    
    First race condition happens when the interrupt handler gets registered before
    the interrupts get disabled. The second race condition happens when the
    interrupts get enabled, but the clockevent device is not yet registered.
    
    Fix that by disabling the interrupts before we register the interrupt and enable
    the interrupts after the clockevent device got registered.
    
    Reported-by: Gongbae Park <yongbae2@gmail.com>
    Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d58e15cc18f95bc06769795aa5237f2b525150e
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 251276cfcd716dfd02f0feed8e55759f200f28f9
Author: Jan Kara <jack@suse.cz>
Date:   Mon Feb 23 22:34:17 2015 +1100

    xfs: Fix quota type in quota structures when reusing quota file
    
    commit dfcc70a8c868fe03276fa59864149708fb41930b upstream.
    
    For filesystems without separate project quota inode field in the
    superblock we just reuse project quota file for group quotas (and vice
    versa) if project quota file is allocated and we need group quota file.
    When we reuse the file, quota structures on disk suddenly have wrong
    type stored in d_flags though. Nobody really cares about this (although
    structure type reported to userspace was wrong as well) except
    that after commit 14bf61ffe6ac (quota: Switch ->get_dqblk() and
    ->set_dqblk() to use bytes as space units) assertion in
    xfs_qm_scall_getquota() started to trigger on xfs/106 test (apparently I
    was testing without XFS_DEBUG so I didn't notice when submitting the
    above commit).
    
    Fix the problem by properly resetting ddq->d_flags when running quotacheck
    for a quota file.
    
    Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f165340feeaccfbe2afb1bbacfd1460ebec9b75
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 83a2ef9a74681002714a2564b79a85a02c3631e8
Author: Hans Holmberg <hans.holmberg@intel.com>
Date:   Tue Feb 10 09:48:27 2015 +0100

    gpiolib: of: allow of_gpiochip_find_and_xlate to find more than one chip per node
    
    commit 9cf75e9e4ddd587ac12e88e8751c358b7b27e95f upstream.
    
    The change:
    
    7b8792bbdffdff3abda704f89c6a45ea97afdc62
    gpiolib: of: Correct error handling in of_get_named_gpiod_flags
    
    assumed that only one gpio-chip is registred per of-node.
    Some drivers register more than one chip per of-node, so
    adjust the matching function of_gpiochip_find_and_xlate to
    not stop looking for chips if a node-match is found and
    the translation fails.
    
    Fixes: 7b8792bbdffd ("gpiolib: of: Correct error handling in of_get_named_gpiod_flags")
    Signed-off-by: Hans Holmberg <hans.holmberg@intel.com>
    Acked-by: Alexandre Courbot <acourbot@nvidia.com>
    Tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Tested-by: Tyler Hall <tylerwhall@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85520d339d9f48894b7fe3dbec72bcabe4903cb2
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 b20a2c494ade408d39379a121e0a9ad41f2f78fb
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 57a1612afaa6f7400e4b73de7efe93282d0d2261
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Fri Jan 16 12:58:09 2015 +0100

    KVM: s390: avoid memory leaks if __inject_vm() fails
    
    commit 428d53be5e7468769d4e7899cca06ed5f783a6e1 upstream.
    
    We have to delete the allocated interrupt info if __inject_vm() fails.
    
    Otherwise user space can keep flooding kvm with floating interrupts and
    provoke more and more memory leaks.
    
    Reported-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
    Reviewed-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9496df45fc50af5652fadd52080ddc8889c498a
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Thu Jan 15 17:56:18 2015 +0100

    KVM: s390: floating irqs: fix user triggerable endless loop
    
    commit 8e2207cdd087ebb031e9118d1fd0902c6533a5e5 upstream.
    
    If a vm with no VCPUs is created, the injection of a floating irq
    leads to an endless loop in the kernel.
    
    Let's skip the search for a destination VCPU for a floating irq if no
    VCPUs were created.
    
    Reviewed-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
    Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f79e5ec9d587278f5d23c86ac17d83c92a48e50b
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Fri Dec 12 15:17:31 2014 +0100

    KVM: s390: base hrtimer on a monotonic clock
    
    commit 0ac96caf0f9381088c673a16d910b1d329670edf upstream.
    
    The hrtimer that handles the wait with enabled timer interrupts
    should not be disturbed by changes of the host time.
    
    This patch changes our hrtimer to be based on a monotonic clock.
    
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66c3bfca4b105382dbd84118a5aa0a9664d8549a
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Thu Dec 11 10:18:01 2014 +0100

    KVM: s390: forward hrtimer if guest ckc not pending yet
    
    commit 2d00f759427bb3ed963b60f570830e9eca7e1c69 upstream.
    
    Patch 0759d0681cae ("KVM: s390: cleanup handle_wait by reusing
    kvm_vcpu_block") changed the way pending guest clock comparator
    interrupts are detected. It was assumed that as soon as the hrtimer
    wakes up, the condition for the guest ckc is satisfied.
    
    This is however only true as long as adjclock() doesn't speed
    up the monotonic clock. Reason is that the hrtimer is based on
    CLOCK_MONOTONIC, the guest clock comparator detection is based
    on the raw TOD clock. If CLOCK_MONOTONIC runs faster than the
    TOD clock, the hrtimer wakes the target VCPU up too early and
    the target VCPU will not detect any pending interrupts, therefore
    going back to sleep. It will never be woken up again because the
    hrtimer has finished. The VCPU is stuck.
    
    As a quick fix, we have to forward the hrtimer until the guest
    clock comparator is really due, to guarantee properly timed wake
    ups.
    
    As the hrtimer callback might be triggered on another cpu, we
    have to make sure that the timer is really stopped and not currently
    executing the callback on another cpu. This can happen if the vcpu
    thread is scheduled onto another physical cpu, but the timer base
    is not migrated. So lets use hrtimer_cancel instead of try_to_cancel.
    
    A proper fix might be to introduce a RAW based hrtimer.
    
    Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2fe31b547af1f5e79e35f57f343572063ce633d
Author: Jan Kara <jack@suse.cz>
Date:   Wed Jan 7 13:49:08 2015 +0100

    udf: Check length of extended attributes and allocation descriptors
    
    commit 23b133bdc452aa441fcb9b82cbf6dd05cfd342d0 upstream.
    
    Check length of extended attributes and allocation descriptors when
    loading inodes from disk. Otherwise corrupted filesystems could confuse
    the code and make the kernel oops.
    
    Reported-by: Carl Henrik Lunde <chlunde@ping.uio.no>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ca5861548a24b5bd82f5475250310180b02d3b9
Author: Jan Kara <jack@suse.cz>
Date:   Wed Jan 7 13:46:16 2015 +0100

    udf: Remove repeated loads blocksize
    
    commit 79144954278d4bb5989f8b903adcac7a20ff2a5a upstream.
    
    Store blocksize in a local variable in udf_fill_inode() since it is used
    a lot of times.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92d39ff2060c71b998817908eca399573cb31de3
Author: Markos Chandras <markos.chandras@imgtec.com>
Date:   Mon Jan 26 13:04:33 2015 +0000

    MIPS: HTW: Prevent accidental HTW start due to nested htw_{start, stop}
    
    commit ed4cbc81addbc076b016c5b979fd1a02f0897f0a upstream.
    
    activate_mm() and switch_mm() call get_new_mmu_context() which in turn
    can enable the HTW before the entryhi is changed with the new ASID.
    Since the latter will enable the HTW in local_flush_tlb_all(),
    then there is a small timing window where the HTW is running with the
    new ASID but with an old pgd since the TLBMISS_HANDLER_SETUP_PGD
    hasn't assigned a new one yet. In order to prevent that, we introduce a
    simple htw counter to avoid starting HTW accidentally due to nested
    htw_{start,stop}() sequences. Moreover, since various IPI calls can
    enforce TLB flushing operations on a different core, such an operation
    may interrupt another htw_{stop,start} in progress leading inconsistent
    updates of the htw_seq variable. In order to avoid that, we disable the
    interrupts whenever we update that variable.
    
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/9118/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05e3d5b59eedcda1f5f16d959e8a09039ec6e992
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 09b73e863c0aee9d7df7ca54f01ac623a32ca5eb
Author: Stefan Agner <stefan@agner.ch>
Date:   Sat Jan 10 01:08:59 2015 +0100

    serial: fsl_lpuart: avoid new transfer while DMA is running
    
    commit 5f1437f61a0b351d25b528c159360da3d5e8c77b upstream.
    
    When the UART is in DMA receive mode (RDMAS set) and one character
    just arrived while another interrupt is handled (e.g. TX), the RDRF
    (receiver data register full flag) is set due to the water level of
    1. But since the DMA will take care of this character, there is no
    need to handle it by calling lpuart_prepare_rx. Handling it leads to
    adding the RX timeout timer twice:
    
    [   74.336698] Kernel BUG at 80053070 [verbose debug info unavailable]
    [   74.342999] Internal error: Oops - BUG: 0 [#1] ARM0:00.00 khungtaskd
    [   74.347817] Modules linked in:    0 S  0.0  0.0   0:00.00 writeback
    [   74.350926] CPU: 0 PID: 0 Comm: swapper Not tainted 3.19.0-rc3-00001-g39d78e2 #1788
    [   74.358617] Hardware name: Freescale Vybrid VF610 (Device Tree)t
    [   74.364563] task: 807a7678 ti: 8079c000 task.ti: 8079c000 kblockd
    [   74.370002] PC is at add_timer+0x24/0x28.0  0.0   0:00.09 kworker/u2:1
    [   74.373960] LR is at lpuart_int+0x15c/0x3d8
    [   74.378171] pc : [<80053070>]    lr : [<802e0d88>]    psr: a0010193
    [   74.378171] sp : 8079de10  ip : 8079de20  fp : 8079de1c
    [   74.389694] r10: 807d44c0  r9 : 8688c300  r8 : 00000013
    [   74.394943] r7 : 20010193  r6 : 00000000  r5 : 000000a0  r4 : 86997210
    [   74.401498] r3 : ffffa7da  r2 : 80817868  r1 : 86997210  r0 : 86997344
    [   74.408052] Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    [   74.415489] Control: 10c5387d  Table: 8611c059  DAC: 00000015
    [   74.421265] Process swapper (pid: 0, stack limit = 0x8079c230)
    ...
    
    Solve this by only execute the receiver path (lpuart_prepare_rx) if
    the DMA receive mode (RDMAS) is not set. Also, make sure the flag is
    cleared on initialization, in case it has been left set.
    
    This can be best reproduced using UART as a serial console, then
    running top while dd'ing data into the terminal.
    
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d5cb6e8b4b62d8efd1a470615894276341d6db9
Author: Stefan Agner <stefan@agner.ch>
Date:   Sat Jan 10 01:08:58 2015 +0100

    serial: fsl_lpuart: delete timer on shutdown
    
    commit 4a8588a1cf867333187d9ff071e6fbdab587d194 upstream.
    
    If the serial port gets closed while a RX transfer is in progress,
    the timer might fire after the serial port shutdown finished. This
    leads in a NULL pointer dereference:
    
    [    7.508324] Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [    7.516590] pgd = 86348000
    [    7.519445] [00000000] *pgd=86179831, *pte=00000000, *ppte=00000000
    [    7.526145] Internal error: Oops: 17 [#1] ARM
    [    7.530611] Modules linked in:
    [    7.533876] CPU: 0 PID: 123 Comm: systemd Not tainted 3.19.0-rc3-00004-g5b11ea7 #1778
    [    7.541827] Hardware name: Freescale Vybrid VF610 (Device Tree)
    [    7.547862] task: 861c3400 ti: 86ac8000 task.ti: 86ac8000
    [    7.553392] PC is at lpuart_timer_func+0x24/0xf8
    [    7.558127] LR is at lpuart_timer_func+0x20/0xf8
    [    7.562857] pc : [<802df99c>]    lr : [<802df998>]    psr: 600b0113
    [    7.562857] sp : 86ac9b90  ip : 86ac9b90  fp : 86ac9bbc
    [    7.574467] r10: 80817180  r9 : 80817b98  r8 : 80817998
    [    7.579803] r7 : 807acee0  r6 : 86989000  r5 : 00000100  r4 : 86997210
    [    7.586444] r3 : 86ac8000  r2 : 86ac9bc0  r1 : 86997210  r0 : 00000000
    [    7.593085] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [    7.600341] Control: 10c5387d  Table: 86348059  DAC: 00000015
    [    7.606203] Process systemd (pid: 123, stack limit = 0x86ac8230)
    
    Setup the timer on UART startup which allows to delete the timer
    unconditionally on shutdown. This also saves the initialization
    on each transfer.
    
    Signed-off-by: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bcbb5825c03329bcbe8a8c0b4a0aa20cec8a86a
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 244e7e539435fcf6a81a54068afb37c1fbd5d1cb
Author: Jason Wessel <jason.wessel@windriver.com>
Date:   Thu Jan 8 15:46:55 2015 -0600

    kdb: Fix off by one error in kdb_cpu()
    
    commit df0036d117e6c9df36324e517728e33543065f9a upstream.
    
    There was a follow on replacement patch against the prior
    "kgdb: Timeout if secondary CPUs ignore the roundup".
    
    See: https://lkml.org/lkml/2015/1/7/442
    
    This patch is the delta vs the patch that was committed upstream:
      * Fix an off-by-one error in kdb_cpu().
      * Replace NR_CPUS with CONFIG_NR_CPUS to tell checkpatch that we
        really want a static limit.
      * Removed the "KGDB: " prefix from the pr_crit() in debug_core.c
        (kgdb-next contains a patch which introduced pr_fmt() to this file
        to the tag will now be applied automatically).
    
    Cc: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8b29b33d2a13263adbca342ba957e882f2b79759
Author: Daniel Thompson <daniel.thompson@linaro.org>
Date:   Fri Nov 7 18:37:57 2014 +0000

    kdb: Avoid printing KERN_ levels to consoles
    
    commit f7d4ca8bbfda23b4f1eae9b6757ff64166b093d5 upstream.
    
    Currently when kdb traps printk messages then the raw log level prefix
    (consisting of '\001' followed by a numeral) does not get stripped off
    before the message is issued to the various I/O handlers supported by
    kdb. This causes annoying visual noise as well as causing problems
    grepping for ^. It is also a change of behaviour compared to normal usage
    of printk() usage. For example <SysRq>-h ends up with different output to
    that of kdb's "sr h".
    
    This patch addresses the problem by stripping log levels from messages
    before they are issued to the I/O handlers. printk() which can also
    act as an i/o handler in some cases is special cased; if the caller
    provided a log level then the prefix will be preserved when sent to
    printk().
    
    The addition of non-printable characters to the output of kdb commands is a
    regression, albeit and extremely elderly one, introduced by commit
    04d2c8c83d0e ("printk: convert the format for KERN_<LEVEL> to a 2 byte
    pattern"). Note also that this patch does *not* restore the original
    behaviour from v3.5. Instead it makes printk() from within a kdb command
    display the message without any prefix (i.e. like printk() normally does).
    
    Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
    Cc: Joe Perches <joe@perches.com>
    Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10964ddc6240d6d24268a96066509993e5fbb6ca
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 7dd78f5a17e61918c6d501269dea07606f56fa7b
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Feb 2 15:27:16 2015 +0100

    ARM: mvebu: build armada375-smp code conditionally
    
    commit 165235180ff61f0012ea68a299e46daec43dcaa7 upstream.
    
    mvebu_armada375_smp_wa_init is only used on armada 375 but is defined
    for all mvebu machines. As it calls a function that is only provided
    sometimes, this can result in a link error:
    
    arch/arm/mach-mvebu/built-in.o: In function `mvebu_armada375_smp_wa_init':
    :(.text+0x228): undefined reference to `mvebu_setup_boot_addr_wa'
    
    To solve this, we can just change the existing #ifdef around the
    function to also check for Armada375 SMP platforms.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: 305969fb6292 ("ARM: mvebu: use the common function for Armada 375 SMP workaround")
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Gregory Clement <gregory.clement@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5100c13e2a822190bd3601d034722ad63aed790
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Feb 5 13:42:43 2015 +0100

    ARM: vexpress: use ARM_CPU_SUSPEND if needed
    
    commit 95fcedb027a27f32bf2434f9271635c380e57fb5 upstream.
    
    The vexpress tc2 power management code calls mcpm_loopback, which
    is only available if ARM_CPU_SUSPEND is enabled, otherwise we
    get a link error:
    
    arch/arm/mach-vexpress/built-in.o: In function `tc2_pm_init':
    arch/arm/mach-vexpress/tc2_pm.c:389: undefined reference to `mcpm_loopback'
    
    This explicitly selects ARM_CPU_SUSPEND like other platforms that
    need it.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: 3592d7e002438 ("ARM: 8082/1: TC2: test the MCPM loopback during boot")
    Acked-by: Nicolas Pitre <nico@linaro.org>
    Acked-by: Liviu Dudau <liviu.dudau@arm.com>
    Cc: Kevin Hilman <khilman@linaro.org>
    Cc: Sudeep Holla <sudeep.holla@arm.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49fa2998b5e19c9f216fa3951c318d1a07b4fd68
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Jan 23 20:59:10 2015 +0100

    ARM: BCM: put back ARCH_MULTI_V7 dependency for mobile
    
    commit ff34cae5b4fc7a84113d7c7e8611ba87a7c31dba upstream.
    
    A recent cleanup rearranged the Kconfig file for mach-bcm and
    accidentally dropped the dependency on ARCH_MULTI_V7, which
    makes it possible to now build the two mobile SoC platforms
    on an ARMv6-only kernel, resulting in a log of Kconfig
    warnings like
    
    warning: ARCH_BCM_MOBILE selects ARM_ERRATA_775420 which has unmet direct dependencies (CPU_V7)
    
    and which of course cannot work on any machine.
    
    This puts back the dependencies as before.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: 64e74aa788f99 ("ARM: mach-bcm: ARCH_BCM_MOBILE: remove one level of menu from Kconfig")
    Acked-by: Florian Fainelli <f.fainelli@gmail.com>
    Acked-by: Scott Branden <sbranden@broadcom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6ac26ee02b8f651ade7d1eb8e03250fd7d32bb7
Author: Brian Norris <computersforpeace@gmail.com>
Date:   Tue Dec 16 19:13:50 2014 -0800

    ARM: brcmstb: update CPU power management sequence
    
    commit a1ad3b94a7661b643fef2efbc6fc217bd148f462 upstream.
    
    The automatic CPU power state machine for B15 CPUs does not work
    reliably as-is. This patch implements a manual sequence in software to
    replace it.
    
    This was tested successfully with over 10,000 hotplug cycles of
    something like this:
    
      echo 0 > /sys/devices/system/cpu/cpu1/online
      echo 1 > /sys/devices/system/cpu/cpu1/online
    
    whereas the existing sequence often locks up after a few hundred cycles.
    
    Fixes: 62639c2f5332 ("ARM: brcmstb: reintroduce SMP support")
    Acked-by: Gregory Fong <gregory.0xf0@gmail.com>
    Signed-off-by: Brian Norris <computersforpeace@gmail.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

    ARM: pxa: add regulator_has_full_constraints to spitz board file
    
    commit baad2dc49c5d970ea881d92981a1b76c94a7b7a1 upstream.
    
    Add regulator_has_full_constraints() call to spitz 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 spitz if
    regulators are enabled:
    
    ads7846 spi2.0: unable to get regulator: -517
    spi spi2.0: Driver ads7846 requests probe deferral
    
    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 d20135064bee1fdd17493e0f772f0c5f396521b1
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 7febf090a21cec22ac5acf7b86dae677a494a083
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 9d07ec9b44503dd3a8efbff5a626cb56dba86e8f
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 01e123b4fb2e31f3842cef4dd2343f69edcf8d09
Author: Oliver Neukum <oneukum@suse.de>
Date:   Wed Jan 28 11:14:55 2015 +0100

    cdc-acm: add sanity checks
    
    commit 7e860a6e7aa62b337a61110430cd633db5b0d2dd upstream.
    
    Check the special CDC headers for a plausible minimum length.
    Another big operating systems ignores such garbage.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.de>
    Reviewed-by: Adam Lee <adam8157@gmail.com>
    Tested-by: Adam Lee <adam8157@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4af42b63db9f258a76c515def75e4463c138d4b
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Thu Jan 29 15:05:04 2015 -0500

    USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd)
    
    commit 074f9dd55f9cab1b82690ed7e44bcf38b9616ce0 upstream.
    
    Currently the USB stack assumes that all host controller drivers are
    capable of receiving wakeup requests from downstream devices.
    However, this isn't true for the isp1760-hcd driver, which means that
    it isn't safe to do a runtime suspend of any device attached to a
    root-hub port if the device requires wakeup.
    
    This patch adds a "cant_recv_wakeups" flag to the usb_hcd structure
    and sets the flag in isp1760-hcd.  The core is modified to prevent a
    direct child of the root hub from being put into runtime suspend with
    wakeup enabled if the flag is set.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Nicolas Pitre <nico@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee31866e8f2fbdc23b9cfedf0b20aa7c605f98f4
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Jan 21 14:02:43 2015 -0500

    USB: don't cancel queued resets when unbinding drivers
    
    commit 524134d422316a59d5464ccbc12036bbe90c5563 upstream.
    
    The USB stack provides a mechanism for drivers to request an
    asynchronous device reset (usb_queue_reset_device()).  The mechanism
    uses a work item (reset_ws) embedded in the usb_interface structure
    used by the driver, and the reset is carried out by a work queue
    routine.
    
    The asynchronous reset can race with driver unbinding.  When this
    happens, we try to cancel the queued reset before unbinding the
    driver, on the theory that the driver won't care about any resets once
    it is unbound.
    
    However, thanks to the fact that lockdep now tracks work queue
    accesses, this can provoke a lockdep warning in situations where the
    device reset causes another interface's driver to be unbound; see
    
    	http://marc.info/?l=linux-usb&m=141893165203776&w=2
    
    for an example.  The reason is that the work routine for reset_ws in
    one interface calls cancel_queued_work() for the reset_ws in another
    interface.  Lockdep thinks this might lead to a work routine trying to
    cancel itself.  The simplest solution is not to cancel queued resets
    when unbinding drivers.
    
    This means we now need to acquire a reference to the usb_interface
    when queuing a reset_ws work item and to drop the reference when the
    work routine finishes.  We also need to make sure that the
    usb_interface structure doesn't outlive its parent usb_device; this
    means acquiring and dropping a reference when the interface is created
    and destroyed.
    
    In addition, cancelling a queued reset can fail (if the device is in
    the middle of an earlier reset), and this can cause usb_reset_device()
    to try to rebind an interface that has been deallocated (see
    http://marc.info/?l=linux-usb&m=142175717016628&w=2 for details).
    Acquiring the extra references prevents this failure.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Russell King - ARM Linux <linux@arm.linux.org.uk>
    Reported-by: Olivier Sobrie <olivier@sobrie.be>
    Tested-by: Olivier Sobrie <olivier@sobrie.be>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e76372f1cc7112d785a9cb7a54ea96f26985ae9e
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 09271f4eea9cd11543ae91db02727a3b20b29d03
Author: Felipe Balbi <balbi@ti.com>
Date:   Thu Jan 29 10:29:18 2015 -0600

    usb: dwc3: gadget: add missing spin_lock()
    
    commit 5c7b3b02de766a8634708953e805399e3544a290 upstream.
    
    commit 8e74475b0e0a (usb: dwc3: gadget: use udc-core's
    reset notifier) added support for the new UDC core's
    reset notifier to dwc3 but while at it, it removed
    a spin_lock() from dwc3_reset_gadget() which might
    cause an unbalanced spin_unlock() further down the line
    
    Fixes: 8e74475b0e0a (usb: dwc3: gadget: use udc-core's reset notifier)
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07cc714778101a93ea971dd9d01a1bff8f00dc94
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 19e554a1b79597a9780fc7d273927d89852a3667
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 4cc39e7034f2654c33f75b5e4794e41c568214ec
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Sun Jan 25 23:45:28 2015 +0200

    mei: me: release hw from reset only during the reset flow
    
    commit 663b7ee9517eec6deea9a48c7a1392a9a34f7809 upstream.
    
    We might enter the interrupt handler with hw_ready already set,
    but prior we actually started the reset flow.
    To soleve this we move the reset release from the interrupt handler
    to the HW start wait function which is part of the reset sequence.
    
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6766138fa1a1c4142a5242c2bd4226b72e086c54
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Sun Jan 25 23:45:27 2015 +0200

    mei: mask interrupt set bit on clean reset bit
    
    commit 1ab1e79b9fd4b01331490bbe2e630a0fc0b25449 upstream.
    
    We should mask interrupt set bit when writing back
    hcsr value in reset bit clean-up.
    
    This is refinement for
    mei: clean reset bit before reset
    commit b13a65ef190e488e2761d65bdd2e1fe8a3a125f5
    
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f047b326ceb5c86e0685a7a4f310856ccce899c9
Author: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Date:   Tue Dec 9 14:31:34 2014 +0100

    tty/serial: at91: fix error handling in atmel_serial_probe()
    
    commit 6fbb9bdf0f3fbe23aeff806489791aa876adaffb upstream.
    
    -EDEFER error wasn't handle properly by atmel_serial_probe().
    As an example, when atmel_serial_probe() is called for the first time, we pass
    the test_and_set_bit() test to check whether the port has already been
    initalized. Then we call atmel_init_port(), which may return -EDEFER, possibly
    returned before by clk_get(). Consequently atmel_serial_probe() used to return
    this error code WITHOUT clearing the port bit in the "atmel_ports_in_use" mask.
    When atmel_serial_probe() was called for the second time, it used to fail on
    the test_and_set_bit() function then returning -EBUSY.
    
    When atmel_serial_probe() fails, this patch make it clear the port bit in the
    "atmel_ports_in_use" mask, if needed, before returning the error code.
    
    Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8155e4a095ba26d5e0204deb3f97aca2296fae5e
Author: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Date:   Tue Dec 9 14:31:33 2014 +0100

    tty/serial: at91: enable peripheral clock before accessing I/O registers
    
    commit d4f641876a68d1961e30c202709cc2d484f69f6f upstream.
    
    atmel_serial_probe() calls atmel_init_port(). In turn, atmel_init_port() calls
    clk_disable_unprepare() to disable the peripheral clock before returning.
    
    Later atmel_serial_probe() accesses some I/O registers such as the Mode and
    Control registers for RS485 support then the Name and Version registers, through a call to
    atmel_get_ip_name(), but at that moment the peripheral clock was still
    disabled.
    
    Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36ed10d9764d2536f1a9927d7b6ac16703baa2dd
Author: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Date:   Tue Dec 9 14:31:32 2014 +0100

    tty/serial: at91: use correct type for dma_sync_*_for_cpu() and dma_sync_*_for_device()
    
    commit 485819b5b9ed82372dacae775998f3c33717f7fe upstream.
    
    dma_sync_*_for_cpu() and dma_sync_*_for_device() use 'enum dma_data_direction',
    not 'enum dma_transfer_direction'
    
    Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb7289785821ad7624f61760bc9825c421831aba
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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8c9b752b91051a42960f9ef84ffa40450b9a408
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Tue Dec 30 07:11:11 2014 -0500

    tty: Remove warning in tty_lock_slave()
    
    commit eef15e2a54fad4c2ce3f0a81485dc591ce678f4f upstream.
    
    Commit 2aff5e2bc62db43e05c814461a08aff0fc2b7fe5 ('tty: Change
    tty lock order to master->slave') added a warning which is broken
    and unnecessary now that the tty lock has fixed lock subclasses,
    added in commit 2febdb632bb96235b94b8fccaf882a78f8f4b2bb
    ('tty: Preset lock subclass for nested tty locks').
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f30f3239d917ff0e16e485c903113ab4fa42c813
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 13f431faed6473bf0440e918f1e090107cf708ae
Author: Andrey Ryabinin <a.ryabinin@samsung.com>
Date:   Tue Jan 13 18:52:40 2015 +0300

    smack: fix possible use after frees in task_security() callers
    
    commit 6d1cff2a885850b78b40c34777b46cf5da5d1050 upstream.
    
    We hit use after free on dereferncing pointer to task_smack struct in
    smk_of_task() called from smack_task_to_inode().
    
    task_security() macro uses task_cred_xxx() to get pointer to the task_smack.
    task_cred_xxx() could be used only for non-pointer members of task's
    credentials. It cannot be used for pointer members since what they point
    to may disapper after dropping RCU read lock.
    
    Mainly task_security() used this way:
    	smk_of_task(task_security(p))
    
    Intead of this introduce function smk_of_task_struct() which
    takes task_struct as argument and returns pointer to smk_known struct
    and do this under RCU read lock.
    Bogus task_security() macro is not used anymore, so remove it.
    
    KASan's report for this:
    
    	AddressSanitizer: use after free in smack_task_to_inode+0x50/0x70 at addr c4635600
    	=============================================================================
    	BUG kmalloc-64 (Tainted: PO): kasan error
    	-----------------------------------------------------------------------------
    
    	Disabling lock debugging due to kernel taint
    	INFO: Allocated in new_task_smack+0x44/0xd8 age=39 cpu=0 pid=1866
    		kmem_cache_alloc_trace+0x88/0x1bc
    		new_task_smack+0x44/0xd8
    		smack_cred_prepare+0x48/0x21c
    		security_prepare_creds+0x44/0x4c
    		prepare_creds+0xdc/0x110
    		smack_setprocattr+0x104/0x150
    		security_setprocattr+0x4c/0x54
    		proc_pid_attr_write+0x12c/0x194
    		vfs_write+0x1b0/0x370
    		SyS_write+0x5c/0x94
    		ret_fast_syscall+0x0/0x48
    	INFO: Freed in smack_cred_free+0xc4/0xd0 age=27 cpu=0 pid=1564
    		kfree+0x270/0x290
    		smack_cred_free+0xc4/0xd0
    		security_cred_free+0x34/0x3c
    		put_cred_rcu+0x58/0xcc
    		rcu_process_callbacks+0x738/0x998
    		__do_softirq+0x264/0x4cc
    		do_softirq+0x94/0xf4
    		irq_exit+0xbc/0x120
    		handle_IRQ+0x104/0x134
    		gic_handle_irq+0x70/0xac
    		__irq_svc+0x44/0x78
    		_raw_spin_unlock+0x18/0x48
    		sync_inodes_sb+0x17c/0x1d8
    		sync_filesystem+0xac/0xfc
    		vdfs_file_fsync+0x90/0xc0
    		vfs_fsync_range+0x74/0x7c
    	INFO: Slab 0xd3b23f50 objects=32 used=31 fp=0xc4635600 flags=0x4080
    	INFO: Object 0xc4635600 @offset=5632 fp=0x  (null)
    
    	Bytes b4 c46355f0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
    	Object c4635600: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
    	Object c4635610: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
    	Object c4635620: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
    	Object c4635630: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5  kkkkkkkkkkkkkkk.
    	Redzone c4635640: bb bb bb bb                                      ....
    	Padding c46356e8: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
    	Padding c46356f8: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
    	CPU: 5 PID: 834 Comm: launchpad_prelo Tainted: PBO 3.10.30 #1
    	Backtrace:
    	[<c00233a4>] (dump_backtrace+0x0/0x158) from [<c0023dec>] (show_stack+0x20/0x24)
    	 r7:c4634010 r6:d3b23f50 r5:c4635600 r4:d1002140
    	[<c0023dcc>] (show_stack+0x0/0x24) from [<c06d6d7c>] (dump_stack+0x20/0x28)
    	[<c06d6d5c>] (dump_stack+0x0/0x28) from [<c01c1d50>] (print_trailer+0x124/0x144)
    	[<c01c1c2c>] (print_trailer+0x0/0x144) from [<c01c1e88>] (object_err+0x3c/0x44)
    	 r7:c4635600 r6:d1002140 r5:d3b23f50 r4:c4635600
    	[<c01c1e4c>] (object_err+0x0/0x44) from [<c01cac18>] (kasan_report_error+0x2b8/0x538)
    	 r6:d1002140 r5:d3b23f50 r4:c6429cf8 r3:c09e1aa7
    	[<c01ca960>] (kasan_report_error+0x0/0x538) from [<c01c9430>] (__asan_load4+0xd4/0xf8)
    	[<c01c935c>] (__asan_load4+0x0/0xf8) from [<c031e168>] (smack_task_to_inode+0x50/0x70)
    	 r5:c4635600 r4:ca9da000
    	[<c031e118>] (smack_task_to_inode+0x0/0x70) from [<c031af64>] (security_task_to_inode+0x3c/0x44)
    	 r5:cca25e80 r4:c0ba9780
    	[<c031af28>] (security_task_to_inode+0x0/0x44) from [<c023d614>] (pid_revalidate+0x124/0x178)
    	 r6:00000000 r5:cca25e80 r4:cbabe3c0 r3:00008124
    	[<c023d4f0>] (pid_revalidate+0x0/0x178) from [<c01db98c>] (lookup_fast+0x35c/0x43y4)
    	 r9:c6429efc r8:00000101 r7:c079d940 r6:c6429e90 r5:c6429ed8 r4:c83c4148
    	[<c01db630>] (lookup_fast+0x0/0x434) from [<c01deec8>] (do_last.isra.24+0x1c0/0x1108)
    	[<c01ded08>] (do_last.isra.24+0x0/0x1108) from [<c01dff04>] (path_openat.isra.25+0xf4/0x648)
    	[<c01dfe10>] (path_openat.isra.25+0x0/0x648) from [<c01e1458>] (do_filp_open+0x3c/0x88)
    	[<c01e141c>] (do_filp_open+0x0/0x88) from [<c01ccb28>] (do_sys_open+0xf0/0x198)
    	 r7:00000001 r6:c0ea2180 r5:0000000b r4:00000000
    	[<c01cca38>] (do_sys_open+0x0/0x198) from [<c01ccc00>] (SyS_open+0x30/0x34)
    	[<c01ccbd0>] (SyS_open+0x0/0x34) from [<c001db80>] (ret_fast_syscall+0x0/0x48)
    	Read of size 4 by thread T834:
    	Memory state around the buggy address:
    	 c4635380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    	 c4635400: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc
    	 c4635480: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    	 c4635500: 00 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc
    	 c4635580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    	>c4635600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    	           ^
    	 c4635680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    	 c4635700: 00 00 00 00 04 fc fc fc fc fc fc fc fc fc fc fc
    	 c4635780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    	 c4635800: 00 00 00 00 00 00 04 fc fc fc fc fc fc fc fc fc
    	 c4635880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    	==================================================================
    
    Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29a4446846408618de32c378a6378db609d9f486
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Tue Feb 10 22:14:53 2015 -0500

    ring-buffer: Do not wake up a splice waiter when page is not full
    
    commit 1e0d6714aceb770b04161fbedd7765d0e1fc27bd upstream.
    
    When an application connects to the ring buffer via splice, it can only
    read full pages. Splice does not work with partial pages. If there is
    not enough data to fill a page, the splice command will either block
    or return -EAGAIN (if set to nonblock).
    
    Code was added where if the page is not full, to just sleep again.
    The problem is, it will get woken up again on the next event. That
    is, when something is written into the ring buffer, if there is a waiter
    it will wake it up. The waiter would then check the buffer, see that
    it still does not have enough data to fill a page and go back to sleep.
    To make matters worse, when the waiter goes back to sleep, it could
    cause another event, which would wake it back up again to see it
    doesn't have enough data and sleep again. This produces a tremendous
    overhead and fills the ring buffer with noise.
    
    For example, recording sched_switch on an idle system for 10 seconds
    produces 25,350,475 events!!!
    
    Create another wait queue for those waiters wanting full pages.
    When an event is written, it only wakes up waiters if there's a full
    page of data. It does not wake up the waiter if the page is not yet
    full.
    
    After this change, recording sched_switch on an idle system for 10
    seconds produces only 800 events. Getting rid of 25,349,675 useless
    events (99.9969% of events!!), is something to take seriously.
    
    Cc: Rabin Vincent <rabin@rab.in>
    Fixes: e30f53aad220 "tracing: Do not busy wait in buffer splice"
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd8ef93c99b2df301641f15bde5b8f1bea3916f1
Author: Paul Moore <pmoore@redhat.com>
Date:   Wed Feb 11 14:46:37 2015 -0500

    cipso: don't use IPCB() to locate the CIPSO IP option
    
    commit 04f81f0154e4bf002be6f4d85668ce1257efa4d9 upstream.
    
    Using the IPCB() macro to get the IPv4 options is convenient, but
    unfortunately NetLabel often needs to examine the CIPSO option outside
    of the scope of the IP layer in the stack.  While historically IPCB()
    worked above the IP layer, due to the inclusion of the inet_skb_param
    struct at the head of the {tcp,udp}_skb_cb structs, recent commit
    971f10ec ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
    reordered the tcp_skb_cb struct and invalidated this IPCB() trick.
    
    This patch fixes the problem by creating a new function,
    cipso_v4_optptr(), which locates the CIPSO option inside the IP header
    without calling IPCB().  Unfortunately, this isn't as fast as a simple
    lookup so some additional tweaks were made to limit the use of this
    new function.
    
    Reported-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Paul Moore <pmoore@redhat.com>
    Tested-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 416f74c66eef66acebfbca90b647c5d123814325
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 3608406b794bc5bd25aae9bb5b08a53bff5629aa
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 f623bcdd5b913d9a766a8282f22d31f4415f23fe
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 e1ed769da5d4910885850a104d910d0495738d71
Author: Tony Battersby <tonyb@cybernetics.com>
Date:   Fri Feb 13 12:10:58 2015 -0500

    sg: fix EWOULDBLOCK errors with scsi-mq
    
    commit 7772855a996ec6e16944b120ab5ce21050279821 upstream.
    
    With scsi-mq enabled, userspace programs can get unexpected EWOULDBLOCK
    (a.k.a. EAGAIN) errors when submitting commands to the SCSI generic
    driver.  Fix by calling blk_get_request() with GFP_KERNEL instead of
    GFP_ATOMIC.
    
    Note: to avoid introducing a potential deadlock, this patch should be
    applied after the patch titled "sg: fix unkillable I/O wait deadlock
    with scsi-mq".
    
    Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
    Acked-by: Douglas Gilbert <dgilbert@interlog.com>
    Tested-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09c2814bd63d096180729ade91238b12f975e32f
Author: Tony Battersby <tonyb@cybernetics.com>
Date:   Fri Feb 13 12:09:44 2015 -0500

    sg: fix unkillable I/O wait deadlock with scsi-mq
    
    commit 7568615c1054907ea8c7701ab86dad51aa099888 upstream.
    
    When using the write()/read() interface for submitting commands, the
    SCSI generic driver does not call blk_put_request() on a completed SCSI
    command until userspace calls read() to get the command completion.
    Since scsi-mq uses a fixed number of preallocated requests, this makes
    it possible for userspace to exhaust the entire preallocated supply of
    requests.  For places in the kernel that call blk_get_request() with
    GFP_KERNEL, this can cause the calling process to deadlock in a
    permanent unkillable I/O wait in blk_get_request() -> ... -> bt_get().
    For places in the kernel that call blk_get_request() with GFP_ATOMIC,
    this can cause blk_get_request() always to return -EWOULDBLOCK.  Note
    that these problems happen only if scsi-mq is enabled.  Prevent the
    problems by calling blk_put_request() as soon as the SCSI command
    completes instead of waiting for userspace to call read().
    
    Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
    Acked-by: Douglas Gilbert <dgilbert@interlog.com>
    Tested-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b4853b6d4cd02f97749bf0d6bfabc160b6f5077
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 d77b2f385a2f3850d1abab60ea145c38f795cb99
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Thu Feb 5 15:13:24 2015 -0500

    NFSv4: Ensure we reference the inode for return-on-close in delegreturn
    
    commit ea7c38fef0b774a5dc16fb0ca5935f0ae8568176 upstream.
    
    If we have to do a return-on-close in the delegreturn code, then
    we must ensure that the inode and super block remain referenced.
    
    Cc: Peng Tao <tao.peng@primarydata.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Reviewed-by: Peng Tao <tao.peng@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a3f8e6fb70de61571ed10cdd023a29e2658f1db
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Fri Jan 30 18:12:28 2015 -0500

    SUNRPC: NULL utsname dereference on NFS umount during namespace cleanup
    
    commit 03a9a42a1a7e5b3e7919ddfacc1d1cc81882a955 upstream.
    
    Fix an Oopsable condition when nsm_mon_unmon is called as part of the
    namespace cleanup, which now apparently happens after the utsname
    has been freed.
    
    Link: http://lkml.kernel.org/r/20150125220604.090121ae@neptune.home
    Reported-by: Bruno Prémont <bonbons@linux-vserver.org>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d52ff195d3faacb0228608aa8b2b1931d5bed21e
Author: Peng Tao <tao.peng@primarydata.com>
Date:   Sat Jan 24 22:14:52 2015 +0800

    nfs41: .init_read and .init_write can be called with valid pg_lseg
    
    commit cb5d04bc39e914124e811ea55f3034d2379a5f6c upstream.
    
    With pgio refactoring in v3.15, .init_read and .init_write can be
    called with valid pgio->pg_lseg. file layout was fixed at that time
    by commit c6194271f (pnfs: filelayout: support non page aligned
    layouts). But the generic helper still needs to be fixed.
    
    Signed-off-by: Peng Tao <tao.peng@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1f02461a776f3ee92564d5055b588eb8099e13f
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 0d786782b4974551bed70216087f8ff840eeb2e6
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 f6dfa6a2c9fd04a2496e75368bacdfd027f197d8
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 d9b736e02bd932cde59a18c6cf7de7d64277be21
Author: Kiran Padwal <kiran.padwal@smartplayin.com>
Date:   Fri Sep 19 12:44:39 2014 +0530

    char: tpm: Add missing error check for devm_kzalloc
    
    commit bb95cd34ba4c9467114acc78eeddd53ab1c10085 upstream.
    
    Currently these driver are missing a check on the return value of devm_kzalloc,
    which would cause a NULL pointer dereference in a OOM situation.
    
    This patch adds a missing check for tpm_i2c_atmel.c and tpm_i2c_nuvoton.c
    
    Signed-off-by: Kiran Padwal <kiran.padwal@smartplayin.com>
    Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 770ab65c5cb33869bbfb5439b78925573246c51a
Author: David Howells <dhowells@redhat.com>
Date:   Fri Aug 29 10:33:02 2014 +0100

    TPM: Add new TPMs to the tail of the list to prevent inadvertent change of dev
    
    commit 398a1e71dc827b994b7f2f56c7c2186fea7f8d75 upstream.
    
    Add newly registered TPMs to the tail of the list, not the beginning, so that
    things that are specifying TPM_ANY_NUM don't find that the device they're
    using has inadvertently changed.  Adding a second device would break IMA, for
    instance.
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bef49dc168f4f3cbe5a94588c46e4ea260b1dd32
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 ede1c87dab875cb070f4f4d00a6e19315f6163c8
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Tue Feb 10 17:33:07 2015 -0800

    ARM: dts: BCM63xx: fix L2 cache properties
    
    commit 9df11828d9b5665ddef81e45f83dd5376a8cd620 upstream.
    
    The L2 cache properties were completely off with respect to what the
    hardware is configured for. Fix the cache-size, cache-line-size and
    cache-sets to reflect the L2 cache controller we have: 512KB, 16 ways
    and 32 bytes per cache-line.
    
    Fixes: 46d4bca0445a0 ("ARM: BCM63XX: add BCM63138 minimal Device Tree")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42b3f837879d1d8539b2a9f57fd4d6417f5d2a66
Author: Robert Nelson <robertcnelson@gmail.com>
Date:   Tue Feb 24 10:10:43 2015 -0600

    ARM: dts: am335x-bone*: usb0 is hardwired for peripheral
    
    commit 67fd14b3eca63b14429350e9eadc5fab709a8821 upstream.
    
    Fixes: http://bugs.elinux.org/issues/127
    
    the bb.org community was seeing random reboots before this change.
    
    Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Acked-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6fda79f84cf909ba09889b7f7087fee8e4e166d6
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Fri Dec 12 18:19:19 2014 +0300

    ARM: dts: tegra20: fix GR3D, DSI unit and reg base addresses
    
    commit de47699d005996b41cea590c6098078ac12058be upstream.
    
    Commit 58ecb23f64ee ("ARM: tegra: add missing unit addresses to DT") added
    unit address and changed reg base for GR3D and DSI host1x modules, but these
    addresses belongs to GR2D and TVO modules respectively. Fix it by changing
    modules unit and reg base addresses to proper ones.
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Fixes: 58ecb23f64ee (ARM: tegra: add missing unit addresses to DT)
    Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c06223143b7e42637c04225988847ae7be96e04
Author: Lokesh Vutla <lokeshvutla@ti.com>
Date:   Thu Jan 8 17:22:04 2015 +0530

    ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL enabled on UART3
    
    commit 1c7e36bfc3e2fb2df5e2d1989a4b6fb9055a0f9b upstream.
    
    With commit '7dedd34: ARM: OMAP2+: hwmod: Fix a crash in _setup_reset()
    with DEBUG_LL' we moved from parsing cmdline to identify uart used
    for earlycon to using the requsite hwmod CONFIG_DEBUG_OMAPxUARTy FLAGS.
    
    On DRA7 UART3 hwmod doesn't have this flag enabled, and atleast on
    BeagleBoard-X15, where we use UART3 for console, boot fails with
    DEBUG_LL enabled. Enable DEBUG_OMAP4UART3_FLAGS for UART3 hwmod.
    
    For using DEBUG_LL, enable CONFIG_DEBUG_OMAP4UART3 in menuconfig.
    
    Fixes: 90020c7b2c5e ("ARM: OMAP: DRA7: hwmod: Create initial DRA7XX SoC data")
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Acked-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
    Signed-off-by: Paul Walmsley <paul@pwsan.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33ceb68c181a9ab8d6d90e4a8204964ea6e7a765
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 238ddf7ac40a14b51d8317246263494406d2c6ba
Author: Tony Battersby <tonyb@cybernetics.com>
Date:   Wed Feb 11 11:32:30 2015 -0500

    blk-mq: fix double-free in error path
    
    commit 564e559f2baf6a868768d0cac286980b3cfd6e30 upstream.
    
    If the allocation of bt->bs fails, then bt->map can be freed twice, once
    in blk_mq_init_bitmap_tags() -> bt_alloc(), and once in
    blk_mq_init_bitmap_tags() -> bt_free().  Fix by setting the pointer to
    NULL after the first free.
    
    Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a0a645bf699f808e997fc7caa7cdeb459251bcdf
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 9cdaa7e29df63ad90f01b218b176425fd07de652
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Wed Feb 11 15:25:19 2015 -0800

    mm/hugetlb: pmd_huge() returns true for non-present hugepage
    
    commit cbef8478bee55775ac312a574aad48af7bb9cf9f upstream.
    
    Migrating hugepages and hwpoisoned hugepages are considered as non-present
    hugepages, and they are referenced via migration entries and hwpoison
    entries in their page table slots.
    
    This behavior causes race condition because pmd_huge() doesn't tell
    non-huge pages from migrating/hwpoisoned hugepages.  follow_page_mask() is
    one example where the kernel would call follow_page_pte() for such
    hugepage while this function is supposed to handle only normal pages.
    
    To avoid this, this patch makes pmd_huge() return true when pmd_none() is
    true *and* pmd_present() is false.  We don't have to worry about mixing up
    non-present pmd entry with normal pmd (pointing to leaf level pte entry)
    because pmd_present() is true in normal pmd.
    
    The same race condition could happen in (x86-specific) gup_pmd_range(),
    where this patch simply adds pmd_present() check instead of pmd_huge().
    This is because gup_pmd_range() is fast path.  If we have non-present
    hugepage in this function, we will go into gup_huge_pmd(), then return 0
    at flag mask check, and finally fall back to the slow path.
    
    Fixes: 290408d4a2 ("hugetlb: hugepage migration core")
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Luiz Capitulino <lcapitulino@redhat.com>
    Cc: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
    Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
    Cc: Steve Capper <steve.capper@linaro.org>
    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 a818d2aeecc08f755b61a2807ed4c83847563905
Author: James Hogan <james.hogan@imgtec.com>
Date:   Tue Feb 10 10:03:00 2015 +0000

    MIPS: Export MSA functions used by lose_fpu(1) for KVM
    
    commit ca5d25642e212f73492d332d95dc90ef46a0e8dc upstream.
    
    Export the _save_msa 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 and
    CONFIG_CPU_HAS_MSA=y due to commit f798217dfd03 ("KVM: MIPS: Don't leak
    FPU/DSP to guest"):
    
    ERROR: "_save_msa" [arch/mips/kvm/kvm.ko] undefined!
    
    Fixes: f798217dfd03 (KVM: MIPS: Don't leak FPU/DSP to guest)
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    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/9261/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2bfca500fb41ad36b78db33d7c66502fc1f48cf1
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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dea338963b12e603533bc6fbc6a50ee4bb70eb50
Author: Markos Chandras <markos.chandras@imgtec.com>
Date:   Mon Jan 26 09:40:36 2015 +0000

    MIPS: asm: pgtable: Prevent HTW race when updating PTEs
    
    commit fde3538a8a711aedf1173ecb2d45aed868f51c97 upstream.
    
    Whenever we modify a page table entry, we need to ensure that the HTW
    will not fetch a stable entry. And for that to happen we need to ensure
    that HTW is stopped before we modify the said entry otherwise the HTW
    may already be in the process of reading that entry and fetching the
    old information. As a result of which, we replace the htw_reset() calls
    with htw_{stop,start} in more appropriate places. This also removes the
    remaining users of htw_reset() and as a result we drop that macro
    
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/9116/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de0a5f5e9a8df30378225c85aa4a3e4e254a0299
Author: Markos Chandras <markos.chandras@imgtec.com>
Date:   Mon Jan 26 09:40:34 2015 +0000

    MIPS: asm: pgtable: Add c0 hazards on HTW start/stop sequences
    
    commit 461d1597ffad7a826f8aaa63ab0727c37b632e34 upstream.
    
    When we use htw_{start,stop}() outside of htw_reset(), we need
    to ensure that c0 changes have been propagated properly before
    we attempt to continue with subsequence memory operations.
    
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/9114/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e800e504c89f3ace417e0b94aad63ded14da8d01
Author: Markos Chandras <markos.chandras@imgtec.com>
Date:   Wed Nov 5 14:17:52 2014 +0000

    MIPS: asm: asmmacro: Replace "add" instructions with "addu"
    
    commit 98a833c1fa4de0695830f77b2d13fd86693da298 upstream.
    
    The "add" instruction is actually a macro in binutils and depending on
    the size of the immediate it can expand to an "addi" instruction.
    However, the "addi" instruction traps on overflows which is not
    something we want on address calculation.
    
    Link: http://www.linux-mips.org/archives/linux-mips/2015-01/msg00121.html
    Cc: Paul Burton <paul.burton@imgtec.com>
    Cc: Maciej W. Rozycki <macro@linux-mips.org>
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 905fd8504005c2cc6a712a4b052d76ca0814f544
Author: Markos Chandras <markos.chandras@imgtec.com>
Date:   Mon Nov 24 14:40:11 2014 +0000

    MIPS: kernel: cps-vec: Replace "addi" with "addiu"
    
    commit acac4108df6029c03195513ead7073bbb0cb9718 upstream.
    
    The "addi" instruction will trap on overflows which is not something
    we need in this code, so we replace that with "addiu".
    
    Link: http://www.linux-mips.org/archives/linux-mips/2015-01/msg00430.html
    Cc: Maciej W. Rozycki <macro@linux-mips.org>
    Cc: Paul Burton <paul.burton@imgtec.com>
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1f002d6b8ec0dd1d8268d4ec397dc4e10889ec4
Author: Manuel Lauss <manuel.lauss@gmail.com>
Date:   Wed Feb 18 11:01:56 2015 +0100

    MIPS: Alchemy: Fix cpu clock calculation
    
    commit 69e4e63ec816a7e22cc3aa14bc7ef4ac734d370c upstream.
    
    The current code uses bits 0-6 of the sys_cpupll register to calculate
    core clock speed.  However this is only valid on Au1300, on all earlier
    models the hardware only uses bits 0-5 to generate core clock.
    
    This fixes clock calculation on the MTX1 (Au1500), where bit 6 of cpupll
    is set as well, which ultimately lead the code to calculate a bogus cpu
    core clock and also uart base clock down the line.
    
    Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
    Reported-by: John Crispin <blogic@openwrt.org>
    Tested-by: Bruno Randolf <br1@einfach.org>
    Cc: Linux-MIPS <linux-mips@linux-mips.org>
    Patchwork: https://patchwork.linux-mips.org/patch/9279/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1835ecd56ddb5b5de5f17aaa60cd68edc83eae81
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
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32a699154df8fa9aaeb8f4a0de20a897dc0ec065
Author: James Hogan <james.hogan@imgtec.com>
Date:   Wed Feb 4 10:52:03 2015 +0000

    KVM: MIPS: Disable HTW while in guest
    
    commit c4c6f2cad9e1d4cc076bc183c3689cc9e7019c75 upstream.
    
    Ensure any hardware page table walker (HTW) is disabled while in KVM
    guest mode, as KVM doesn't yet set up hardware page table walking for
    guest mappings so the wrong mappings would get loaded, resulting in the
    guest hanging or crashing once it reaches userland.
    
    The HTW is disabled and re-enabled around the call to
    __kvm_mips_vcpu_run() which does the initial switch into guest mode and
    the final switch out of guest context. Additionally it is enabled for
    the duration of guest exits (i.e. kvm_mips_handle_exit()), getting
    disabled again before returning back to guest or host.
    
    In all cases the HTW is only disabled in normal kernel mode while
    interrupts are disabled, so that the HTW doesn't get left disabled if
    the process is preempted.
    
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Markos Chandras <markos.chandras@imgtec.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: kvm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5fb43ea907ecf14959ea639dfc4d9fbc9125d8ae
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Fri Feb 13 21:03:16 2015 -0500

    NFS: struct nfs_commit_info.lock must always point to inode->i_lock
    
    commit f4086a3d789dbe18949862276d83b8f49fce6d2f upstream.
    
    Commit 411a99adffb4f (nfs: clear_request_commit while holding i_lock)
    assumes that the nfs_commit_info always points to the inode->i_lock.
    For historical reasons, that is not the case for O_DIRECT writes.
    
    Cc: Weston Andros Adamson <dros@primarydata.com>
    Fixes: 411a99adffb4f ("nfs: clear_request_commit while holding i_lock")
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c0f2544c2355899dcf62821ed0b230b60b79c22
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 66f6db714bd16874b5f9361c0dd879dd25c1fa04
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Wed Feb 11 15:27:31 2015 -0800

    proc/pagemap: walk page tables under pte lock
    
    commit 05fbf357d94152171bc50f8a369390f1f16efd89 upstream.
    
    Lockless access to pte in pagemap_pte_range() might race with page
    migration and trigger BUG_ON(!PageLocked()) in migration_entry_to_page():
    
    CPU A (pagemap)                           CPU B (migration)
                                              lock_page()
                                              try_to_unmap(page, TTU_MIGRATION...)
                                                   make_migration_entry()
                                                   set_pte_at()
    <read *pte>
    pte_to_pagemap_entry()
                                              remove_migration_ptes()
                                              unlock_page()
        if(is_migration_entry())
            migration_entry_to_page()
                BUG_ON(!PageLocked(page))
    
    Also lockless read might be non-atomic if pte is larger than wordsize.
    Other pte walkers (smaps, numa_maps, clear_refs) already lock ptes.
    
    Fixes: 052fb0d635df ("proc: report file/anon bit in /proc/pid/pagemap")
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Reported-by: Andrey Ryabinin <a.ryabinin@samsung.com>
    Reviewed-by: Cyrill Gorcunov <gorcunov@openvz.org>
    Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.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 0c98e7c57536841d0e0d41c14136d9ba507deb9a
Author: Marcin Wojtas <mw@semihalf.com>
Date:   Thu Jan 29 12:36:25 2015 +0100

    mmc: sdhci-pxav3: Fix Armada 38x controller's caps according to erratum ERR-7878951
    
    commit a39128bcd6f1e56c6514abf489b40b67d226093b upstream.
    
    According to erratum 'ERR-7878951' Armada 38x SDHCI controller has
    different capabilities than the ones shown in its registers:
    
    - it doesn't support the voltage switching: it can work either with
      3.3V or 1.8V supply
    - it doesn't support the SDR104 mode
    - SDR50 mode doesn't need tuning
    
    The SDHCI_QUIRK_MISSING_CAPS quirk is used for updating the
    capabilities accordingly.
    
    [gregory.clement@free-electrons.com: port from 3.10]
    
    Fixes: 5491ce3f79ee ("mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller")
    
    Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56073d467f5efa6a46975904d6eb4cd39a745b0b
Author: Gregory CLEMENT <gregory.clement@free-electrons.com>
Date:   Thu Jan 29 12:36:24 2015 +0100

    mmc: sdhci-pxav3: Fix SDR50 and DDR50 capabilities for the Armada 38x flavor
    
    commit d4b803c559843e3774736e5108cf6331cf75f64c upstream.
    
    According to erratum 'FE-2946959' both SDR50 and DDR50 modes require
    specific clock adjustments in SDIO3 Configuration register. However,
    this register was not part of the device tree binding. Even if the
    binding can (and will) be extended we still need handling the case
    where this register was not available. In this case we use the
    SDHCI_QUIRK_MISSING_CAPS quirk remove them from the capabilities.
    
    This commit is based on the work done by Marcin Wojtas<mw@semihalf.com>
    
    Fixes: 5491ce3f79ee ("mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller")
    Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Signed-off-by: Marcin Wojtas <mw@semihalf.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de4adf92f9722206f3547eff5eeaae8b632266c6
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 20b85db94c1f4f3f86a83812b817d96fa37db61c
Author: Jisheng Zhang <jszhang@marvell.com>
Date:   Fri Jan 23 18:08:21 2015 +0800

    mmc: sdhci-pxav3: fix race between runtime pm and irq
    
    commit 3bb10f60933e84abfe2be69f60b3486f9b96348b upstream.
    
    This patch is to fix a race condition that may cause an unhandled irq,
    which results in big sdhci interrupt numbers and endless "mmc1: got irq
    while runtime suspended" msgs before v3.15.
    
    Consider following scenario:
    
          CPU0                            CPU1
                                  sdhci_pxav3_runtime_suspend()
                                   spin_lock_irqsave(&host->lock, flags);
     sdhci_irq()
      spining on the &host->lock
                                   host->runtime_suspended = true;
                                   spin_unlock_irqrestore(&host->lock, flags);
      get the &host->lock
      runtime_suspended is true now
      return IRQ_NONE;
    
    Fix this race by using the core sdhci.c supplied sdhci_runtime_suspend_host()
    in runtime suspend hook which will disable card interrupts. We also use the
    sdhci_runtime_resume_host() in the runtime resume hook accordingly.
    
    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 611ef74966d545d0e56bcb8501ee610ec9383745
Author: Jisheng Zhang <jszhang@marvell.com>
Date:   Sun Jan 4 23:15:47 2015 +0800

    mmc: sdhci-pxav3: fix unbalanced clock issues during probe
    
    commit 62cf983ad84275f8580c807e5e596216c46773cf upstream.
    
    Commit 0dcaa2499b7d ("sdhci-pxav3: Fix runtime PM initialization") tries
    to fix one hang issue caused by calling sdhci_add_host() on a suspended
    device. The fix enables the clock twice, once by clk_prepare_enable() and
    another by pm_runtime_get_sync(), meaning that the clock will never be
    gated at runtime PM suspend. I observed the power consumption regression on
    Marvell BG2Q SoCs.
    
    In fact, the fix is not correct. There still be a very small window
    during which a runtime suspend might somehow occur after pm_runtime_enable()
    but before pm_runtime_get_sync().
    
    This patch fixes all of the two problems by just incrementing the usage
    counter before pm_runtime_enable(). It also adjust the order of disabling
    runtime pm and storing the usage count in the error path to handle clock
    gating properly.
    
    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 c45124791803fb535bbfe50abc49095bcf5ba962
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:41 2014 -0300

    em28xx-audio: fix missing newlines, again
    
    commit fbaa48d1853002c2e7bcf12c1fdc0f6fb16d1525 upstream.
    
    Inspection shows that newlines are missing from several kernel messages
    in em28xx-audio.  Fix these.
    
    Fixes: 6d746f91f230 ("[media] em28xx-audio: implement em28xx_ops: suspend/resume hooks")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf9d9e04e0d97444b2585b47c239ab4c2833a173
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:46 2014 -0300

    em28xx-dvb: fix missing newlines
    
    commit a084c57fc1ccd24ef8e6ca41e75afa745d5dbb98 upstream.
    
    Inspection shows that newlines are missing from several kernel messages
    in em28xx-dvb.  Fix these.
    
    Fixes: ca2b46dacbf5 ("[media] em28xx-dvb: implement em28xx_ops: suspend/resume hooks")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 25222c5df5dd32b13a5a5e180472db952c2d19b2
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:51 2014 -0300

    em28xx-video: fix missing newlines
    
    commit 32e63f0368ed16e5ac417dc0bc2a5f8acbfb1511 upstream.
    
    Inspection shows that newlines are missing from several kernel messages
    in em28xx-video.  Fix these.
    
    Fixes: a61f68119af3 ("[media] em28xx-video: implement em28xx_ops: suspend/resume hooks")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 65a4de46a03b76aa782cb430de86d7f5f7825ede
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:31 2014 -0300

    em28xx-core: fix missing newlines
    
    commit 522adc7c1f70d302155bb07f7fdf5a7fe4ff9094 upstream.
    
    Inspection shows that newlines are missing from several kernel messages
    in em28xx-core.  Fix these.
    
    Fixes: 9c669b731470 ("[media] em28xx: add suspend/resume to em28xx_ops")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 274ccd1695b8c1c1daf3e8432388273ac791ab79
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:36 2014 -0300

    em28xx-audio: fix missing newlines
    
    commit 7818b0aab87b680fb10f68eccebeeb6cd8283c73 upstream.
    
    Inspection shows that newlines are missing from several kernel messages
    in em28xx-audio.  Fix these.
    
    Fixes: 1b3fd2d34266 ("[media] em28xx-audio: don't hardcode audio URB calculus")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84795bdbfb3ccca0912ead78007aeaabfc504a63
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:26 2014 -0300

    em28xx-input: fix missing newlines
    
    commit ebfd59cf549899a166d595bf1eab7eec3299ebe7 upstream.
    
    Inspection shows that newlines are missing from several kernel messages
    in em28xx-input.  Fix these.
    
    Fixes: 5025076aadfe ("[media] em28xx-input: implement em28xx_ops: suspend/resume hooks")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e1def0dee73ddbe672a103af68105a587583d06
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:20 2014 -0300

    em28xx: ensure "closing" messages terminate with a newline
    
    commit 0418ca6073478f54f1da2e4013fa50d36838de75 upstream.
    
    The lockdep splat addressed in a previous commit revealed that at
    least one message in em28xx-input.c was missing a new line:
    
    em28178 #0: Closing input extensionINFO: trying to register non-static key.
    
    Further inspection shows several other messages also miss a new line.
    These will be fixed in a subsequent patch.
    
    Fixes: aa929ad783c0 ("[media] em28xx: print a message at disconnect")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b211f750e0737bcef1ee672e9992ac5d9c322d36
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat Dec 20 09:45:15 2014 -0300

    em28xx: fix em28xx-input removal
    
    commit bbfebeea7640973613c484f0281bdd15d68fd873 upstream.
    
    Removing the em28xx-rc module results in the following lockdep splat,
    which is caused by trying to call cancel_delayed_work_sync() on an
    uninitialised delayed work.  Fix this by ensuring we always initialise
    the work.
    
    INFO: trying to register non-static key.
    the code is fine but needs lockdep annotation.
    turning off the locking correctness validator.
    CPU: 0 PID: 2183 Comm: rmmod Not tainted 3.18.0+ #1464
    Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    Backtrace:
    [<c0012228>] (dump_backtrace) from [<c00123c0>] (show_stack+0x18/0x1c)
     r6:c1419d2c r5:00000000 r4:00000000 r3:00000000
    [<c00123a8>] (show_stack) from [<c06e2550>] (dump_stack+0x7c/0x98)
    [<c06e24d4>] (dump_stack) from [<c0061c94>] (__lock_acquire+0x16d4/0x1bb0)
     r4:edf19f74 r3:df049380
    [<c00605c0>] (__lock_acquire) from [<c00626d4>] (lock_acquire+0xb0/0x124)
     r10:00000000 r9:c003ba90 r8:00000000 r7:00000000 r6:00000000 r5:edf19f74
     r4:00000000
    [<c0062624>] (lock_acquire) from [<c003bad4>] (flush_work+0x44/0x264)
     r10:00000000 r9:eaa86000 r8:edf190b0 r7:edf19f74 r6:00000001 r5:edf19f64
     r4:00000000
    [<c003ba90>] (flush_work) from [<c003d8f0>] (__cancel_work_timer+0x8c/0x124)
     r7:00000000 r6:00000001 r5:00000000 r4:edf19f64
    [<c003d864>] (__cancel_work_timer) from [<c003d99c>] (cancel_delayed_work_sync+0x14/0x18)
     r7:00000000 r6:eccc3600 r5:00000000 r4:edf19000
    [<c003d988>] (cancel_delayed_work_sync) from [<bf0b5c10>] (em28xx_ir_fini+0x48/0xd8 [em28xx_rc])
    [<bf0b5bc8>] (em28xx_ir_fini [em28xx_rc]) from [<bf08a0a8>] (em28xx_unregister_extension+0x40/0x94 [em28xx])
     r8:c000edc4 r7:00000081 r6:bf092bf4 r5:bf0b6a2c r4:edf19000 r3:bf0b5bc8
    [<bf08a068>] (em28xx_unregister_extension [em28xx]) from [<bf0b64dc>] (em28xx_rc_unregister+0x14/0x1c [em28xx_rc])
     r6:00000800 r5:00000000 r4:bf0b6a50 r3:bf0b64c8
    [<bf0b64c8>] (em28xx_rc_unregister [em28xx_rc]) from [<c0096710>] (SyS_delete_module+0x11c/0x180)
    [<c00965f4>] (SyS_delete_module) from [<c000ec00>] (ret_fast_syscall+0x0/0x48)
     r6:00000001 r5:beb0f813 r4:b8b17d00
    
    Fixes: f52226099382 ("[media] em28xx: extend the support for device buttons")
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3764ff7405e079124ee817f630bfbb4f1f61c2f
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Jan 28 18:17:41 2015 -0300

    timberdale: do not select TIMB_DMA
    
    commit 244829226f47ffb4d6009a2ccd2771cd149d8114 upstream.
    
    The timberdale media driver requires the use of the respective
    dma engine driver, but that may not be enabled, causing a
    Kconfig warning:
    
    warning: (VIDEO_TIMBERDALE) selects TIMB_DMA which has unmet direct dependencies (DMADEVICES && MFD_TIMBERDALE)
    
    This fixes the dependency by removing the inappropriate 'select'
    statement and replacing it with a direct dependency on the
    drivers that provide the services this needs.
    
    Fixes: 7155043c2d027 ("[media] enable COMPILE_TEST for media drivers")
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d265783440f16deddee8ac8e3c7b663fbcda3b8f
Author: James Hogan <james.hogan@imgtec.com>
Date:   Mon Dec 8 13:17:07 2014 -0300

    rc-main: Re-apply filter for no-op protocol change
    
    commit 983c5bd26b86ba1c0d79b770e596bb8b77e42f32 upstream.
    
    Since commit da6e162d6a46 ("[media] rc-core: simplify sysfs code"), when
    the IR protocol is set using the sysfs interface to the same set of
    protocols that are already set, store_protocols() does not refresh the
    scancode filter with the new protocol, even if it has already called the
    change_protocol() callback successfully. This results in the filter
    being disabled in the hardware and not re-enabled until the filter is
    set again using sysfs.
    
    Fix in store_protocols() by still re-applying the filter whenever the
    change_protocol() driver callback succeeded.
    
    The problem can be reproduced with the img-ir driver by setting a
    filter, and then setting the protocol to the same protocol that is
    already set:
    $ echo nec > protocols
    $ echo 0xffff > filter_mask
    $ echo nec > protocols
    
    After this, messages which don't match the filter were still being
    received.
    
    Fixes: da6e162d6a46 ("[media] rc-core: simplify sysfs code")
    
    Reported-by: Sifan Naeem <sifan.naeem@imgtec.com>
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: David Härdeman <david@hardeman.nu>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a630886858a798f0519f55f0618702ead597d04
Author: Sumit.Saxena@avagotech.com <Sumit.Saxena@avagotech.com>
Date:   Mon Jan 5 20:06:18 2015 +0530

    megaraid_sas: complete outstanding IOCTLs before killing adapter
    
    commit c8dd61eff2780c481fcf919c1572e16e397c714e upstream.
    
    Driver calls megasas_complete_cmd() to call wake_up() for each MFI frame
    that was issued through the ioctl() interface prior to the kill adapter.
    This ensures userspace ioctl() system calls issued just before a kill
    adapter don't get stuck in wait state and IOCTLs are returned to
    the application.
    
    Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
    Signed-off-by: Chaitra Basappa <chaitra.basappa@avagotech.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3913acc965e871a7a657ac4f61ebcd1fb0d486ee
Author: Sumit.Saxena@avagotech.com <Sumit.Saxena@avagotech.com>
Date:   Mon Jan 5 20:06:13 2015 +0530

    megaraid_sas: disable interrupt_mask before enabling hardware interrupts
    
    commit c2ced1719a1b903350955a511e1666e6d05a7f5b upstream.
    
    Update driver "mask_interrupts" before enable/disable hardware interrupt
    in order to avoid missing interrupts because of "mask_interrupts" still
    set to 1 and hardware interrupts are enabled.
    
    Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
    Signed-off-by: Chaitra Basappa <chaitra.basappa@avagotech.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9d100ed9918346a16172dfb7940d739525d1c27
Author: Sumit.Saxena@avagotech.com <Sumit.Saxena@avagotech.com>
Date:   Mon Jan 5 20:06:08 2015 +0530

    megaraid_sas: fix the problem of non-existing VD exposed to host
    
    commit ab2f0608e16d64a23a2dcc8d83b966a0e0a281f3 upstream.
    
    This patch will address the issue of SCSI device created at OS level for
    non existing VD. ldTgtIdtoLd[] array has size 256 for Extended VD firmware
    and 128 for legacy firmware. Accessing indices beyond array size (OS will
    send TUR, INQUIRY.. commands upto device index 255), may return valid LD
    value and that particular SCSI command will be SUCCESS and creating SCSI
    device for non existing target(VD).
    
    For legacy firmware (64 VD firmware), invalidates LD (by setting LD value
    to 0xff) in LdTgtIdtoLd[] array for device index beyond 127, so that
    invalid LD(0xff) value should be returned beyond device index beyond 127.
    
    Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com>
    Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 628de19983617462b1714218a66ff94f10cd2cda
Author: Sumit.Saxena@avagotech.com <Sumit.Saxena@avagotech.com>
Date:   Mon Jan 5 20:05:58 2015 +0530

    megaraid_sas: endianness related bug fixes and code optimization
    
    commit 200aed582d6170a2687cd69095469b663f69f16f upstream.
    
    This patch addresses below issues:
    
    1) Few endianness bug fixes.
    2) Break the iteration after (MAX_LOGICAL_DRIVES_EXT - 1)),
       instead of MAX_LOGICAL_DRIVES_EXT.
    3) Optimization in MFI INIT frame before firing.
    4) MFI IO frame should be 256bytes aligned.  Code is optimized to reduce
       the size of frame for fusion adapters and make the MFI frame size
       calculation a bit transparent and readable.
    
    Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com>
    Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
    Signed-off-by: Chaitra Basappa <chaitra.basappa@avagotech.com>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98b6ccca6c51861a336f687f45634512ec597d90
Author: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Date:   Thu Jan 15 05:00:37 2015 +0300

    power: gpio-charger: balance enable/disable_irq_wake calls
    
    commit faeed51bb65ce0241052d8dc24ac331ade12e976 upstream.
    
    enable_irq_wakeup returns 0 in case it correctly enabled the IRQ to
    generate the wakeup event (and thus resume should call disable_irq_wake).
    Currently gpio-charger driver has this logic inverted. Correct that thus
    correcting enable/disable_irq_wake() calls balance.
    
    Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2529fba22f7de7ab10966aa71ad3fe8630ee93b5
Author: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Date:   Mon Jan 5 09:51:48 2015 +0100

    power: bq24190: Fix ignored supplicants
    
    commit 478913fdbdfd4a781d91c993eb86838620fe7421 upstream.
    
    The driver mismatched 'num_supplicants' with 'num_supplies' of
    power_supply structure.
    
    It provided list of supplicants (power_supply.supplied_to) but did
    not set the number of supplicants. Instead it set the num_supplies which
    is used when iterating over number of supplies (power_supply.supplied_from).
    
    As a result the list of supplicants was ignored by core because its size
    was 0.
    
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Fixes: d7bf353fd0aa ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e194fa73b28622a21268c24fcc8c9002a611318
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 23bd5cb4ea02ac1a402eddaa283f3d9001f040ca
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 84eb4963dd68681c61237d8eadee7eb92425e6b1
Author: Frank C Guenther <bugzilla.frnkcg@spamgourmet.com>
Date:   Tue Feb 17 22:13:32 2015 +0100

    ALSA: usb: Fix support for Denon DA-300USB DAC (ID 154e:1003)
    
    commit 3cd1ce0420ce89937bef9096d5bdb13fbdf0f8b0 upstream.
    
    Fix problem where playback of Denon DA-300USB DAC sometimes does not
    start and leads to error messages like "clock source 41 is not valid,
    cannot use".
    
    Solution: Treat this device the same as other Denon/Marantz devices in
    sound/usb/quirks.c.
    
    Tested with both PCM and DSD formats.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=93261
    Signed-off-by: Frank C Guenther <bugzilla.frnkcg@spamgourmet.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e47ee3b890468a6419c5e14d41147f80621f5cf
Author: Hui Wang <hui.wang@canonical.com>
Date:   Fri Feb 13 11:14:41 2015 +0800

    ALSA: hda - enable mute led quirk for one more hp machine.
    
    commit 7976eb49cbd138d8014fa02682d8f969ad1e9ff2 upstream.
    
    Otherwise, the mute led can't work at all.
    
    Tested-by: Taihsiang Ho <taihsiang.ho@canonical.com>
    BugLink: https://bugs.launchpad.net/bugs/1410704
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a11711eaefc12a47593d6accdab2efb83da068eb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Feb 5 12:23:33 2015 +0100

    ALSA: hda - Set up GPIO for Toshiba Satellite S50D
    
    commit 4227de2a7e5f0ff6a58e919a9c4f2bb06e882f48 upstream.
    
    Toshiba Satellite S50D laptop with an IDT codec uses the GPIO4 (0x10)
    as the master EAPD.
    
    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=915858
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58247aad2d2e36b82b75d9232bc7f89d103163c4
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 ac6d7fe51218383b1fc583a1c0408b0cf6054957
Author: Antti Palosaari <crope@iki.fi>
Date:   Tue Nov 25 16:26:49 2014 -0300

    si2168: define symbol rate limits
    
    commit f1ecc5d119530fce01094307e029ed7f2c9067d8 upstream.
    
    w_scan complains about missing symbol rate limits:
    This dvb driver is *buggy*: the symbol rate limits are undefined - please report to linuxtv.org
    
    Chip supports 1 to 7.2 MSymbol/s on DVB-C.
    
    Signed-off-by: Antti Palosaari <crope@iki.fi>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36038d393c077550f2655ce38f2b84a0cb989432
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 121e0c0fbfd74f9136dd7784bd8c2e1deedad107
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Fri Jan 2 10:56:27 2015 -0300

    lmedm04: Increase Interupt due time to 200 msec
    
    commit cfcd7b825892cb498c6bcb13257f2141f7eacb76 upstream.
    
    Ocassionally the device fails to report back an interrupt urb status which
    results in false no lock trigger on the RS2000 demodulator.
    
    Increase time from 60 msecs to 200 msecs.
    
    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 077a83ddbc8f191038187e46165d8382b33f49b6
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Wed Feb 18 13:50:17 2015 +0200

    ACPI / LPSS: Deassert resets for SPI host controllers on Braswell
    
    commit 3095794ae972bc6fc76af6cb3b864d6686b96094 upstream.
    
    On some Braswell systems BIOS leaves resets for SPI host controllers
    active. This prevents the SPI driver from transferring messages on wire.
    
    Fix this in similar way that we do for I2C already by deasserting resets
    for the SPI host controllers.
    
    Reported-by: Yang A Fang <yang.a.fang@intel.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 685e9ecfc4fc707d76a76d19602988815a2e9648
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Wed Feb 18 13:50:16 2015 +0200

    ACPI / LPSS: Always disable I2C host controllers
    
    commit 3293c7b8ec213a640f5ea2e5efeaa2b7559b1e19 upstream.
    
    On Baytrail and Braswell the BIOS might leave the I2C host controllers
    enabled, probably because it uses them for its own purposes. This is fine
    in normal cases because the I2C driver will disable the hardware when it
    is probed anyway.
    
    However, in case of suspend to disk it is different story. If the driver
    happens to be compiled as a module the boot kernel never loads the driver
    thus leaving host controllers enabled upon loading the hibernation image.
    
    The I2C host controller interrupt mask register has default value of 0x8ff,
    in other words it has most of the interrupts unmasked. When combined with
    the fact that the host controller is enabled, the driver immediately starts
    getting interrupts even before its resume hook is called (once IO-APIC is
    resumed). Since the driver is not prepared for this it will crash the
    kernel due to NULL pointer derefence because dev->msgs is NULL.
    
    Unfortunately we were not able to get full backtrace to from the console
    which could be reproduced here.
    
    In order to fix this even when the driver is compiled as module, we disable
    the I2C host controllers in byt_i2c_setup() before devices are created.
    
    Reported-by: Yu Chen <yu.c.chen@intel.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2cb1c1c696853478fe83782e2771f4f07ec75ea1
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Feb 17 08:02:47 2015 +0100

    xen-scsiback: mark pvscsi frontend request consumed only after last read
    
    commit facb5732b0bb59ebbc11b5d5abc249e677ddbeb6 upstream.
    
    A request in the ring buffer mustn't be read after it has been marked
    as consumed. Otherwise it might already have been reused by the
    frontend without violating the ring protocol.
    
    To avoid inconsistencies in the backend only work on a private copy
    of the request. This will ensure a malicious guest not being able to
    bypass consistency checks of the backend by modifying an active
    request.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee1693299c8b5cd9ad7f861606ea9bf20ef75717
Author: Ross Lagerwall <ross.lagerwall@citrix.com>
Date:   Mon Jan 19 13:19:38 2015 +0000

    xen/manage: Fix USB interaction issues when resuming
    
    commit 72978b2fe2f2cdf9f319c6c6dcdbe92b38de2be2 upstream.
    
    Commit 61a734d305e1 ("xen/manage: Always freeze/thaw processes when
    suspend/resuming") ensured that userspace processes were always frozen
    before suspending to reduce interaction issues when resuming devices.
    However, freeze_processes() does not freeze kernel threads.  Freeze
    kernel threads as well to prevent deadlocks with the khubd thread when
    resuming devices.
    
    This is what native suspend and resume does.
    
    Example deadlock:
    [ 7279.648010]  [<ffffffff81446bde>] ? xen_poll_irq_timeout+0x3e/0x50
    [ 7279.648010]  [<ffffffff81448d60>] xen_poll_irq+0x10/0x20
    [ 7279.648010]  [<ffffffff81011723>] xen_lock_spinning+0xb3/0x120
    [ 7279.648010]  [<ffffffff810115d1>] __raw_callee_save_xen_lock_spinning+0x11/0x20
    [ 7279.648010]  [<ffffffff815620b6>] ? usb_control_msg+0xe6/0x120
    [ 7279.648010]  [<ffffffff81747e50>] ? _raw_spin_lock_irq+0x50/0x60
    [ 7279.648010]  [<ffffffff8174522c>] wait_for_completion+0xac/0x160
    [ 7279.648010]  [<ffffffff8109c520>] ? try_to_wake_up+0x2c0/0x2c0
    [ 7279.648010]  [<ffffffff814b60f2>] dpm_wait+0x32/0x40
    [ 7279.648010]  [<ffffffff814b6eb0>] device_resume+0x90/0x210
    [ 7279.648010]  [<ffffffff814b7d71>] dpm_resume+0x121/0x250
    [ 7279.648010]  [<ffffffff8144c570>] ? xenbus_dev_request_and_reply+0xc0/0xc0
    [ 7279.648010]  [<ffffffff814b80d5>] dpm_resume_end+0x15/0x30
    [ 7279.648010]  [<ffffffff81449fba>] do_suspend+0x10a/0x200
    [ 7279.648010]  [<ffffffff8144a2f0>] ? xen_pre_suspend+0x20/0x20
    [ 7279.648010]  [<ffffffff8144a1d0>] shutdown_handler+0x120/0x150
    [ 7279.648010]  [<ffffffff8144c60f>] xenwatch_thread+0x9f/0x160
    [ 7279.648010]  [<ffffffff810ac510>] ? finish_wait+0x80/0x80
    [ 7279.648010]  [<ffffffff8108d189>] kthread+0xc9/0xe0
    [ 7279.648010]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80
    [ 7279.648010]  [<ffffffff8175087c>] ret_from_fork+0x7c/0xb0
    [ 7279.648010]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80
    
    [ 7441.216287] INFO: task khubd:89 blocked for more than 120 seconds.
    [ 7441.219457]       Tainted: G            X 3.13.11-ckt12.kz #1
    [ 7441.222176] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [ 7441.225827] khubd           D ffff88003f433440     0    89      2 0x00000000
    [ 7441.229258]  ffff88003ceb9b98 0000000000000046 ffff88003ce83000 0000000000013440
    [ 7441.232959]  ffff88003ceb9fd8 0000000000013440 ffff88003cd13000 ffff88003ce83000
    [ 7441.236658]  0000000000000286 ffff88003d3e0000 ffff88003ceb9bd0 00000001001aa01e
    [ 7441.240415] Call Trace:
    [ 7441.241614]  [<ffffffff817442f9>] schedule+0x29/0x70
    [ 7441.243930]  [<ffffffff81743406>] schedule_timeout+0x166/0x2c0
    [ 7441.246681]  [<ffffffff81075b80>] ? call_timer_fn+0x110/0x110
    [ 7441.249339]  [<ffffffff8174357e>] schedule_timeout_uninterruptible+0x1e/0x20
    [ 7441.252644]  [<ffffffff81077710>] msleep+0x20/0x30
    [ 7441.254812]  [<ffffffff81555f00>] hub_port_reset+0xf0/0x580
    [ 7441.257400]  [<ffffffff81558465>] hub_port_init+0x75/0xb40
    [ 7441.259981]  [<ffffffff814bb3c9>] ? update_autosuspend+0x39/0x60
    [ 7441.262817]  [<ffffffff814bb4f0>] ? pm_runtime_set_autosuspend_delay+0x50/0xa0
    [ 7441.266212]  [<ffffffff8155a64a>] hub_thread+0x71a/0x1750
    [ 7441.268728]  [<ffffffff810ac510>] ? finish_wait+0x80/0x80
    [ 7441.271272]  [<ffffffff81559f30>] ? usb_port_resume+0x670/0x670
    [ 7441.274067]  [<ffffffff8108d189>] kthread+0xc9/0xe0
    [ 7441.276305]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80
    [ 7441.279131]  [<ffffffff8175087c>] ret_from_fork+0x7c/0xb0
    [ 7441.281659]  [<ffffffff8108d0c0>] ? flush_kthread_worker+0x80/0x80
    
    Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b34efde33ef98c9f20e005c9288012d01f8cd3dc
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Feb 18 21:55:53 2015 +0100

    cpufreq: s3c: remove last use of resume_clocks callback
    
    commit 67fadaa2768716209ee19a8b8bf05bc3ac399445 upstream.
    
    Commit 32726d2d550 ("ARM: SAMSUNG: Remove legacy clock code")
    already removed the callback pointer, but there was one remaining
    user:
    
    drivers/cpufreq/s3c24xx-cpufreq.c: In function 's3c_cpufreq_resume_clocks':
    drivers/cpufreq/s3c24xx-cpufreq.c:149:14: error: 'struct s3c_cpufreq_info' has no member named 'resume_clocks'
      cpu_cur.info->resume_clocks();
                  ^
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: 32726d2d550 ("ARM: SAMSUNG: Remove legacy clock code")
    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 86e777205efbc6c2acfafa08dc92588d0a88328b
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Feb 18 21:55:03 2015 +0100

    cpufreq: s3c: remove incorrect __init annotations
    
    commit 61882b63171736571e1139ab5aa929e3bb336016 upstream.
    
    The two functions s3c2416_cpufreq_driver_init and s3c_cpufreq_register
    are marked init but are called from a context that might be run after
    the __init sections are discarded, as the compiler points out:
    
    WARNING: vmlinux.o(.data+0x1ad9dc): Section mismatch in reference from the variable s3c2416_cpufreq_driver to the function .init.text:s3c2416_cpufreq_driver_init()
    WARNING: drivers/built-in.o(.text+0x35b5dc): Section mismatch in reference from the function s3c2410a_cpufreq_add() to the function .init.text:s3c_cpufreq_register()
    
    This removes the __init markings.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    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 21ec654ecf736f21d3782773e0284ee837730fec
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 6174cdc7baca9aba7d22891391c9ab085c19ecc8
Author: Viresh Kumar <viresh.kumar@linaro.org>
Date:   Sat Jan 31 06:02:44 2015 +0530

    cpufreq: Set cpufreq_cpu_data to NULL before putting kobject
    
    commit 6ffae8c06fab058d6c3f8ecb7f921327721034e7 upstream.
    
    In __cpufreq_remove_dev_finish(), per-cpu 'cpufreq_cpu_data' needs
    to be cleared before calling kobject_put(&policy->kobj) and under
    cpufreq_driver_lock. Otherwise, if someone else calls cpufreq_cpu_get()
    in parallel with it, they can obtain a non-NULL policy from that after
    kobject_put(&policy->kobj) was executed.
    
    Consider this case:
    
    Thread A				Thread B
    cpufreq_cpu_get()
      acquire cpufreq_driver_lock
      read-per-cpu cpufreq_cpu_data
    					kobject_put(&policy->kobj);
      kobject_get(&policy->kobj);
    					...
    					per_cpu(&cpufreq_cpu_data, cpu) = NULL
    
    And this will result in a warning like this one:
    
     ------------[ cut here ]------------
     WARNING: CPU: 0 PID: 4 at include/linux/kref.h:47
     kobject_get+0x41/0x50()
     Modules linked in: acpi_cpufreq(+) nfsd auth_rpcgss nfs_acl
     lockd grace sunrpc xfs libcrc32c sd_mod ixgbe igb mdio ahci hwmon
     ...
     Call Trace:
      [<ffffffff81661b14>] dump_stack+0x46/0x58
      [<ffffffff81072b61>] warn_slowpath_common+0x81/0xa0
      [<ffffffff81072c7a>] warn_slowpath_null+0x1a/0x20
      [<ffffffff812e16d1>] kobject_get+0x41/0x50
      [<ffffffff815262a5>] cpufreq_cpu_get+0x75/0xc0
      [<ffffffff81527c3e>] cpufreq_update_policy+0x2e/0x1f0
      [<ffffffff810b8cb2>] ? up+0x32/0x50
      [<ffffffff81381aa9>] ? acpi_ns_get_node+0xcb/0xf2
      [<ffffffff81381efd>] ? acpi_evaluate_object+0x22c/0x252
      [<ffffffff813824f6>] ? acpi_get_handle+0x95/0xc0
      [<ffffffff81360967>] ? acpi_has_method+0x25/0x40
      [<ffffffff81391e08>] acpi_processor_ppc_has_changed+0x77/0x82
      [<ffffffff81089566>] ? move_linked_works+0x66/0x90
      [<ffffffff8138e8ed>] acpi_processor_notify+0x58/0xe7
      [<ffffffff8137410c>] acpi_ev_notify_dispatch+0x44/0x5c
      [<ffffffff8135f293>] acpi_os_execute_deferred+0x15/0x22
      [<ffffffff8108c910>] process_one_work+0x160/0x410
      [<ffffffff8108d05b>] worker_thread+0x11b/0x520
      [<ffffffff8108cf40>] ? rescuer_thread+0x380/0x380
      [<ffffffff81092421>] kthread+0xe1/0x100
      [<ffffffff81092340>] ? kthread_create_on_node+0x1b0/0x1b0
      [<ffffffff81669ebc>] ret_from_fork+0x7c/0xb0
      [<ffffffff81092340>] ? kthread_create_on_node+0x1b0/0x1b0
     ---[ end trace 89e66eb9795efdf7 ]---
    
    The actual code flow is as follows:
    
     Thread A: Workqueue: kacpi_notify
    
     acpi_processor_notify()
       acpi_processor_ppc_has_changed()
             cpufreq_update_policy()
               cpufreq_cpu_get()
                 kobject_get()
    
     Thread B: xenbus_thread()
    
     xenbus_thread()
       msg->u.watch.handle->callback()
         handle_vcpu_hotplug_event()
           vcpu_hotplug()
             cpu_down()
               __cpu_notify(CPU_POST_DEAD..)
                 cpufreq_cpu_callback()
                   __cpufreq_remove_dev_finish()
                     cpufreq_policy_put_kobj()
                       kobject_put()
    
    cpufreq_cpu_get() gets the policy from per-cpu variable cpufreq_cpu_data
    under cpufreq_driver_lock, and once it gets a valid policy it expects it
    to not be freed until cpufreq_cpu_put() is called.
    
    But the race happens when another thread puts the kobject first and updates
    cpufreq_cpu_data before or later. And so the first thread gets a valid policy
    structure and before it does kobject_get() on it, the second one has already
    done kobject_put().
    
    Fix this by setting cpufreq_cpu_data to NULL before putting the kobject and that
    too under locks.
    
    Reported-by: Ethan Zhao <ethan.zhao@oracle.com>
    Reported-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-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 43e591583b35a3bd5139124709eb72633ea41fe4
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Tue Jan 20 11:01:20 2015 -0600

    rtlwifi: Remove logging statement that is no longer needed
    
    commit aeb2d2a4c0ae1739a6e1782bd8c1c96aee8db4e1 upstream.
    
    In commit e9538cf4f907 ("rtlwifi: Fix error when accessing unmapped memory
    in skb"), a printk was included to indicate that the condition had been
    reached. There is now enough evidence from other users that the fix is
    working. That logging statement can now be removed.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ff4cadbeba30a716a7ea1415a86584b188fcd3e
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Tue Feb 3 11:15:18 2015 -0600

    rtlwifi: rtl8192ee: Fix problems with calculating free space in FIFO
    
    commit 6d4beca3775222884e1ee9d48ef586c438c3dfa1 upstream.
    
    This driver utilizes a FIFO buffer for RX descriptors. There are four places
    in the code where it calculates the number of free slots. Several of those
    locations do the calculation incorrectly. To fix these and to prevent future
    mistakes, a common inline routine is created.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c908ec52b0de8b4fdaf8ad05ac27da7cf579e586
Author: Troy Tan <troy_tan@realsil.com.cn>
Date:   Tue Jan 20 11:01:26 2015 -0600

    rtlwifi: rtl8192ee: Fix DMA stalls
    
    commit 21b39ddb5bb2294fe64fbd29045591fe0707825f upstream.
    
    There are instances where the DMA engine stalls. The new code detects
    such stalls and restarts DMA without needing a power reset.
    
    Signed-off-by: Troy Tan <troy_tan@realsil.com.cn>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d7520ce4275c3b1b0580222d623393acb2b55c9
Author: Troy Tan <troy_tan@realsil.com.cn>
Date:   Tue Jan 20 11:01:24 2015 -0600

    rtlwifi: rtl8192ee: Fix parsing of received packet
    
    commit 92ff754240b892cbc16dee5aa080322f3db88b68 upstream.
    
    The firmware supplies two kinds of packets via the RX mechanism. Besides the
    normal data received over the air, these packets may contain bluetooth status
    and other information. The present code fails to detect which kind of
    information was received.
    
    Signed-off-by: Troy Tan <troy_tan@realsil.com.cn>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 379a4a03856d68ef29f259b82f7dde98fda68006
Author: Troy Tan <troy_tan@realsil.com.cn>
Date:   Tue Jan 20 11:01:23 2015 -0600

    rtlwifi: rtl8192ee: Fix TX hang due to failure to update TX write point
    
    commit 6e5f4436162848289f071be38ee6b87dc8ea653d upstream.
    
    Initially, the routine to update the write point in the FIFO buffer was
    coded to save CPU time by not doing the calculation every interrupt. This
    was an error and results in TX hangs.
    
    Signed-off-by: Troy Tan <troy_tan@realsil.com.cn>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af26d5bc5d6c017a8173933d5f1caf3e5ccb79eb
Author: Troy Tan <troy_tan@realsil.com.cn>
Date:   Tue Jan 20 11:01:22 2015 -0600

    rtlwifi: rtl8192ee: Fix adhoc fail
    
    commit b661a5da57766f4f565d64238b753d6efc0f5499 upstream.
    
    When the buffer descriptor index exceeds 2, then a TX HANG condition
    will result.
    
    Signed-off-by: Troy Tan <troy_tan@realsil.com.cn>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 38e17b6477cf737704716ee567406a6e90be17aa
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Jan 28 22:30:01 2015 +0100

    ASoC: davinci: fix DM365_EVM codec selection
    
    commit f9a7ba326938f03b9305af8d31c360fce10cd4df upstream.
    
    An earlier bug fix of mine made the SND_DM365_VOICE_CODEC symbol
    tristate to avoid creating an undefined reference from the
    davinci-vcif.c driver to the davinci_soc_platform_register
    function that may be in a module.
    
    However, this may now lead to a different error on randconfig
    kernels:
    
    "warning: SND_DM365_VOICE_CODEC creates inconsistent choice state"
    
    This happens because we now have a choice statement with
    one bool and one tristate option, and the latter might not
    support being set to 'y' because of dependencies.
    
    This new change turns the other option into 'tristate' as well,
    which avoids the problem.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: 19926c6de0c3 ("ASoC: davinci: vcif must be a module if SND_DAVINCI_SOC is")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6393f60525cc47c7456b78ea5e2bc03e7d6c69f9
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Thu Jan 15 12:52:01 2015 +0100

    ASoC: mioa701_wm9713: Fix speaker event
    
    commit 7331ea474e9e7a348541c207bdb6aa518c6403f4 upstream.
    
    Commit f6b2a04590bb ("ASoC: pxa: mioa701_wm9713: Convert to table based DAPM
    setup") converted the driver to register the board level DAPM elements with
    the card's DAPM context rather than the CODEC's DAPM context. The change
    overlooked that the speaker widget event callback accesses the widget's
    codec field which is only valid if the widget has been registered in a CODEC
    DAPM context. This patch modifies the callback to take an alternative route
    to get the CODEC.
    
    Fixes: f6b2a04590bb ("ASoC: pxa: mioa701_wm9713: Convert to table based DAPM
    setup")
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ce87d6e511c11b4cf86d5b8fce4790e046ecee1
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Jan 28 22:31:30 2015 +0100

    ASoC: rt5677: fix SPI dependency
    
    commit 4c121129c9dcb43b33d1cd568c8f2636e72597b0 upstream.
    
    The rt5677 codec has gained code that requires SPI to work correctly,
    but there is no provision in Kconfig to prevent the driver from
    being used when SPI is disabled or a loadable module, resulting
    in this build error:
    
    sound/built-in.o: In function `rt5677_spi_write':
    :(.text+0xa7ba0): undefined reference to `spi_sync'
    sound/built-in.o: In function `rt5677_spi_driver_init':
    :(.init.text+0x253c): undefined reference to `spi_register_driver'
    
    ERROR: "spi_sync" [sound/soc/codecs/snd-soc-rt5677-spi.ko] undefined!
    ERROR: "spi_register_driver" [sound/soc/codecs/snd-soc-rt5677-spi.ko] undefined!
    
    This makes the SPI portion of the driver depend on the SPI subsystem,
    and disables the function that uses SPI for firmware download if SPI
    is disabled. The latter may not be the correct solution, but I could
    not come up with a better one.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: af48f1d08a54741 ("ASoC: rt5677: Support DSP function for VAD application")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0a435dd7766ffc6ef3a01b8ff1d649422cbd33b
Author: Christian Engelmayer <cengelma@gmx.at>
Date:   Sat Feb 7 23:40:52 2015 +0100

    ASoC: Intel: sst: Fix firmware name size handling
    
    commit 279e17ae81c17b40ae7a6c9e10f386a7aac7aa55 upstream.
    
    Function sst_acpi_probe() uses plain strcpy for setting member firmware_name
    of a struct intel_sst_drv from member firmware of a struct sst_machines.
    Thereby the destination array has got a length of 20 byte while the source may
    hold 32 byte. Since eg. commit 64b9c90b8600 ("ASoC: Intel: Fix BYTCR firmware
    name") increased strings from "fw_sst_0f28.bin" to "intel/fw_sst_0f28.bin"
    there is an actual possibility that the 20 byte array at the end of struct
    intel_sst_drv is overrun.
    
    Thus increase the size of the destination and use the same define for both
    structs. Detected by Coverity CID 1260087.
    
    Signed-off-by: Christian Engelmayer <cengelma@gmx.at>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 817e5fa0f64d6a087d9113e1f73b97f20cf99063
Author: Bard Liao <bardliao@realtek.com>
Date:   Mon Feb 9 14:41:50 2015 +0800

    ASoC: rt5670: Set use_single_rw flag for regmap
    
    commit 92b133f251b5f914f3ed28bc83e5b7a40d4e22ed upstream.
    
    RT5670 doesn't support auto incrementing writes so driver should
    set the use_single_rw flag for regmap.
    
    Signed-off-by: Bard Liao <bardliao@realtek.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f3c31127beba573b83475638ba5bd3ea4fba1e4
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 f7d75a1a358adccd0660824a5ed798386da82da4
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 9933a927ded632fde949e0ef6f7a201534d2add8
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 65ac01f44992113017522f1c38f421fc87e65f7c
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 556f81de3e223c85265a6bd46f1253fb9a59d2ef
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 f8edfda1e949eabd62c08f9dea9a2d70551484f4
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 a91bf0c6f872d5215546c0215ed43acc5f77ff92
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 9d30ada41082fed20bddec4b623127cbbca06704
Author: Calvin Owens <calvinowens@fb.com>
Date:   Tue Jan 13 13:16:18 2015 -0800

    ksoftirqd: Enable IRQs and call cond_resched() before poking RCU
    
    commit 28423ad283d5348793b0c45cc9b1af058e776fd6 upstream.
    
    While debugging an issue with excessive softirq usage, I encountered the
    following note in commit 3e339b5dae24a706 ("softirq: Use hotplug thread
    infrastructure"):
    
        [ paulmck: Call rcu_note_context_switch() with interrupts enabled. ]
    
    ...but despite this note, the patch still calls RCU with IRQs disabled.
    
    This seemingly innocuous change caused a significant regression in softirq
    CPU usage on the sending side of a large TCP transfer (~1 GB/s): when
    introducing 0.01% packet loss, the softirq usage would jump to around 25%,
    spiking as high as 50%. Before the change, the usage would never exceed 5%.
    
    Moving the call to rcu_note_context_switch() after the cond_sched() call,
    as it was originally before the hotplug patch, completely eliminated this
    problem.
    
    Signed-off-by: Calvin Owens <calvinowens@fb.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 694550cef4eb8021c4e5319c968db3b512626557
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 b1d3ed10df50c11dcc6d9718efb42952d9efa2de
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Feb 10 09:23:40 2015 +1100

    xfs: only trace buffer items if they exist
    
    commit e9892d3cc853afdda2cc69e2576d9ddb5fafad71 upstream.
    
    The commit 2d3d0c5 ("xfs: lobotomise xfs_trans_read_buf_map()") left
    a landmine in the tracing code: trace_xfs_trans_buf_read() is now
    call on all buffers that are read through this interface rather than
    just buffers in transactions. For buffers outside transaction
    context, bp->b_fspriv is null, and so the buf log item tracing
    functions cannot be called. This causes a NULL pointer dereference
    in the trace_xfs_trans_buf_read() function when tracing is turned
    on.
    
    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 853e146c6ceb22840d4ed7679a5bff6b5c4f8308
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 cf631816ecc657cf7b616fd0b6ce56fbab91f086
Author: Dave Chinner <dchinner@redhat.com>
Date:   Thu Jan 22 09:30:06 2015 +1100

    xfs: set buf types when converting extent formats
    
    commit fe22d552b82d7cc7de1851233ae8bef579198637 upstream.
    
    Conversion from local to extent format does not set the buffer type
    correctly on the new extent buffer when a symlink data is moved out
    of line.
    
    Fix the symlink code and leave a comment in the generic bmap code
    reminding us that the format-specific data copy needs to set the
    destination buffer type appropriately.
    
    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 082995eefbc77bad609f2b8bd704ee2c7a0cc4b8
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 aa7583d3c12bfc896f36ec06759aa42c29f14f85
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 8a3f71b3e173ef8be1200d29b8691b2d8ddd5681
Author: George Spelvin <linux@horizon.com>
Date:   Sat Feb 7 00:32:06 2015 -0500

    random: Fix fast_mix() function
    
    commit 19acc77a36970958a4a0e4daeb2c8cb2aab0ffd4 upstream.
    
    There was a bad typo in commit 43759d4f429c ("random: use an improved
    fast_mix() function") and I didn't notice because it "looked right", so
    I saw what I expected to see when I reviewed it.
    
    Only months later did I look and notice it's not the Threefish-inspired
    mix function that I had designed and optimized.
    
    Mea Culpa.  Each input bit still has a chance to affect each output bit,
    and the fast pool is spilled *long* before it fills, so it's not a total
    disaster, but it's definitely not the intended great improvement.
    
    I'm still working on finding better rotation constants.  These are good
    enough, but since it's unrolled twice, it's possible to get better
    mixing for free by using eight different constants rather than repeating
    the same four.
    
    Signed-off-by: George Spelvin <linux@horizon.com>
    Cc: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b302d582cff6f508a688556ccffa8ff0fcf4c1f6
Author: Matej Dubovy <matej.dubovy@gmail.com>
Date:   Mon Feb 2 18:50:14 2015 +0100

    Bluetooth: btusb: Add support for Lite-On (04ca) Broadcom based, BCM43142
    
    commit 8f0c304c693c5a9759ed6ae50d07d4590dad5ae7 upstream.
    
    Please add support for sub BT chip on the combo card
    Broadcom 43142A0 (in Lenovo E145), 04ca:2007
    
    /sys/kernel/debug/usb/devices
    
    T:  Bus=05 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=12   MxCh= 0
    D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=04ca ProdID=2007 Rev= 1.12
    S:  Manufacturer=Broadcom Corp
    S:  Product=BCM43142A0
    S:  SerialNumber=28E347EC73BD
    C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
    
    Firmware for 04ca:2007 can be extracted from the latest Lenovo E145
    Bluetooth driver for Windows (driver is however described as BCM20702
    but contains also firwmare for BCM43142).
    Search for BCM43142A0_001.001.011.0122.0153.hex within hex files, then
    it must be converted using hex2hcd utility. Rename file to
    BCM43142A0-04ca-2007.hcd, then move to /lib/firmware/brcm/.
    
    Signed-off-by: Matej Dubovy <matej.dubovy@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b71674f85b03d01effa3f39a401f0b57d0bac7f
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Mon Jan 26 20:35:32 2015 -0800

    Bluetooth: btusb: Add support for Dynex/Insignia USB dongles
    
    commit d049f4e513e861167361b06c7ca85f9e872c8cde upstream.
    
    The Dynex/Insignia USB dongles are Broadcom BCM20702B0 based and require
    firmware update before operation.
    
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=19ff ProdID=0239 Rev= 1.12
    S:  Manufacturer=Broadcom Corp
    S:  Product=BCM20702A0
    C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
    
    Since this is an unsual USB vendor ID (0x19ff), these dongles are added
    via USB_DEVICE macro and not USB_VENDOR_AND_INTERFACE_INFO as done for
    mainstream Broadcom based dongles.
    
    The latest known working firmware is BCM20702B0_002.001.014.0527.0557.hex
    which needs to be converted using hex2hcd utility and then installed
    as /lib/firmware/brcm/BCM20702A0-19ff-0239.hcd to make this device fully
    operational.
    
    Bluetooth: hci0: BCM: patching hci_ver=06 hci_rev=2000 lmp_ver=06 lmp_subver=410e
    Bluetooth: hci0: BCM: firmware hci_ver=06 hci_rev=222d lmp_ver=06 lmp_subver=410e
    
    With this firmware the device reports support for connectionless slave
    broadcast (master and slave) feature used by 3D Glasses and TVs.
    
      < HCI Command: Read Local Extended Features (0x04|0x0004) plen 1
              Page: 2
      > HCI Event: Command Complete (0x0e) plen 14
            Read Local Extended Features (0x04|0x0004) ncmd 1
              Status: Success (0x00)
              Page: 2/2
              Features: 0x0f 0x00 0x00 0x00 0x00 0x00 0x00 0x00
                Connectionless Slave Broadcast - Master
                Connectionless Slave Broadcast - Slave
                Synchronization Train
                Synchronization Scan
    
    However there are some flaws with this feature. The Set Event Mask Page 2
    command is actually not supported and with that all connectionless slave
    broadcast events are always enabled.
    
      < HCI Command: Set Event Mask Page 2 (0x03|0x0063) plen 8
              Mask: 0x00000000000f0000
                Synchronization Train Received
                Connectionless Slave Broadcast Receive
                Connectionless Slave Broadcast Timeout
                Truncated Page Complete
      > HCI Event: Command Complete (0x0e) plen 4
            Set Event Mask Page 2 (0x03|0x0063) ncmd 1
              Status: Unknown HCI Command (0x01)
    
    In addition the Synchronization Train Received event is actually broken
    on this controller. It mixes up the order of parameters. According to the
    Bluetooth Core specification the fields are like this:
    
      struct hci_ev_sync_train_received {
              __u8     status;
              bdaddr_t bdaddr;
              __le32   offset;
              __u8     map[10];
              __u8     lt_addr;
              __le32   instant;
              __le16   interval;
              __u8     service_data;
      } __packed;
    
    This controller however sends the service_data as 5th parameter instead
    of having it as last parameter.
    
      struct hci_ev_sync_train_received {
              __u8     status;
              bdaddr_t bdaddr;
              __le32   offset;
              __u8     map[10];
              __u8     service_data;
              __u8     lt_addr;
              __le32   instant;
              __le16   interval;
      } __packed;
    
    So anybody trying to use this hardware for utilizing connectionless slave
    broadcast receivers (aka 3D Glasses), be warned about this shortcoming.
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98f6b0026b59a590d2a79bec221a05b9016e1985
Author: Szymon Janc <szymon.janc@tieto.com>
Date:   Thu Jan 22 16:57:05 2015 +0100

    Bluetooth: Fix reporting invalid RSSI for LE devices
    
    commit 91200e9f3e76af2652952e73ce5d9913f1c987c6 upstream.
    
    Start Discovery was reporting 0 RSSI for invalid RSSI only for
    BR/EDR devices. LE devices were reported with RSSI 127.
    
    Signed-off-by: Szymon Janc <szymon.janc@tieto.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5e12120205cf11c4f1cba646dd7eeb0bbc2ff35
Author: Rick Dunn <rick@rickdunn.com>
Date:   Sat Jan 17 05:29:12 2015 +0100

    Bluetooth: btusb: Add Broadcom patchram support for ASUSTek devices
    
    commit 9a5abdaaf9d2e80e157c7a756f9d9fd933dee48e upstream.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=06 Cnt=02 Dev#=  3 Spd=12   MxCh= 0
    D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0b05 ProdID=17cf Rev= 1.12
    S:  Manufacturer=Broadcom Corp
    S:  Product=BCM20702A0
    S:  SerialNumber=54271E3298CD
    C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
    
    Firmware is extracted from the latest Broadcom BCM4352 Windows driver
    by extracting the zip and searching the .hex file names for '17cf'.
    
    The hex file must then be converted to hcd format using the hex2hcd
    utility and then moved to /lib/firmware/brcm/.
    
    Signed-off-by: Rick Dunn <rick@rickdunn.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5714d70283424ae8aef50fd381c6d1d630ad2fee
Author: Johan Hedberg <johan.hedberg@intel.com>
Date:   Wed Jan 14 20:51:37 2015 +0200

    Bluetooth: Fix valid Identity Address check
    
    commit e12af489b91d47a806f4e96e4edc20df612482e7 upstream.
    
    According to the Bluetooth core specification valid identity addresses
    are either Public Device Addresses or Static Random Addresses. IRKs
    received with any other type of address should be discarded since we
    cannot assume to know the permanent identity of the peer device.
    
    This patch fixes a missing check for the Identity Address when receiving
    the Identity Address Information SMP PDU.
    
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89c3b66186131dd3da5a9d386301a6a062348b92
Author: Dmitry Tunin <hanipouspilot@gmail.com>
Date:   Sun Jan 18 00:16:51 2015 +0300

    Bluetooth: ath3k: Add support of AR3012 bluetooth 13d3:3423 device
    
    commit 033efa920a7f22a8caf7a38d851a2f451781bbf7 upstream.
    
    Add support of 13d3:3423 device.
    
    BugLink: https://bugs.launchpad.net/bugs/1411193
    
    T: Bus=01 Lev=02 Prnt=03 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
    D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=13d3 ProdID=3423 Rev= 0.01
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    A: FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=01
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
    E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
    I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
    I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
    I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
    I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
    I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
    
    Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0434848e444b31ea862743b720585c127b8114c2
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>

commit 9786567e45eee30e68af97926de96905e765e48d
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Thu Feb 12 23:07:37 2015 -0500

    ext4: ignore journal checksum on remount; don't fail
    
    commit 2d5b86e048780c5efa7f7d9708815555919e7b05 upstream.
    
    As of v3.18, ext4 started rejecting a remount which changes the
    journal_checksum option.
    
    Prior to that, it was simply ignored; the problem here is that
    if someone has this in their fstab for the root fs, now the box
    fails to boot properly, because remount of root with the new options
    will fail, and the box proceeds with a readonly root.
    
    I think it is a little nicer behavior to accept the option, but
    warn that it's being ignored, rather than failing the mount,
    but that might be a subjective matter...
    
    Reported-by: Cónräd <conradsand.arma@gmail.com>
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: Josh Boyer <jwboyer@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>