commit 3e3d5f6146c3f684f4b7bd71feffc31e1c668754
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Jun 30 20:05:38 2014 -0700

    Linux 3.4.96

commit d3007333170435135f0620fb52386aad3fb2a14f
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Mon Jun 23 14:22:15 2014 -0700

    x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
    
    commit 554086d85e71f30abe46fc014fea31929a7c6a8a upstream.
    
    The bad syscall nr paths are their own incomprehensible route
    through the entry control flow.  Rearrange them to work just like
    syscalls that return -ENOSYS.
    
    This fixes an OOPS in the audit code when fast-path auditing is
    enabled and sysenter gets a bad syscall nr (CVE-2014-4508).
    
    This has probably been broken since Linux 2.6.27:
    af0575bba0 i386 syscall audit fast-path
    
    Cc: Roland McGrath <roland@redhat.com>
    Reported-by: Toralf Förster <toralf.foerster@gmx.de>
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Link: http://lkml.kernel.org/r/e09c499eade6fc321266dd6b54da7beb28d6991c.1403558229.git.luto@amacapital.net
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b0d0894ebaede13481207275e075f2975fb30a3
Author: Roger Quadros <rogerq@ti.com>
Date:   Wed Dec 18 15:40:10 2013 +0530

    usb: usbtest: Add timetout to simple_io()
    
    commit e5e4746510d140261918aecce2e5e3aa4456f7e9 upstream.
    
    Without a timetout some tests e.g. test_halt() can remain stuck forever.
    
    Signed-off-by: Roger Quadros <rogerq@ti.com>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e18bac2cae5d6efa474611a2dc825b7749760af4
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Thu Jun 12 00:39:58 2014 -0500

    btrfs: fix use of uninit "ret" in end_extent_writepage()
    
    commit 3e2426bd0eb980648449e7a2f5a23e3cd3c7725c upstream.
    
    If this condition in end_extent_writepage() is false:
    
    	if (tree->ops && tree->ops->writepage_end_io_hook)
    
    we will then test an uninitialized "ret" at:
    
    	ret = ret < 0 ? ret : -EIO;
    
    The test for ret is for the case where ->writepage_end_io_hook
    failed, and we'd choose that ret as the error; but if
    there is no ->writepage_end_io_hook, nothing sets ret.
    
    Initializing ret to 0 should be sufficient; if
    writepage_end_io_hook wasn't set, (!uptodate) means
    non-zero err was passed in, so we choose -EIO in that case.
    
    Signed-of-by: Eric Sandeen <sandeen@redhat.com>
    
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64b84ef0258d03d80d2581b7f44b7630e945e612
Author: Liu Bo <bo.li.liu@oracle.com>
Date:   Sun Jun 8 19:04:13 2014 +0800

    Btrfs: use right type to get real comparison
    
    commit cd857dd6bc2ae9ecea14e75a34e8a8fdc158e307 upstream.
    
    We want to make sure the point is still within the extent item, not to verify
    the memory it's pointing to.
    
    Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f1dd63b01d0ab74032c77cad7a664da8a59dc2c
Author: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Date:   Thu May 22 22:43:43 2014 +0200

    fs: btrfs: volumes.c: Fix for possible null pointer dereference
    
    commit 8321cf2596d283821acc466377c2b85bcd3422b7 upstream.
    
    There is otherwise a risk of a possible null pointer dereference.
    
    Was largely found by using a static code analysis program called cppcheck.
    
    Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a25ebe211246ea835f165c371d744f2d65260d64
Author: Chris Mason <clm@fb.com>
Date:   Wed May 21 05:49:54 2014 -0700

    Btrfs: fix double free in find_lock_delalloc_range
    
    commit 7d78874273463a784759916fc3e0b4e2eb141c70 upstream.
    
    We need to NULL the cached_state after freeing it, otherwise
    we might free it again if find_delalloc_range doesn't find anything.
    
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2edae61bce495df81c58eb0b93faac301de849c7
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Mon Mar 10 19:28:08 2014 +0200

    skbuff: skb_segment: orphan frags before copying
    
    commit 1fd819ecb90cc9b822cd84d3056ddba315d3340f upstream.
    
    skb_segment copies frags around, so we need
    to copy them carefully to avoid accessing
    user memory after reporting completion to userspace
    through a callback.
    
    skb_segment doesn't normally happen on datapath:
    TSO needs to be disabled - so disabling zero copy
    in this case does not look like a big deal.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [bwh: Backported to 3.2.  As skb_segment() only supports page-frags *or* a
     frag list, there is no need for the additional frag_skb pointer or the
     preparatory renaming.]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f3ca8e5606f49ff02a0133fdbe2e6b852cb1e64
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Fri Jul 20 09:23:20 2012 +0000

    skbuff: export skb_copy_ubufs
    
    commit dcc0fb782b3a6e2abfeaaeb45dd88ed09596be0f upstream.
    
    Export skb_copy_ubufs so that modules can orphan frags.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f29351617ffe827edf80ffdfdef2da3a2494f96
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Fri Jul 20 09:23:07 2012 +0000

    skbuff: add an api to orphan frags
    
    commit a353e0ce0fd42d8859260666d1e9b10f2abd4698 upstream.
    
    Many places do
           if ((skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY))
    		skb_copy_ubufs(skb, gfp_mask);
    to copy and invoke frag destructors if necessary.
    Add an inline helper for this.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a97df3f22b83742deb9191d53928641ec3befb6e
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Mar 7 14:53:45 2013 +0100

    genirq: Sanitize spurious interrupt detection of threaded irqs
    
    commit 1e77d0a1ed7417d2a5a52a7b8d32aea1833faa6c upstream.
    
    Till reported that the spurious interrupt detection of threaded
    interrupts is broken in two ways:
    
    - note_interrupt() is called for each action thread of a shared
      interrupt line. That's wrong as we are only interested whether none
      of the device drivers felt responsible for the interrupt, but by
      calling multiple times for a single interrupt line we account
      IRQ_NONE even if one of the drivers felt responsible.
    
    - note_interrupt() when called from the thread handler is not
      serialized. That leaves the members of irq_desc which are used for
      the spurious detection unprotected.
    
    To solve this we need to defer the spurious detection of a threaded
    interrupt to the next hardware interrupt context where we have
    implicit serialization.
    
    If note_interrupt is called with action_ret == IRQ_WAKE_THREAD, we
    check whether the previous interrupt requested a deferred check. If
    not, we request a deferred check for the next hardware interrupt and
    return.
    
    If set, we check whether one of the interrupt threads signaled
    success. Depending on this information we feed the result into the
    spurious detector.
    
    If one primary handler of a shared interrupt returns IRQ_HANDLED we
    disable the deferred check of irq threads on the same line, as we have
    found at least one device driver who cared.
    
    Reported-by: Till Straumann <strauman@slac.stanford.edu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Austin Schuh <austin@peloton-tech.com>
    Cc: Oliver Hartkopp <socketcan@hartkopp.net>
    Cc: Wolfgang Grandegger <wg@grandegger.com>
    Cc: Pavel Pisa <pisa@cmp.felk.cvut.cz>
    Cc: Marc Kleine-Budde <mkl@pengutronix.de>
    Cc: linux-can@vger.kernel.org
    Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1303071450130.22263@ionos
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d48df4863c4a4d40809575efa1f101b1e8090b5
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Sun May 4 20:43:15 2014 -0400

    x86, x32: Use compat shims for io_{setup,submit}
    
    commit 7fd44dacdd803c0bbf38bf478d51d280902bb0f1 upstream.
    
    The io_setup takes a pointer to a context id of type aio_context_t.
    This in turn is typed to a __kernel_ulong_t.  We could tweak the
    exported headers to define this as a 64bit quantity for specific
    ABIs, but since we already have a 32bit compat shim for the x86 ABI,
    let's just re-use that logic.  The libaio package is also written to
    expect this as a pointer type, so a compat shim would simplify that.
    
    The io_submit func operates on an array of pointers to iocb structs.
    Padding out the array to be 64bit aligned is a huge pain, so convert
    it over to the existing compat shim too.
    
    We don't convert io_getevents to the compat func as its only purpose
    is to handle the timespec struct, and the x32 ABI uses 64bit times.
    
    With this change, the libaio package can now pass its testsuite when
    built for the x32 ABI.
    
    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
    Link: http://lkml.kernel.org/r/1399250595-5005-1-git-send-email-vapier@gentoo.org
    Cc: H.J. Lu <hjl.tools@gmail.com>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit e802a11d29bed1e9ea4dad092d745baae3290947
Author: Nicholas A. Bellinger <nab@linux-iscsi.org>
Date:   Mon Jun 16 20:59:52 2014 +0000

    target: Explicitly clear ramdisk_mcp backend pages
    
    [Note that a different patch to address the same issue went in during
    v3.15-rc1 (commit 4442dc8a), but includes a bunch of other changes that
    don't strictly apply to fixing the bug]
    
    This patch changes rd_allocate_sgl_table() to explicitly clear
    ramdisk_mcp backend memory pages by passing __GFP_ZERO into
    alloc_pages().
    
    This addresses a potential security issue where reading from a
    ramdisk_mcp could return sensitive information, and follows what
    >= v3.15 does to explicitly clear ramdisk_mcp memory at backend
    device initialization time.
    
    Reported-by: Jorge Daniel Sequeira Matias <jdsm@tecnico.ulisboa.pt>
    Cc: Jorge Daniel Sequeira Matias <jdsm@tecnico.ulisboa.pt>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2ff2f48d169e743dd074ca53a6fb1c295771254
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sat May 3 11:03:28 2014 +0100

    ARM: stacktrace: avoid listing stacktrace functions in stacktrace
    
    commit 3683f44c42e991d313dc301504ee0fca1aeb8580 upstream.
    
    While debugging the FEC ethernet driver using stacktrace, it was noticed
    that the stacktraces always begin as follows:
    
     [<c00117b4>] save_stack_trace_tsk+0x0/0x98
     [<c0011870>] save_stack_trace+0x24/0x28
     ...
    
    This is because the stack trace code includes the stack frames for itself.
    This is incorrect behaviour, and also leads to "skip" doing the wrong
    thing (which is the number of stack frames to avoid recording.)
    
    Perversely, it does the right thing when passed a non-current thread.  Fix
    this by ensuring that we have a known constant number of frames above the
    main stack trace function, and always skip these.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0992ba402355b4aca62a74c915f5d787210ef1b5
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Mon May 12 15:50:16 2014 +0800

    ACPI: Fix conflict between customized DSDT and DSDT local copy
    
    commit 73577d1df8e1f31f6b1a5eebcdbc334eb0330e47 upstream.
    
    This patch fixes the following issue:
    If DSDT is customized, no local DSDT copy is needed.
    
    References: https://bugzilla.kernel.org/show_bug.cgi?id=69711
    Signed-off-by: Enrico Etxe Arte <goitizena.generoa@gmail.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    [rjw: Subject]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d228aeaff57cb42b134b499fd1cd6111724b9340
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:22:54 2014 +0200

    USB: sierra: fix remote wakeup
    
    commit 80cc0fcbdaeaf10d04ba27779a2d7ceb73d2717a upstream.
    
    Make sure that needs_remote_wake up is always set when there are open
    ports.
    
    Currently close() would unconditionally set needs_remote_wakeup to 0
    even though there might still be open ports. This could lead to blocked
    input and possibly dropped data on devices that do not support remote
    wakeup (and which must therefore not be runtime suspended while open).
    
    Add an open_ports counter (protected by the susp_lock) and only clear
    needs_remote_wakeup when the last port is closed.
    
    Fixes: e6929a9020ac ("USB: support for autosuspend in sierra while
    online")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit edc71a5ebfed93d04c5648a6e9f94a5358d46aa0
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:22:53 2014 +0200

    USB: sierra: fix urb and memory leak on disconnect
    
    commit 014333f77c0b71123d6ef7d31a9724e0699c9548 upstream.
    
    The delayed-write queue was never emptied on disconnect, something which
    would lead to leaked urbs and transfer buffers if the device is
    disconnected before being runtime resumed due to a write.
    
    Fixes: e6929a9020ac ("USB: support for autosuspend in sierra while
    online")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe8dec3ea2a9e1105ca5ae46f2baa1c9935923b3
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:22:52 2014 +0200

    USB: sierra: fix urb and memory leak in resume error path
    
    commit 7fdd26a01eb7b6cb6855ff8f69ef4a720720dfcb upstream.
    
    Neither the transfer buffer or the urb itself were released in the
    resume error path for delayed writes. Also on errors, the remainder of
    the queue was not even processed, which leads to further urb and buffer
    leaks.
    
    The same error path also failed to balance the outstanding-urb counter,
    something which results in degraded throughput or completely blocked
    writes.
    
    Fix this by releasing urb and buffer and balancing counters on errors,
    and by always processing the whole queue even when submission of one urb
    fails.
    
    Fixes: e6929a9020ac ("USB: support for autosuspend in sierra while
    online")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05bec811d722b1e98885875a59c2dbc42cec4145
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:22:51 2014 +0200

    USB: sierra: fix use after free at suspend/resume
    
    commit 8452727de70f6ad850cd6d0aaa18b5d9050aa63b upstream.
    
    Fix use after free or NULL-pointer dereference during suspend and
    resume.
    
    The port data may never have been allocated (port probe failed)
    or may already have been released by port_remove (e.g. driver is
    unloaded) when suspend and resume are called.
    
    Fixes: e6929a9020ac ("USB: support for autosuspend in sierra while
    online")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3c3d7a87ae8efae4491d15e9de2735f803b9c30a
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:22:50 2014 +0200

    USB: sierra: fix AA deadlock in open error path
    
    commit 353fe198602e8b4d1c7bdcceb8e60955087201b1 upstream.
    
    Fix AA deadlock in open error path that would call close() and try to
    grab the already held disc_mutex.
    
    Fixes: b9a44bc19f48 ("sierra: driver urb handling improvements")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e91351f9626fe1822c5d6e8c10cece4d5e92d1d
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:23:18 2014 +0200

    USB: usb_wwan: fix potential blocked I/O after resume
    
    commit fb7ad4f93d9f0f7d49beda32f5e7becb94b29a4d upstream.
    
    Keep trying to submit urbs rather than bail out on first read-urb
    submission error, which would also prevent I/O for any further ports
    from being resumed.
    
    Instead keep an error count, for all types of failed submissions, and
    let USB core know that something went wrong.
    
    Also make sure to always clear the suspended flag. Currently a failed
    read-urb submission would prevent cached writes as well as any
    subsequent writes from being submitted until next suspend-resume cycle,
    something which may not even necessarily happen.
    
    Note that USB core currently only logs an error if an interface resume
    failed.
    
    Fixes: 383cedc3bb43 ("USB: serial: full autosuspend support for the
    option driver")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0886f4e9008835a02210f30a0850ddb7297a9ece
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:23:17 2014 +0200

    USB: usb_wwan: fix potential NULL-deref at resume
    
    commit 9096f1fbba916c2e052651e9de82fcfb98d4bea7 upstream.
    
    The interrupt urb was submitted unconditionally at resume, something
    which could lead to a NULL-pointer dereference in the urb completion
    handler as resume may be called after the port and port data is gone.
    
    Fix this by making sure the interrupt urb is only submitted and active
    when the port is open.
    
    Fixes: 383cedc3bb43 ("USB: serial: full autosuspend support for the
    option driver")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca91395e1b1aa0802307dbf493347d4dea0b2063
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:23:16 2014 +0200

    USB: usb_wwan: fix urb leak at shutdown
    
    commit 79eed03e77d481b55d85d1cfe5a1636a0d3897fd upstream.
    
    The delayed-write queue was never emptied at shutdown (close), something
    which could lead to leaked urbs if the port is closed before being
    runtime resumed due to a write.
    
    When this happens the output buffer would not drain on close
    (closing_wait timeout), and after consecutive opens, writes could be
    corrupted with previously buffered data, transfered with reduced
    throughput or completely blocked.
    
    Note that unbusy_queued_urb() was simply moved out of CONFIG_PM.
    
    Fixes: 383cedc3bb43 ("USB: serial: full autosuspend support for the
    option driver")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 887b3c368f744e95538a6ab0f9d91d21d933c5c4
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:23:15 2014 +0200

    USB: usb_wwan: fix write and suspend race
    
    commit 170fad9e22df0063eba0701adb966786d7a4ec5a upstream.
    
    Fix race between write() and suspend() which could lead to writes being
    dropped (or I/O while suspended) if the device is runtime suspended
    while a write request is being processed.
    
    Specifically, suspend() releases the susp_lock after determining the
    device is idle but before setting the suspended flag, thus leaving a
    window where a concurrent write() can submit an urb.
    
    Fixes: 383cedc3bb43 ("USB: serial: full autosuspend support for the
    option driver")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50476eeb49caef5d03baec2ca9ca1187bb87b738
Author: xiao jin <jin.xiao@intel.com>
Date:   Mon May 26 19:23:14 2014 +0200

    USB: usb_wwan: fix race between write and resume
    
    commit d9e93c08d8d985e5ef89436ebc9f4aad7e31559f upstream.
    
    We find a race between write and resume. usb_wwan_resume run play_delayed()
    and spin_unlock, but intfdata->suspended still is not set to zero.
    At this time usb_wwan_write is called and anchor the urb to delay
    list. Then resume keep running but the delayed urb have no chance
    to be commit until next resume. If the time of next resume is far
    away, tty will be blocked in tty_wait_until_sent during time. The
    race also can lead to writes being reordered.
    
    This patch put play_Delayed and intfdata->suspended together in the
    spinlock, it's to avoid the write race during resume.
    
    Fixes: 383cedc3bb43 ("USB: serial: full autosuspend support for the
    option driver")
    
    Signed-off-by: xiao jin <jin.xiao@intel.com>
    Signed-off-by: Zhang, Qi1 <qi1.zhang@intel.com>
    Reviewed-by: David Cohen <david.a.cohen@linux.intel.com>
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 640768af2f78c8c1b2a301d5e52f658765738ce5
Author: xiao jin <jin.xiao@intel.com>
Date:   Mon May 26 19:23:13 2014 +0200

    USB: usb_wwan: fix urb leak in write error path
    
    commit db0904737947d509844e171c9863ecc5b4534005 upstream.
    
    When enable usb serial for modem data, sometimes the tty is blocked
    in tty_wait_until_sent because portdata->out_busy always is set and
    have no chance to be cleared.
    
    We find a bug in write error path. usb_wwan_write set portdata->out_busy
    firstly, then try autopm async with error. No out urb submit and no
    usb_wwan_outdat_callback to this write, portdata->out_busy can't be
    cleared.
    
    This patch clear portdata->out_busy if usb_wwan_write try autopm async
    with error.
    
    Fixes: 383cedc3bb43 ("USB: serial: full autosuspend support for the
    option driver")
    
    Signed-off-by: xiao jin <jin.xiao@intel.com>
    Signed-off-by: Zhang, Qi1 <qi1.zhang@intel.com>
    Reviewed-by: David Cohen <david.a.cohen@linux.intel.com>
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4aff6991e35c738d21a2d864aea4d63eea4e39d2
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Thu May 15 06:58:24 2014 -0400

    matroxfb: perform a dummy read of M_STATUS
    
    commit 972754cfaee94d6e25acf94a497bc0a864d91b7e upstream.
    
    I had occasional screen corruption with the matrox framebuffer driver and
    I found out that the reason for the corruption is that the hardware
    blitter accesses the videoram while it is being written to.
    
    The matrox driver has a macro WaitTillIdle() that should wait until the
    blitter is idle, but it sometimes doesn't work. I added a dummy read
    mga_inl(M_STATUS) to WaitTillIdle() to fix the problem. The dummy read
    will flush the write buffer in the PCI chipset, and the next read of
    M_STATUS will return the hardware status.
    
    Since applying this patch, I had no screen corruption at all.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2dbc65d60c2ac4c77d775cd2a449738c1356baf3
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Tue May 27 12:48:56 2014 -0400

    ext4: fix wrong assert in ext4_mb_normalize_request()
    
    commit b5b60778558cafad17bbcbf63e0310bd3c68eb17 upstream.
    
    The variable "size" is expressed as number of blocks and not as
    number of clusters, this could trigger a kernel panic when using
    ext4 with the size of a cluster different from the size of a block.
    
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 029784e8b394634c30654d090fb53dfcefd9f91f
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Mon May 26 21:55:08 2014 +0200

    s390/lowcore: reserve 96 bytes for IRB in lowcore
    
    commit 993072ee67aa179c48c85eb19869804e68887d86 upstream.
    
    The IRB might be 96 bytes if the extended-I/O-measurement facility is
    used. This feature is currently not used by Linux, but struct irb
    already has the emw defined. So let's make the irb in lowcore match the
    size of the internal data structure to be future proof.
    We also have to add a pad, to correctly align the paste.
    
    The bigger irb field also circumvents a bug in some QEMU versions that
    always write the emw field on test subchannel and therefore destroy the
    paste definitions of this CPU. Running under these QEMU version broke
    some timing functions in the VDSO and all users of these functions,
    e.g. some JREs.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Sebastian Ott <sebott@linux.vnet.ibm.com>
    Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 162692c2f829d4336609e55dec7c2451073ef519
Author: Johannes Weiner <hannes@cmpxchg.org>
Date:   Fri Jun 6 14:35:35 2014 -0700

    mm: vmscan: clear kswapd's special reclaim powers before exiting
    
    commit 71abdc15adf8c702a1dd535f8e30df50758848d2 upstream.
    
    When kswapd exits, it can end up taking locks that were previously held
    by allocating tasks while they waited for reclaim.  Lockdep currently
    warns about this:
    
    On Wed, May 28, 2014 at 06:06:34PM +0800, Gu Zheng wrote:
    >  inconsistent {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-R} usage.
    >  kswapd2/1151 [HC0[0]:SC0[0]:HE1:SE1] takes:
    >   (&sig->group_rwsem){+++++?}, at: exit_signals+0x24/0x130
    >  {RECLAIM_FS-ON-W} state was registered at:
    >     mark_held_locks+0xb9/0x140
    >     lockdep_trace_alloc+0x7a/0xe0
    >     kmem_cache_alloc_trace+0x37/0x240
    >     flex_array_alloc+0x99/0x1a0
    >     cgroup_attach_task+0x63/0x430
    >     attach_task_by_pid+0x210/0x280
    >     cgroup_procs_write+0x16/0x20
    >     cgroup_file_write+0x120/0x2c0
    >     vfs_write+0xc0/0x1f0
    >     SyS_write+0x4c/0xa0
    >     tracesys+0xdd/0xe2
    >  irq event stamp: 49
    >  hardirqs last  enabled at (49):  _raw_spin_unlock_irqrestore+0x36/0x70
    >  hardirqs last disabled at (48):  _raw_spin_lock_irqsave+0x2b/0xa0
    >  softirqs last  enabled at (0):  copy_process.part.24+0x627/0x15f0
    >  softirqs last disabled at (0):            (null)
    >
    >  other info that might help us debug this:
    >   Possible unsafe locking scenario:
    >
    >         CPU0
    >         ----
    >    lock(&sig->group_rwsem);
    >    <Interrupt>
    >      lock(&sig->group_rwsem);
    >
    >   *** DEADLOCK ***
    >
    >  no locks held by kswapd2/1151.
    >
    >  stack backtrace:
    >  CPU: 30 PID: 1151 Comm: kswapd2 Not tainted 3.10.39+ #4
    >  Call Trace:
    >    dump_stack+0x19/0x1b
    >    print_usage_bug+0x1f7/0x208
    >    mark_lock+0x21d/0x2a0
    >    __lock_acquire+0x52a/0xb60
    >    lock_acquire+0xa2/0x140
    >    down_read+0x51/0xa0
    >    exit_signals+0x24/0x130
    >    do_exit+0xb5/0xa50
    >    kthread+0xdb/0x100
    >    ret_from_fork+0x7c/0xb0
    
    This is because the kswapd thread is still marked as a reclaimer at the
    time of exit.  But because it is exiting, nobody is actually waiting on
    it to make reclaim progress anymore, and it's nothing but a regular
    thread at this point.  Be tidy and strip it of all its powers
    (PF_MEMALLOC, PF_SWAPWRITE, PF_KSWAPD, and the lockdep reclaim state)
    before returning from the thread function.
    
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Reported-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: Tang Chen <tangchen@cn.fujitsu.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 41772cf6bd35f4ece7a288f186d48aea07bd1d89
Author: Kees Cook <keescook@chromium.org>
Date:   Thu Apr 17 13:22:09 2014 -0700

    HID: core: fix validation of report id 0
    
    commit 1b15d2e5b8077670b1e6a33250a0d9577efff4a5 upstream.
    
    Some drivers use the first HID report in the list instead of using an
    index. In these cases, validation uses ID 0, which was supposed to mean
    "first known report". This fixes the problem, which was causing at least
    the lgff family of devices to stop working since hid_validate_values
    was being called with ID 0, but the devices used single numbered IDs
    for their reports:
    
    0x05, 0x01,         /*  Usage Page (Desktop),                   */
    0x09, 0x05,         /*  Usage (Gamepad),                        */
    0xA1, 0x01,         /*  Collection (Application),               */
    0xA1, 0x02,         /*      Collection (Logical),               */
    0x85, 0x01,         /*          Report ID (1),                  */
    ...
    
    Reported-by: Simon Wood <simon@mungewell.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    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 b9f10ce4b065156a574a2110fc1edfbc012a95d1
Author: Hugh Dickins <hughd@google.com>
Date:   Wed Jun 4 16:05:33 2014 -0700

    mm: fix sleeping function warning from __put_anon_vma
    
    commit 7f39dda9d86fb4f4f17af0de170decf125726f8c upstream.
    
    Trinity reports BUG:
    
      sleeping function called from invalid context at kernel/locking/rwsem.c:47
      in_atomic(): 0, irqs_disabled(): 0, pid: 5787, name: trinity-c27
    
    __might_sleep < down_write < __put_anon_vma < page_get_anon_vma <
    migrate_pages < compact_zone < compact_zone_order < try_to_compact_pages ..
    
    Right, since conversion to mutex then rwsem, we should not put_anon_vma()
    from inside an rcu_read_lock()ed section: fix the two places that did so.
    And add might_sleep() to anon_vma_free(), as suggested by Peter Zijlstra.
    
    Fixes: 88c22088bf23 ("mm: optimize page_lock_anon_vma() fast-path")
    Reported-by: Dave Jones <davej@redhat.com>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Cc: Peter Zijlstra <peterz@infradead.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 8e040c1b2f0f5367753f68d3b0712e396b4b156d
Author: Tony Luck <tony.luck@intel.com>
Date:   Wed Jun 4 16:11:01 2014 -0700

    mm/memory-failure.c: don't let collect_procs() skip over processes for MF_ACTION_REQUIRED
    
    commit 74614de17db6fb472370c426d4f934d8d616edf2 upstream.
    
    When Linux sees an "action optional" machine check (where h/w has reported
    an error that is not in the current execution path) we generally do not
    want to signal a process, since most processes do not have a SIGBUS
    handler - we'd just prematurely terminate the process for a problem that
    they might never actually see.
    
    task_early_kill() decides whether to consider a process - and it checks
    whether this specific process has been marked for early signals with
    "prctl", or if the system administrator has requested early signals for
    all processes using /proc/sys/vm/memory_failure_early_kill.
    
    But for MF_ACTION_REQUIRED case we must not defer.  The error is in the
    execution path of the current thread so we must send the SIGBUS
    immediatley.
    
    Fix by passing a flag argument through collect_procs*() to
    task_early_kill() so it knows whether we can defer or must take action.
    
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Chen Gong <gong.chen@linux.jf.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 bbc55195dc188b1253f794efa97c060369707d51
Author: Tony Luck <tony.luck@intel.com>
Date:   Wed Jun 4 16:10:59 2014 -0700

    mm/memory-failure.c-failure: send right signal code to correct thread
    
    commit a70ffcac741d31a406c1d2b832ae43d658e7e1cf upstream.
    
    When a thread in a multi-threaded application hits a machine check because
    of an uncorrectable error in memory - we want to send the SIGBUS with
    si.si_code = BUS_MCEERR_AR to that thread.  Currently we fail to do that
    if the active thread is not the primary thread in the process.
    collect_procs() just finds primary threads and this test:
    
    	if ((flags & MF_ACTION_REQUIRED) && t == current) {
    
    will see that the thread we found isn't the current thread and so send a
    si.si_code = BUS_MCEERR_AO to the primary (and nothing to the active
    thread at this time).
    
    We can fix this by checking whether "current" shares the same mm with the
    process that collect_procs() said owned the page.  If so, we send the
    SIGBUS to current (with code BUS_MCEERR_AR).
    
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reported-by: Otto Bruggeman <otto.g.bruggeman@intel.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Chen Gong <gong.chen@linux.jf.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 3dc4a23faeecedad2f9195eaa355755a8a986526
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon May 26 19:23:10 2014 +0200

    USB: option: fix runtime PM handling
    
    commit acf47d4f9c39b1cba467aa9442fc2efe0b1da741 upstream.
    
    Fix potential I/O while runtime suspended due to missing PM operations
    in send_setup.
    
    Fixes: 383cedc3bb43 ("USB: serial: full autosuspend support for the
    option driver")
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1038502e6381461ecc253032a2e829277649dc85
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue Jun 3 11:00:27 2014 -0400

    USB: EHCI: avoid BIOS handover on the HASEE E200
    
    commit b0a50e92bda3c4aeb8017d4e6c6e92146ebd5c9b upstream.
    
    Leandro Liptak reports that his HASEE E200 computer hangs when we ask
    the BIOS to hand over control of the EHCI host controller.  This
    definitely sounds like a bug in the BIOS, but at the moment there is
    no way to fix it.
    
    This patch works around the problem by avoiding the handoff whenever
    the motherboard and BIOS version match those of Leandro's computer.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Leandro Liptak <leandroliptak@gmail.com>
    Tested-by: Leandro Liptak <leandroliptak@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4cbd8a25f93283765cc12dc7f8914ca33cb49567
Author: Felipe Balbi <balbi@ti.com>
Date:   Wed Apr 16 10:30:33 2014 -0500

    usb: dwc3: gadget: clear stall when disabling endpoint
    
    commit 687ef9817df7ed960d14575b9033dde3d04631fe upstream.
    
    so it seems like DWC3 IP doesn't clear stalls
    automatically when we disable an endpoint, because
    of that, we _must_ make sure stalls are cleared
    before clearing the proper bit in DALEPENA register.
    
    Reported-by: Johannes Stezenbach <js@sig21.net>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7f0226e50ed22a2a62f875f6b3766e0f108a7a9
Author: Paul Bolle <pebolle@tiscali.nl>
Date:   Mon May 26 23:37:09 2014 +0200

    usb: gadget: rename CONFIG_USB_GADGET_PXA25X
    
    commit d30f2065d6da377cc76771aca5a9850cfca8723b upstream.
    
    Commit 193ab2a60700 ("usb: gadget: allow multiple gadgets to be built")
    basically renamed the Kconfig symbol USB_GADGET_PXA25X to USB_PXA25X. It
    did not rename the related macros in use at that time. Commit
    c0a39151a405 ("ARM: pxa: fix inconsistent CONFIG_USB_PXA27X") did so for
    all but one macro. Rename that last macro too now.
    
    Fixes: 193ab2a60700 ("usb: gadget: allow multiple gadgets to be built")
    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35a58e89b97b037978ba768bb7b055d1ed61078b
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue Jun 3 11:11:34 2014 -0400

    USB: usbtest: add a timeout for scatter-gather tests
    
    commit 32b36eeae6a859670d2939a7d6136cb5e9ed64f8 upstream.
    
    In usbtest, tests 5 - 8 use the scatter-gather library in usbcore
    without any sort of timeout.  If there's a problem in the gadget or
    host controller being tested, the test can hang.
    
    This patch adds a 10-second timeout to the tests, so that they will
    fail gracefully with an ETIMEDOUT error instead of hanging.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Huang Rui <ray.huang@amd.com>
    Tested-by: Huang Rui <ray.huang@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43e5e63ffac81183717c0bde818c18d3466fee17
Author: Huang Rui <ray.huang@amd.com>
Date:   Mon May 26 10:55:36 2014 +0800

    usb: usbtest: fix unlink write error with pattern 1
    
    commit e4d58f5dcb7d7be45df8def31881ebfae99c75da upstream.
    
    TEST 12 and TEST 24 unlinks the URB write request for N times. When
    host and gadget both initialize pattern 1 (mod 63) data series to
    transfer, the gadget side will complain the wrong data which is not
    expected.  Because in host side, usbtest doesn't fill the data buffer
    as mod 63 and this patch fixed it.
    
    [20285.488974] dwc3 dwc3.0.auto: ep1out-bulk: Transfer Not Ready
    [20285.489181] dwc3 dwc3.0.auto: ep1out-bulk: reason Transfer Not Active
    [20285.489423] dwc3 dwc3.0.auto: ep1out-bulk: req ffff8800aa6cb480 dma aeb50800 length 512 last
    [20285.489727] dwc3 dwc3.0.auto: ep1out-bulk: cmd 'Start Transfer' params 00000000 a9eaf000 00000000
    [20285.490055] dwc3 dwc3.0.auto: Command Complete --> 0
    [20285.490281] dwc3 dwc3.0.auto: ep1out-bulk: Transfer Not Ready
    [20285.490492] dwc3 dwc3.0.auto: ep1out-bulk: reason Transfer Active
    [20285.490713] dwc3 dwc3.0.auto: ep1out-bulk: endpoint busy
    [20285.490909] dwc3 dwc3.0.auto: ep1out-bulk: Transfer Complete
    [20285.491117] dwc3 dwc3.0.auto: request ffff8800aa6cb480 from ep1out-bulk completed 512/512 ===> 0
    [20285.491431] zero gadget: bad OUT byte, buf[1] = 0
    [20285.491605] dwc3 dwc3.0.auto: ep1out-bulk: cmd 'Set Stall' params 00000000 00000000 00000000
    [20285.491915] dwc3 dwc3.0.auto: Command Complete --> 0
    [20285.492099] dwc3 dwc3.0.auto: queing request ffff8800aa6cb480 to ep1out-bulk length 512
    [20285.492387] dwc3 dwc3.0.auto: ep1out-bulk: Transfer Not Ready
    [20285.492595] dwc3 dwc3.0.auto: ep1out-bulk: reason Transfer Not Active
    [20285.492830] dwc3 dwc3.0.auto: ep1out-bulk: req ffff8800aa6cb480 dma aeb51000 length 512 last
    [20285.493135] dwc3 dwc3.0.auto: ep1out-bulk: cmd 'Start Transfer' params 00000000 a9eaf000 00000000
    [20285.493465] dwc3 dwc3.0.auto: Command Complete --> 0
    
    Signed-off-by: Huang Rui <ray.huang@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

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

commit 3c96691fa95d62355be752d61375d2350cf1f29a
Author: Paul Bolle <pebolle@tiscali.nl>
Date:   Mon May 26 21:47:11 2014 +0200

    staging: tidspbridge: check for CONFIG_SND_OMAP_SOC_MCBSP
    
    commit d3921a03a89acb1b9ca599590c0131c89f8737d8 upstream.
    
    Commit d0f47ff17f29 ("ASoC: OMAP: Build config cleanup for McBSP")
    removed the Kconfig symbol OMAP_MCBSP. It left two checks for
    CONFIG_OMAP_MCBSP untouched.
    
    Convert these to checks for CONFIG_SND_OMAP_SOC_MCBSP. That must be
    correct, since that re-enables calls to functions that are all found in
    sound/soc/omap/mcbsp.c. And that file is built only if
    CONFIG_SND_OMAP_SOC_MCBSP is defined.
    
    Fixes: d0f47ff17f29 ("ASoC: OMAP: Build config cleanup for McBSP")
    Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84716cf319a08667be6992a20920d2bb84f200b3
Author: Stephane Grosjean <s.grosjean@peak-system.com>
Date:   Tue May 20 11:38:56 2014 +0200

    can: peak_pci: prevent use after free at netdev removal
    
    commit 0b5a958cf4df3a5cd578b861471e62138f55c85e upstream.
    
    As remarked by Christopher R. Baker in his post at
    
    http://marc.info/?l=linux-can&m=139707295706465&w=2
    
    there's a possibility for an use after free condition at device removal.
    
    This simplified patch introduces an additional variable to prevent the issue.
    Thanks for catching this.
    
    Reported-by: Christopher R. Baker <cbaker@rec.ri.cmu.edu>
    Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>