commit 401390fbc8e28bb07851be6bbe0b343a0e9f8306
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Fri Aug 2 22:15:12 2013 +0200

    Linux 3.2.50

commit 7a444fe170822a11d705a1b33beeb85a20929a24
Author: William Gulland <wgulland@google.com>
Date:   Thu Jun 27 16:10:20 2013 -0700

    usb: Clear both buffers when clearing a control transfer TT buffer.
    
    commit 2c7b871b9102c497ba8f972aa5d38532f05b654d upstream.
    
    Control transfers have both IN and OUT (or SETUP) packets, so when
    clearing TT buffers for a control transfer it's necessary to send
    two HUB_CLEAR_TT_BUFFER requests to the hub.
    
    Signed-off-by: William Gulland <wgulland@google.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3c574b0665d5f20a7e67a96e3ed7cdfaa46c39b7
Author: Johan Hovold <jhovold@gmail.com>
Date:   Mon Jul 1 14:03:33 2013 +0200

    USB: mos7840: fix memory leak in open
    
    commit 5f8a2e68b679b41cc8e9b642f2f5aa45dd678641 upstream.
    
    Allocated urbs and buffers were never freed on errors in open.
    
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 07d41dce97a0cd106ea3cf6300ec6ee9126b4c18
Author: Enrico Mioso <mrkiko.rs@gmail.com>
Date:   Sat Jul 13 18:54:14 2013 +0200

    usb: serial: option.c: remove ONDA MT825UP product ID fromdriver
    
    commit 878c69aae986ae97084458c0183a8c0a059865b1 upstream.
    
    Some (very few) early devices like mine, where not exposting a proper CDC
    descriptor. This was fixed with an immediate firmware update from the vendor,
    and pre-installed on newer devices.
    So actual devices can be driven by cdc_acm.c + cdc_ether.c.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit afbdf5cb868b2475bf9399c5e0b6d8a53b396781
Author: Dan Williams <dcbw@redhat.com>
Date:   Wed Jul 10 12:25:02 2013 -0500

    usb: serial: option: add Olivetti Olicard 200
    
    commit 4cf76df06ecc852633ed927d91e01c83c33bc331 upstream.
    
    Speaks AT on interfaces 5 (command & PPP) and 3 (secondary), other
    interface protocols are unknown.
    
    Signed-off-by: Dan Williams <dcbw@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit fd31a3db19a3b304c39442335045d78f37cd116b
Author: Enrico Mioso <mrkiko.rs@gmail.com>
Date:   Sat Jun 29 15:33:35 2013 +0200

    usb: serial: option: blacklist ONDA MT689DC QMI interface
    
    commit 3d1a69e726406ab662ab88fa30a3a05ed404334d upstream.
    
    Prevent the option driver from binding itself to the QMI/WWAN interface, making
    it unusable by the proper driver.
    
    Signed-off-by: enrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 68a127fb3d6c045ae4e464e6e1c79c568c2aa031
Author: Oleksij Rempel <linux@rempel-privat.de>
Date:   Sun Jul 21 15:36:19 2013 +0200

    xhci: fix null pointer dereference on ring_doorbell_for_active_rings
    
    commit d66eaf9f89502971fddcb0de550b01fa6f409d83 upstream.
    
    in some cases where device is attched to xhci port and do not responding,
    for example ath9k_htc with stalled firmware, kernel will
    crash on ring_doorbell_for_active_rings.
    This patch check if pointer exist before it is used.
    
    This patch should be backported to kernels as old as 2.6.35, that
    contain the commit e9df17eb1408cfafa3d1844bfc7f22c7237b31b8 "USB: xhci:
    Correct assumptions about number of rings per endpoint"
    
    Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5829ddf034667a3e8ce3e853cae6139f66244313
Author: George Cherian <george.cherian@ti.com>
Date:   Mon Jul 1 10:59:12 2013 +0530

    usb: host: xhci: Enable XHCI_SPURIOUS_SUCCESS for all controllers with xhci 1.0
    
    commit 07f3cb7c28bf3f4dd80bfb136cf45810c46ac474 upstream.
    
    Xhci controllers with hci_version > 0.96 gives spurious success
    events on short packet completion. During webcam capture the
    "ERROR Transfer event TRB DMA ptr not part of current TD" was observed.
    The same application works fine with synopsis controllers hci_version 0.96.
    The same issue is seen with Intel Pantherpoint xhci controller. So enabling
    this quirk in xhci_gen_setup if controller verion is greater than 0.96.
    For xhci-pci move the quirk to much generic place xhci_gen_setup.
    
    Note from Sarah:
    
    The xHCI 1.0 spec changed how hardware handles short packets.  The HW
    will notify SW of the TRB where the short packet occurred, and it will
    also give a successful status for the last TRB in a TD (the one with the
    IOC flag set).  On the second successful status, that warning will be
    triggered in the driver.
    
    Software is now supposed to not assume the TD is not completed until it
    gets that last successful status.  That means we have a slight race
    condition, although it should have little practical impact.  This patch
    papers over that issue.
    
    It's on my long-term to-do list to fix this race condition, but it is a
    much more involved patch that will probably be too big for stable.  This
    patch is needed for stable to avoid serious log spam.
    
    This patch should be backported to kernels as old as 3.0, that
    contain the commit ad808333d8201d53075a11bc8dd83b81f3d68f0b "Intel xhci:
    Ignore spurious successful event."
    
    The patch will have to be modified for kernels older than 3.2, since
    that kernel added the xhci_gen_setup function for xhci platform devices.
    The correct conflict resolution for kernels older than 3.2 is to set
    XHCI_SPURIOUS_SUCCESS in xhci_pci_quirks for all xHCI 1.0 hosts.
    
    Signed-off-by: George Cherian <george.cherian@ti.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6f536ab9ff571f13eb732baa2dfd05af398537bc
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Wed Jul 24 10:27:13 2013 -0700

    xhci: Avoid NULL pointer deref when host dies.
    
    commit 203a86613fb3bf2767335659513fa98563a3eb71 upstream.
    
    When the host controller fails to respond to an Enable Slot command, and
    the host fails to respond to the register write to abort the command
    ring, the xHCI driver will assume the host is dead, and call
    usb_hc_died().
    
    The USB device's slot_id is still set to zero, and the pointer stored at
    xhci->devs[0] will always be NULL.  The call to xhci_check_args in
    xhci_free_dev should have caught the NULL virt_dev pointer.
    
    However, xhci_free_dev is designed to free the xhci_virt_device
    structures, even if the host is dead, so that we don't leak kernel
    memory.  xhci_free_dev checks the return value from the generic
    xhci_check_args function.  If the return value is -ENODEV, it carries on
    trying to free the virtual device.
    
    The issue is that xhci_check_args looks at the host controller state
    before it looks at the xhci_virt_device pointer.  It will return -ENIVAL
    because the host is dead, and xhci_free_dev will ignore the return
    value, and happily dereference the NULL xhci_virt_device pointer.
    
    The fix is to make sure that xhci_check_args checks the xhci_virt_device
    pointer before it checks the host state.
    
    See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1203453 for
    further details.  This patch doesn't solve the underlying issue, but
    will ensure we don't see any more NULL pointer dereferences because of
    the issue.
    
    This patch should be backported to kernels as old as 3.1, that
    contain the commit 7bd89b4017f46a9b92853940fd9771319acb578a "xhci: Don't
    submit commands or URBs to halted hosts."
    
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Reported-by: Vincent Thiele <vincentthiele@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit dcef899c032920b5aee5581af93fb96c4ea5b162
Author: Enrico Mioso <mrkiko.rs@gmail.com>
Date:   Thu Jul 25 02:01:39 2013 +0200

    usb: serial: option: Add ONYX 3G device support
    
    commit 63b5df963f52ccbab6fabedf05b7ac6b465789a4 upstream.
    
    This patch adds support for the ONYX 3G device (version 1) from ALFA
    NETWORK.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9e91b416342dcf58973bc01ace6429f4af10f540
Author: Johan Hovold <jhovold@gmail.com>
Date:   Fri Jun 28 12:24:26 2013 +0200

    USB: ti_usb_3410_5052: fix dynamic-id matching
    
    commit 1fad56424f5ad3ce4973505a357212b2e2282b3f upstream.
    
    The driver failed to take the dynamic ids into account when determining
    the device type and therefore all devices were detected as 2-port
    devices when using the dynamic-id interface.
    
    Match on the usb-serial-driver field instead of doing redundant id-table
    searches.
    
    Reported-by: Anders Hammarquist <iko@iko.pp.se>
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bbacf54234dd47e0f976918a4b88a839025461a2
Author: Anton Blanchard <anton@samba.org>
Date:   Mon Jul 15 14:04:50 2013 +1000

    powerpc/modules: Module CRC relocation fix causes perf issues
    
    commit 0e0ed6406e61434d3f38fb58aa8464ec4722b77e upstream.
    
    Module CRCs are implemented as absolute symbols that get resolved by
    a linker script. We build an intermediate .o that contains an
    unresolved symbol for each CRC. genksysms parses this .o, calculates
    the CRCs and writes a linker script that "resolves" the symbols to
    the calculated CRC.
    
    Unfortunately the ppc64 relocatable kernel sees these CRCs as symbols
    that need relocating and relocates them at boot. Commit d4703aef
    (module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y)
    added a hook to reverse the bogus relocations. Part of this patch
    created a symbol at 0x0:
    
    # head -2 /proc/kallsyms
    0000000000000000 T reloc_start
    c000000000000000 T .__start
    
    This reloc_start symbol is causing lots of confusion to perf. It
    thinks reloc_start is a massive function that stretches from 0x0 to
    0xc000000000000000 and we get various cryptic errors out of perf,
    including:
    
    problem incrementing symbol count, skipping event
    
    This patch removes the  reloc_start linker script label and instead
    defines it as PHYSICAL_START. We also need to wrap it with
    CONFIG_PPC64 because the ppc32 kernel can set a non zero
    PHYSICAL_START at compile time and we wouldn't want to subtract
    it from the CRCs in that case.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Acked-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9c0abcdc5866f06301c73c3563f3c2adde2bfd8b
Author: Bjørn Mork <bjorn@mork.no>
Date:   Fri Jun 28 17:15:25 2013 +0200

    usb: option: add TP-LINK MA260
    
    commit 94190301ffa059c2d127b3a67ec5d161d5c62681 upstream.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1f8adde06e866835fafa1b34fcea9b1dab82bb78
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Fri Jul 5 16:49:34 2013 +0100

    staging: comedi: fix a race between do_cmd_ioctl() and read/write
    
    commit 4b18f08be01a7b3c7b6df497137b6e3cb28adaa3 upstream.
    
    `do_cmd_ioctl()` is called with the comedi device's mutex locked to
    process the `COMEDI_CMD` ioctl to set up comedi's asynchronous command
    handling on a comedi subdevice.  `comedi_read()` and `comedi_write()`
    are the `read` and `write` handlers for the comedi device, but do not
    lock the mutex (for performance reasons, as some things can hold the
    mutex for quite a long time).
    
    There is a race condition if `comedi_read()` or `comedi_write()` is
    running at the same time and for the same file object and comedi
    subdevice as `do_cmd_ioctl()`.  `do_cmd_ioctl()` sets the subdevice's
    `busy` pointer to the file object way before it sets the `SRF_RUNNING` flag
    in the subdevice's `runflags` member.  `comedi_read() and
    `comedi_write()` check the subdevice's `busy` pointer is pointing to the
    current file object, then if the `SRF_RUNNING` flag is not set, will call
    `do_become_nonbusy()` to shut down the asyncronous command.  Bad things
    can happen if the asynchronous command is being shutdown and set up at
    the same time.
    
    To prevent the race, don't set the `busy` pointer until
    after the `SRF_RUNNING` flag has been set.  Also, make sure the mutex is
    held in `comedi_read()` and `comedi_write()` while calling
    `do_become_nonbusy()` in order to avoid moving the race condition to a
    point within that function.
    
    Change some error handling `goto cleanup` statements in `do_cmd_ioctl()`
    to simple `return -ERRFOO` statements as a result of changing when the
    `busy` pointer is set.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f6c4c6bd5b80ee078db936a4b40c072a17dcfa1d
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Jul 8 13:36:19 2013 +0100

    staging: comedi: COMEDI_CANCEL ioctl should wake up read/write
    
    commit 69acbaac303e8cb948801a9ddd0ac24e86cc4a1b upstream.
    
    Comedi devices can do blocking read() or write() (or poll()) if an
    asynchronous command has been set up, blocking for data (for read()) or
    buffer space (for write()).  Various events associated with the
    asynchronous command will wake up the blocked reader or writer (or
    poller).  It is also possible to force the asynchronous command to
    terminate by issuing a `COMEDI_CANCEL` ioctl.  That shuts down the
    asynchronous command, but does not currently wake up the blocked reader
    or writer (or poller).  If the blocked task could be woken up, it would
    see that the command is no longer active and return.  The caller of the
    `COMEDI_CANCEL` ioctl could attempt to wake up the blocked task by
    sending a signal, but that's a nasty workaround.
    
    Change `do_cancel_ioctl()` to wake up the wait queue after it returns
    from `do_cancel()`.  `do_cancel()` can propagate an error return value
    from the low-level comedi driver's cancel routine, but it always shuts
    the command down regardless, so `do_cancel_ioctl()` can wake up he wait
    queue regardless of the return value from `do_cancel()`.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 281e4f20bb5e0ff3a0aa888911250654a2e87494
Author: Alexandr \\\"Sky\\\" Ivanov <alexandr.sky@gmail.com>
Date:   Tue Jul 23 17:46:40 2013 +0400

    USB: option: add D-Link DWM-152/C1 and DWM-156/C1
    
    commit ca24763588844b14f019ffc45c7df6d9e8f932c5 upstream.
    
    Adding support for D-Link DWM-152/C1 and DWM-156/C1 devices.
    
    DWM-152/C1:
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=07d1 ProdID=3e01 Rev= 0.00
    S:  Product=USB Configuration
    S:  SerialNumber=1234567890ABCDEF
    C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    DWM-156/C1:
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  8 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=07d1 ProdID=3e02 Rev= 0.00
    S:  Product=DataCard Device
    S:  SerialNumber=1234567890ABCDEF
    C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
    I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Alexandr Ivanov <alexandr.sky@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6fa3efc24bdb025e9a5e3b6e3aaf63a8e8149335
Author: Harshula Jayasuriya <harshula@redhat.com>
Date:   Tue Jul 23 14:21:35 2013 +1000

    nfsd: nfsd_open: when dentry_open returns an error do not propagate as struct file
    
    commit e4daf1ffbe6cc3b12aab4d604e627829e93e9914 upstream.
    
    The following call chain:
    ------------------------------------------------------------
    nfs4_get_vfs_file
    - nfsd_open
      - dentry_open
        - do_dentry_open
          - __get_file_write_access
            - get_write_access
              - return atomic_inc_unless_negative(&inode->i_writecount) ? 0 : -ETXTBSY;
    ------------------------------------------------------------
    
    can result in the following state:
    ------------------------------------------------------------
    struct nfs4_file {
    ...
      fi_fds = {0xffff880c1fa65c80, 0xffffffffffffffe6, 0x0},
      fi_access = {{
          counter = 0x1
        }, {
          counter = 0x0
        }},
    ...
    ------------------------------------------------------------
    
    1) First time around, in nfs4_get_vfs_file() fp->fi_fds[O_WRONLY] is
    NULL, hence nfsd_open() is called where we get status set to an error
    and fp->fi_fds[O_WRONLY] to -ETXTBSY. Thus we do not reach
    nfs4_file_get_access() and fi_access[O_WRONLY] is not incremented.
    
    2) Second time around, in nfs4_get_vfs_file() fp->fi_fds[O_WRONLY] is
    NOT NULL (-ETXTBSY), so nfsd_open() is NOT called, but
    nfs4_file_get_access() IS called and fi_access[O_WRONLY] is incremented.
    Thus we leave a landmine in the form of the nfs4_file data structure in
    an incorrect state.
    
    3) Eventually, when __nfs4_file_put_access() is called it finds
    fi_access[O_WRONLY] being non-zero, it decrements it and calls
    nfs4_file_put_fd() which tries to fput -ETXTBSY.
    ------------------------------------------------------------
    ...
         [exception RIP: fput+0x9]
         RIP: ffffffff81177fa9  RSP: ffff88062e365c90  RFLAGS: 00010282
         RAX: ffff880c2b3d99cc  RBX: ffff880c2b3d9978  RCX: 0000000000000002
         RDX: dead000000100101  RSI: 0000000000000001  RDI: ffffffffffffffe6
         RBP: ffff88062e365c90   R8: ffff88041fe797d8   R9: ffff88062e365d58
         R10: 0000000000000008  R11: 0000000000000000  R12: 0000000000000001
         R13: 0000000000000007  R14: 0000000000000000  R15: 0000000000000000
         ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
      #9 [ffff88062e365c98] __nfs4_file_put_access at ffffffffa0562334 [nfsd]
     #10 [ffff88062e365cc8] nfs4_file_put_access at ffffffffa05623ab [nfsd]
     #11 [ffff88062e365ce8] free_generic_stateid at ffffffffa056634d [nfsd]
     #12 [ffff88062e365d18] release_open_stateid at ffffffffa0566e4b [nfsd]
     #13 [ffff88062e365d38] nfsd4_close at ffffffffa0567401 [nfsd]
     #14 [ffff88062e365d88] nfsd4_proc_compound at ffffffffa0557f28 [nfsd]
     #15 [ffff88062e365dd8] nfsd_dispatch at ffffffffa054543e [nfsd]
     #16 [ffff88062e365e18] svc_process_common at ffffffffa04ba5a4 [sunrpc]
     #17 [ffff88062e365e98] svc_process at ffffffffa04babe0 [sunrpc]
     #18 [ffff88062e365eb8] nfsd at ffffffffa0545b62 [nfsd]
     #19 [ffff88062e365ee8] kthread at ffffffff81090886
     #20 [ffff88062e365f48] kernel_thread at ffffffff8100c14a
    ------------------------------------------------------------
    
    Signed-off-by: Harshula Jayasuriya <harshula@redhat.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a84914b11f92186d5d638c5b0b3d2ad87ccad6ce
Author: Ewan D. Milne <emilne@redhat.com>
Date:   Fri Nov 2 09:38:34 2012 -0400

    sd: fix crash when UA received on DIF enabled device
    
    commit 085b513f97d8d799d28491239be4b451bcd8c2c5 upstream.
    
    sd_prep_fn will allocate a larger CDB for the command via mempool_alloc
    for devices using DIF type 2 protection.  This CDB was being freed
    in sd_done, which results in a kernel crash if the command is retried
    due to a UNIT ATTENTION.  This change moves the code to free the larger
    CDB into sd_unprep_fn instead, which is invoked after the request is
    complete.
    
    It is no longer necessary to call scsi_print_command separately for
    this case as the ->cmnd will no longer be NULL in the normal code path.
    
    Also removed conditional test for DIF type 2 when freeing the larger
    CDB because the protection_type could have been changed via sysfs while
    the command was executing.
    
    Signed-off-by: Ewan D. Milne <emilne@redhat.com>
    Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f6c02a04b0409f2b55fa79f0bba7307434a22c83
Author: Saurav Kashyap <saurav.kashyap@qlogic.com>
Date:   Fri Jul 12 14:47:51 2013 -0400

    qla2xxx: Properly set the tagging for commands.
    
    commit c3ccb1d7cf4c4549151876dd37c0944a682fd9e1 upstream.
    
    This fixes a regression where Xyratex controllers and disks were lost by the
    driver:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=59601
    
    Reported-by: Jack Hill <jackhill@jackhill.us>
    Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
    Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6af864ccfe6d6d079db3e488b77b95fa65eb7799
Author: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Date:   Thu Jul 11 17:18:58 2013 -0700

    isci: Fix a race condition in the SSP task management path
    
    commit 96f15f29038e58e1b0a96483e2b369ff446becf1 upstream.
    
    This commit fixes a race condition in the isci driver abort task and SSP
    device task management path.  The race is caused when an I/O termination
    in the SCU hardware is necessary because of an SSP target timeout condition,
    and the check of the I/O end state races against the HW-termination-driven
    end state.  The failure of the race meant that no TMF was sent to the device
    to clean-up the pending I/O.
    
    Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
    Reviewed-by: Lukasz Dorau <lukasz.dorau@intel.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ff7facf5e808245dc6dc7abc550607db6becc59f
Author: Mark Kettenis <kettenis@openbsd.org>
Date:   Sun Jul 21 16:44:09 2013 -0400

    drm/radeon: fix combios tables on older cards
    
    commit cef1d00cd56f600121ad121875655ad410a001b8 upstream.
    
    Noticed that my old Radeon 7500 hung after printing
    
       drm: GPU not posted. posting now...
    
    when it wasn't selected as the primary card the BIOS.  Some digging
    revealed that it was hanging in combios_parse_mmio_table() while
    parsing the ASIC INIT 3 table.  Looking at the BIOS ROM for the card,
    it becomes obvious that there is no ASIC INIT 3 table in the BIOS.
    The code is just processing random garbage.  No surprise it hangs!
    
    Why do I say that there is no ASIC INIT 3 table is the BIOS?  This
    table is found through the MISC INFO table.  The MISC INFO table can
    be found at offset 0x5e in the COMBIOS header.  But the header is
    smaller than that.  The COMBIOS header starts at offset 0x126.  The
    standard PCI Data Structure (the bit that starts with 'PCIR') lives at
    offset 0x180.  That means that the COMBIOS header can not be larger
    than 0x5a bytes and therefore cannot contain a MISC INFO table.
    
    I looked at a dozen or so BIOS images, some my own, some downloaded from:
    
        <http://www.techpowerup.com/vgabios/index.php?manufacturer=ATI&page=1>
    
    It is fairly obvious that the size of the COMBIOS header can be found
    at offset 0x6 of the header.  Not sure if it is a 16-bit number or
    just an 8-bit number, but that doesn't really matter since the tables
    seems to be always smaller than 256 bytes.
    
    So I think combios_get_table_offset() should check if the requested
    table is present.  This can be done by checking the offset against the
    size of the header.  See the diff below.  The diff is against the WIP
    OpenBSD codebase that roughly corresponds to Linux 3.8.13 at this
    point.  But I don't think this bit of the code changed much since
    then.
    
    For what it is worth:
    
    Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 686169f6ecb88a765822f8289439110e7d66fa60
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Jul 19 17:44:43 2013 -0400

    drm/radeon: improve dac adjust heuristics for legacy pdac
    
    commit 03ed8cf9b28d886c64c7e705c7bb1a365fd8fb95 upstream.
    
    Hopefully avoid more quirks in the future due to bogus
    vbios dac data.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b8aea41ad64a7f527702e0296594a52ab77dce7c
Author: Ondrej Zary <linux@rainbow-software.org>
Date:   Fri Jul 19 21:08:48 2013 +0200

    drm/radeon: Another card with wrong primary dac adj
    
    commit f7929f34fa0e0bb6736a2484fdc07d77a1653081 upstream.
    
    Hello,
    got another card with "too bright" problem:
    Sapphire Radeon VE 7000 DDR (VGA+S-Video)
    
    lspci -vnn:
    01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RV100 QY [Radeon 7000/VE] [1002:5159] (prog-if 00 [VGA controller])
            Subsystem: PC Partner Limited Sapphire Radeon VE 7000 DDR [174b:7c28]
    
    The patch below fixes the problem for this card.
    But I don't like the blacklist, couldn't some heuristic be used instead?
    The interesting thing is that the manufacturer is the same as the other card
    needing the same quirk. I wonder how many different types are broken this way.
    
    The "wrong" ps2_pdac_adj value that comes from BIOS on this card is 0x300.
    
    ====================
    drm/radeon: Add primary dac adj quirk for Sapphire Radeon VE 7000 DDR
    
    Values from BIOS are wrong, causing too bright colors.
    Use default values instead.
    
    Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d91a7b345356c1ecd6adcc768418cdfc65d4dbef
Author: Sami Rahman <sami.rahman@mmbresearch.com>
Date:   Mon Jul 8 14:28:55 2013 -0400

    USB: cp210x: add MMB and PI ZigBee USB Device Support
    
    commit 7681156982026ebf7eafd7301eb0374d7648d068 upstream.
    
    Added support for MMB Networks and Planet Innovation Ingeni ZigBee USB
    devices using customized Silicon Labs' CP210x.c USB to UART bridge
    drivers with PIDs: 88A4, 88A5.
    
    Signed-off-by: Sami Rahman <sami.rahman@mmbresearch.com>
    Tested-by: Sami Rahman <sami.rahman@mmbresearch.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6f1bad32acd55f7d7d8e54ee841ff4fbca442a92
Author: Barry Grussling <barry@grussling.com>
Date:   Fri Jul 19 14:46:12 2013 -0700

    usb: cp210x support SEL C662 Vendor/Device
    
    commit b579fa52f6be0b4157ca9cc5e94d44a2c89a7e95 upstream.
    
    This patch adds support for the Schweitzer Engineering Laboratories
    C662 USB cable based off the CP210x driver.
    
    Signed-off-by: Barry Grussling <barry@grussling.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1a0c98949534e3713f51968ad0de86405929350d
Author: Daniil Bolsun <dan.bolsun@gmail.com>
Date:   Fri Jul 19 10:21:23 2013 +0300

    USB: option: append Petatel NP10T device to GSM modems list
    
    commit c38e83b6cc2adf80e3f091fd92cfbeacc9748347 upstream.
    
    This patch was tested on 3.10.1 kernel.
    
    Same models of Petatel NP10T modems have different device IDs.
    Unfortunately they have no additional revision information on a board
    which may treat them as different devices. Currently I've seen only
    two NP10T devices with various IDs. Possibly Petatel NP10T list will
    be appended upon devices with new IDs will appear.
    
    Signed-off-by: Daniil Bolsun <dan.bolsun@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 91f63ef57a51301217a4018f80c2572d98075ff6
Author: Jóhann B. Guðmundsson <johannbg@gmail.com>
Date:   Thu Jul 4 21:47:52 2013 +0000

    USB: misc: Add Manhattan Hi-Speed USB DVI Converter to sisusbvga
    
    commit 58fc90db8261b571c026bb8bf23aad48a7233118 upstream.
    
    Signed-off-by: Jóhann B. Guðmundsson <johannbg@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0d6b68684aa303d267ccfee192f18826d5e073e3
Author: Ren Bigcren <bigcren.ren@sonymobile.com>
Date:   Tue Jul 2 13:34:30 2013 +0200

    USB: storage: Add MicroVault Flash Drive to unusual_devs
    
    commit e7a6121f4929c17215f0cdca3726f4bf3e4e9529 upstream.
    
    The device report an error capacity when read_capacity_16().
    Using read_capacity_10() can get the correct capacity.
    
    Signed-off-by: Ren Bigcren <bigcren.ren@sonymobile.com>
    Cc: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
    Signed-off-by: Oskar Andero <oskar.andero@sonymobile.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 6238ac0de028303bfa976e6b25e9efd0955ce529
Author: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Date:   Mon Jul 1 23:56:25 2013 -0300

    usb: serial: cp210x: Add USB ID for Netgear Switches embedded serial adapter
    
    commit 90625070c4253377025878c4e82feed8b35c7116 upstream.
    
    This adds NetGear Managed Switch M4100 series, M5300 series, M7100 series
    USB ID (0846:0110) to the cp210x driver. Without this, the serial
    adapter is not recognized in Linux. Description was obtained from
    an Netgear Eng.
    
    Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4167cb56f8a6ca68589a07a214461fe52b78ba20
Author: Eldad Zack <eldad@fogrefinery.com>
Date:   Fri Jul 19 18:26:53 2013 +0200

    ALSA: usb-audio: 6fire: return correct XRUN indication
    
    commit be2f93a4c4981b3646b6f98f477154411b8516cb upstream.
    
    Return SNDRV_PCM_POS_XRUN (snd_pcm_uframes_t) instead of
    SNDRV_PCM_STATE_XRUN (snd_pcm_state_t) from the pointer
    function of 6fire, as expected by snd_pcm_update_hw_ptr0().
    
    Caught by sparse.
    
    Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8333b0a8375d9d2f2fa2141c418a895fcf1a8c04
Author: Josef Bacik <jbacik@fusionio.com>
Date:   Wed Jul 17 19:30:20 2013 -0400

    Btrfs: re-add root to dead root list if we stop dropping it
    
    commit d29a9f629e009c9b90e5859bce581070fd6247fc upstream.
    
    If we stop dropping a root for whatever reason we need to add it back to the
    dead root list so that we will re-start the dropping next transaction commit.
    The other case this happens is if we recover a drop because we will add a root
    without adding it to the fs radix tree, so we can leak it's root and commit root
    extent buffer, adding this to the dead root list makes this cleanup happen.
    Thanks,
    
    Reported-by: Alex Lyakas <alex.btrfs@zadarastorage.com>
    Signed-off-by: Josef Bacik <jbacik@fusionio.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f9b000a7bb45c8cbd2d380f7716b8ef90f1ac68a
Author: Josef Bacik <jbacik@fusionio.com>
Date:   Mon Jul 15 12:41:42 2013 -0400

    Btrfs: fix lock leak when resuming snapshot deletion
    
    commit fec386ac1428f9c0e672df952cbca5cebd4e4e2f upstream.
    
    We aren't setting path->locks[level] when we resume a snapshot deletion which
    means we won't unlock the buffer when we free the path.  This causes deadlocks
    if we happen to re-allocate the block before we've evicted the extent buffer
    from cache.  Thanks,
    
    Reported-by: Alex Lyakas <alex.btrfs@zadarastorage.com>
    Signed-off-by: Josef Bacik <jbacik@fusionio.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 694fc86fb2c73cdc40d2ddd536f40671efa4ad0e
Author: Youquan Song <youquan.song@intel.com>
Date:   Thu Jul 11 21:15:57 2013 -0400

    ata: Fix DVD not dectected at some platform with Wellsburg PCH
    
    commit eac27f04a71e1f39f196f7e520d16dcefc955d77 upstream.
    
    There is a patch b55f84e2d527182e7c611d466cd0bb6ddce201de "ata_piix: Fix DVD
     not dectected at some Haswell platforms" to fix an issue of DVD not
    recognized on Haswell Desktop platform with Lynx Point.
    Recently, it is also found the same issue at some platformas with Wellsburg PCH.
    
    So deliver a similar patch to fix it by disables 32bit PIO in IDE mode.
    
    Signed-off-by: Youquan Song <youquan.song@intel.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8dd6177dc6b51ab26f79e5ec8b67bd28d3cbfa76
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Fri Jul 12 11:01:37 2013 -0700

    ALSA: hda - Add new GPU codec ID to snd-hda
    
    commit d52392b1a80458c0510810789c7db4a39b88022a upstream.
    
    Vendor ID 0x10de0060 is used by a yet-to-be-named GPU chip.
    
    Reviewed-by: Andy Ritger <aritger@nvidia.com>
    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a35561fe3af2036c1833f5a21a93cfb8d76070b7
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Mon Jul 16 17:10:04 2012 -0700

    ALSA: hda - Add new GPU codec ID to snd-hda
    
    commit 7ae48b56f8d9c836259bc02f3e2ea4962d6b5d1b upstream.
    
    Vendor ID 0x10de0051 is used by a yet-to-be-named GPU chip.
    
    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
    Acked-by: Andy Ritger <aritger@nvidia.com>
    Reviewed-by: Daniel Dadap <ddadap@nvidia.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4bcfe68e7e4db75b1ec8d3668f04c435ff98b809
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 18:02:38 2013 +0200

    staging: line6: Fix unlocked snd_pcm_stop() call
    
    commit 86f0b5b86d142b9323432fef078a6cf0fb5dda74 upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8ac7e3f3ac405c3cc4feee6a09b9b2899ec61aea
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 18:00:25 2013 +0200

    ASoC: s6000: Fix unlocked snd_pcm_stop() call
    
    commit 61be2b9a18ec70f3cbe3deef7a5f77869c71b5ae upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Acked-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 272f254b2719720e8a2de1d2baec234a35ea8a8f
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 17:59:33 2013 +0200

    ALSA: pxa2xx: Fix unlocked snd_pcm_stop() call
    
    commit 46f6c1aaf790be9ea3c8ddfc8f235a5f677d08e2 upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Acked-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e93a7f00a3db345c0e2c5ab1570b4d6fec77173b
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 17:58:47 2013 +0200

    ALSA: usx2y: Fix unlocked snd_pcm_stop() call
    
    commit 5be1efb4c2ed79c3d7c0cbcbecae768377666e84 upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a4d0e7c132a92025f7c3dd7cf96bc763799ef2de
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 17:58:25 2013 +0200

    ALSA: ua101: Fix unlocked snd_pcm_stop() call
    
    commit 9538aa46c2427d6782aa10036c4da4c541605e0e upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Acked-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 87b49e0cc4e75c2d1018bc3e74459ba14916ae74
Author: Chih-Chung Chang <chihchung@chromium.org>
Date:   Mon Jul 15 09:38:46 2013 -0700

    ASoC: max98088 - fix element type of the register cache.
    
    commit cb6f66a2d278e57a6c9d8fb59bd9ebd8ab3965c2 upstream.
    
    The registers of max98088 are 8 bits, not 16 bits. This bug causes the
    contents of registers to be overwritten with bad values when the codec
    is suspended and then resumed.
    
    Signed-off-by: Chih-Chung Chang <chihchung@chromium.org>
    Signed-off-by: Dylan Reid <dgreid@chromium.org>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 28518ed66242869c1b04ab40d4e84ce5fedb0c56
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 17:57:55 2013 +0200

    ALSA: 6fire: Fix unlocked snd_pcm_stop() call
    
    commit 5b9ab3f7324a1b94a5a5a76d44cf92dfeb3b5e80 upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 53fcffc423f4f56269533c2b82f96295019a6f58
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 17:56:56 2013 +0200

    ALSA: atiixp: Fix unlocked snd_pcm_stop() call
    
    commit cc7282b8d5abbd48c81d1465925d464d9e3eaa8f upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c0a05a14a4e78eba5f3ce15e227d9e805d43909f
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 11 17:55:57 2013 +0200

    ALSA: asihpi: Fix unlocked snd_pcm_stop() call
    
    commit 60478295d6876619f8f47f6d1a5c25eaade69ee3 upstream.
    
    snd_pcm_stop() must be called in the PCM substream lock context.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0501dddbfcb620bdec29e9acbdceb0915d0078cf
Author: Huang Rui <ray.huang@amd.com>
Date:   Thu Jun 27 01:08:11 2013 +0800

    usb: dwc3: fix wrong bit mask in dwc3_event_type
    
    commit 1974d494dea05ea227cb42f5e918828801e237aa upstream.
    
    Per dwc3 2.50a spec, the is_devspec bit is used to distinguish the
    Device Endpoint-Specific Event or Device-Specific Event (DEVT). If the
    bit is 1, the event is represented Device-Specific Event, then use
    [7:1] bits as Device Specific Event to marked the type. It has 7 bits,
    and we can see the reserved8_31 variable name which means from 8 to 31
    bits marked reserved, actually there are 24 bits not 25 bits between
    that. And 1 + 7 + 24 = 32, the event size is 4 byes.
    
    So in dwc3_event_type, the bit mask should be:
    is_devspec	[0]		1  bit
    type		[7:1]		7  bits
    reserved8_31	[31:8]		24 bits
    
    This patch should be backported to kernels as old as 3.2, that contain
    the commit 72246da40f3719af3bfd104a2365b32537c27d83 "usb: Introduce
    DesignWare USB3 DRD Driver".
    
    Signed-off-by: Huang Rui <ray.huang@amd.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2adb61e3ee2f0767375413c671a50b666918fec9
Author: Felipe Balbi <balbi@ti.com>
Date:   Mon Jul 15 12:36:35 2013 +0300

    usb: dwc3: gadget: don't prevent gadget from being probed if we fail
    
    commit cdcedd6981194e511cc206887db661d016069d68 upstream.
    
    In case we fail our ->udc_start() callback, we
    should be ready to accept another modprobe following
    the failed one.
    
    We had forgotten to clear dwc->gadget_driver back
    to NULL and, because of that, we were preventing
    gadget driver modprobe from being retried.
    
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 3e75362130f7535081b1e72911404d5f9030df82
Author: Toshi Kani <toshi.kani@hp.com>
Date:   Wed Jul 10 10:47:13 2013 -0600

    ACPI / memhotplug: Fix a stale pointer in error path
    
    commit d19f503e22316a84c39bc19445e0e4fdd49b3532 upstream.
    
    device->driver_data needs to be cleared when releasing its data,
    mem_device, in an error path of acpi_memory_device_add().
    
    The function evaluates the _CRS of memory device objects, and fails
    when it gets an unexpected resource or cannot allocate memory.  A
    kernel crash or data corruption may occur when the kernel accesses
    the stale pointer.
    
    Signed-off-by: Toshi Kani <toshi.kani@hp.com>
    Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 07b6cb2dd21301a73441a3098514fe44df9caf78
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Jul 13 00:40:35 2013 -0400

    ext4: don't allow ext4_free_blocks() to fail due to ENOMEM
    
    commit e7676a704ee0a1ef71a6b23760b5a8f6896cb1a1 upstream.
    
    The filesystem should not be marked inconsistent if ext4_free_blocks()
    is not able to allocate memory.  Unfortunately some callers (most
    notably ext4_truncate) don't have a way to reflect an error back up to
    the VFS.  And even if we did, most userspace applications won't deal
    with most system calls returning ENOMEM anyway.
    
    Reported-by: Nagachandra P <nagachandra@gmail.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7f9fd38136b10b94338a9ae1b2d14830f444974e
Author: David Jeffery <djeffery@redhat.com>
Date:   Wed Jul 10 13:19:50 2013 -0400

    lockd: protect nlm_blocked access in nlmsvc_retry_blocked
    
    commit 1c327d962fc420aea046c16215a552710bde8231 upstream.
    
    In nlmsvc_retry_blocked, the check that the list is non-empty and acquiring
    the pointer of the first entry is unprotected by any lock.  This allows a rare
    race condition when there is only one entry on the list.  A function such as
    nlmsvc_grant_callback() can be called, which will temporarily remove the entry
    from the list.  Between the list_empty() and list_entry(),the list may become
    empty, causing an invalid pointer to be used as an nlm_block, leading to a
    possible crash.
    
    This patch adds the nlm_block_lock around these calls to prevent concurrent
    use of the nlm_blocked list.
    
    This was a regression introduced by
    f904be9cc77f361d37d71468b13ff3d1a1823dea  "lockd: Mostly remove BKL from
    the server".
    
    Cc: Bryan Schumaker <bjschuma@netapp.com>
    Signed-off-by: David Jeffery <djeffery@redhat.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 4e36209d42a6a0ecff2fefddadf64985d6d005e5
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Thu Jul 4 20:01:03 2013 -0300

    ASoC: sglt5000: Fix SGTL5000_PLL_FRAC_DIV_MASK
    
    commit 5c78dfe87ea04b501ee000a7f03b9432ac9d008c upstream.
    
    SGTL5000_PLL_FRAC_DIV_MASK is used to mask bits 0-10 (11 bits in total) of
    register CHIP_PLL_CTRL, so fix the mask to accomodate all this bit range.
    
    Reported-by: Oskar Schirmer <oskar@scara.com>
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 95d909e86710aa3f055812b7134c4a568c38fc4c
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Thu Jul 4 20:01:02 2013 -0300

    ASoC: sglt5000: Fix the default value of CHIP_SSS_CTRL
    
    commit 016fcab8ff46fca29375d484226ec91932aa4a07 upstream.
    
    According to the sgtl5000 reference manual, the default value of CHIP_SSS_CTRL
    is 0x10.
    
    Reported-by: Oskar Schirmer <oskar@scara.com>
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    [bwh: Backported to 3.2: format of register defaults array is different]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 9371cadbbcc7c00c81753b9727b19fb3bc74d458
Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date:   Wed Jan 23 16:54:32 2013 -0500

    xen/blkback: Check for insane amounts of request on the ring (v6).
    
    commit 8e3f8755545cc4a7f4da8e9ef76d6d32e0dca576 upstream.
    
    Check that the ring does not have an insane amount of requests
    (more than there could fit on the ring).
    
    If we detect this case we will stop processing the requests
    and wait until the XenBus disconnects the ring.
    
    The existing check RING_REQUEST_CONS_OVERFLOW which checks for how
    many responses we have created in the past (rsp_prod_pvt) vs
    requests consumed (req_cons) and whether said difference is greater or
    equal to the size of the ring, does not catch this case.
    
    Wha the condition does check if there is a need to process more
    as we still have a backlog of responses to finish. Note that both
    of those values (rsp_prod_pvt and req_cons) are not exposed on the
    shared ring.
    
    To understand this problem a mini crash course in ring protocol
    response/request updates is in place.
    
    There are four entries: req_prod and rsp_prod; req_event and rsp_event
    to track the ring entries. We are only concerned about the first two -
    which set the tone of this bug.
    
    The req_prod is a value incremented by frontend for each request put
    on the ring. Conversely the rsp_prod is a value incremented by the backend
    for each response put on the ring (rsp_prod gets set by rsp_prod_pvt when
    pushing the responses on the ring).  Both values can
    wrap and are modulo the size of the ring (in block case that is 32).
    Please see RING_GET_REQUEST and RING_GET_RESPONSE for the more details.
    
    The culprit here is that if the difference between the
    req_prod and req_cons is greater than the ring size we have a problem.
    Fortunately for us, the '__do_block_io_op' loop:
    
    	rc = blk_rings->common.req_cons;
    	rp = blk_rings->common.sring->req_prod;
    
    	while (rc != rp) {
    
    		..
    		blk_rings->common.req_cons = ++rc; /* before make_response() */
    
    	}
    
    will loop up to the point when rc == rp. The macros inside of the
    loop (RING_GET_REQUEST) is smart and is indexing based on the modulo
    of the ring size. If the frontend has provided a bogus req_prod value
    we will loop until the 'rc == rp' - which means we could be processing
    already processed requests (or responses) often.
    
    The reason the RING_REQUEST_CONS_OVERFLOW is not helping here is
    b/c it only tracks how many responses we have internally produced
    and whether we would should process more. The astute reader will
    notice that the macro RING_REQUEST_CONS_OVERFLOW provides two
    arguments - more on this later.
    
    For example, if we were to enter this function with these values:
    
           	blk_rings->common.sring->req_prod =  X+31415 (X is the value from
    		the last time __do_block_io_op was called).
            blk_rings->common.req_cons = X
            blk_rings->common.rsp_prod_pvt = X
    
    The RING_REQUEST_CONS_OVERFLOW(&blk_rings->common, blk_rings->common.req_cons)
    is doing:
    
    	req_cons - rsp_prod_pvt >= 32
    
    Which is,
    	X - X >= 32 or 0 >= 32
    
    And that is false, so we continue on looping (this bug).
    
    If we re-use said macro RING_REQUEST_CONS_OVERFLOW and pass in the rp
    instead (sring->req_prod) of rc, the this macro can do the check:
    
         req_prod - rsp_prov_pvt >= 32
    
    Which is,
           X + 31415 - X >= 32 , or 31415 >= 32
    
    which is true, so we can error out and break out of the function.
    
    Unfortunatly the difference between rsp_prov_pvt and req_prod can be
    at 32 (which would error out in the macro). This condition exists when
    the backend is lagging behind with the responses and still has not finished
    responding to all of them (so make_response has not been called), and
    the rsp_prov_pvt + 32 == req_cons. This ends up with us not being able
    to use said macro.
    
    Hence introducing a new macro called RING_REQUEST_PROD_OVERFLOW which does
    a simple check of:
    
        req_prod - rsp_prod_pvt > RING_SIZE
    
    And with the X values from above:
    
       X + 31415 - X > 32
    
    Returns true. Also not that if the ring is full (which is where
    the RING_REQUEST_CONS_OVERFLOW triggered), we would not hit the
    same condition:
    
       X + 32 - X > 32
    
    Which is false.
    
    Lets use that macro.
    Note that in v5 of this patchset the macro was different - we used an
    earlier version.
    
    [v1: Move the check outside the loop]
    [v2: Add a pr_warn as suggested by David]
    [v3: Use RING_REQUEST_CONS_OVERFLOW as suggested by Jan]
    [v4: Move wake_up after kthread_stop as suggested by Jan]
    [v5: Use RING_REQUEST_PROD_OVERFLOW instead]
    [v6: Use RING_REQUEST_PROD_OVERFLOW - Jan's version]
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 79c4d036e08cdcd9403047a37cbc9e37b5ee86b4
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Jun 17 15:16:33 2013 -0400

    xen/io/ring.h: new macro to detect whether there are too many requests on the ring
    
    commit 8d9256906a97c24e97e016482b9be06ea2532b05 upstream.
    
    Backends may need to protect themselves against an insane number of
    produced requests stored by a frontend, in case they iterate over
    requests until reaching the req_prod value. There can't be more
    requests on the ring than the difference between produced requests
    and produced (but possibly not yet published) responses.
    
    This is a more strict alternative to a patch previously posted by
    Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c006981f6002083822d16a865f4d767e218ea001
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Thu May 30 21:10:37 2013 -0400

    tracing: Use current_uid() for critical time tracing
    
    commit f17a5194859a82afe4164e938b92035b86c55794 upstream.
    
    The irqsoff tracer records the max time that interrupts are disabled.
    There are hooks in the assembly code that calls back into the tracer when
    interrupts are disabled or enabled.
    
    When they are enabled, the tracer checks if the amount of time they
    were disabled is larger than the previous recorded max interrupts off
    time. If it is, it creates a snapshot of the currently running trace
    to store where the last largest interrupts off time was held and how
    it happened.
    
    During testing, this RCU lockdep dump appeared:
    
    [ 1257.829021] ===============================
    [ 1257.829021] [ INFO: suspicious RCU usage. ]
    [ 1257.829021] 3.10.0-rc1-test+ #171 Tainted: G        W
    [ 1257.829021] -------------------------------
    [ 1257.829021] /home/rostedt/work/git/linux-trace.git/include/linux/rcupdate.h:780 rcu_read_lock() used illegally while idle!
    [ 1257.829021]
    [ 1257.829021] other info that might help us debug this:
    [ 1257.829021]
    [ 1257.829021]
    [ 1257.829021] RCU used illegally from idle CPU!
    [ 1257.829021] rcu_scheduler_active = 1, debug_locks = 0
    [ 1257.829021] RCU used illegally from extended quiescent state!
    [ 1257.829021] 2 locks held by trace-cmd/4831:
    [ 1257.829021]  #0:  (max_trace_lock){......}, at: [<ffffffff810e2b77>] stop_critical_timing+0x1a3/0x209
    [ 1257.829021]  #1:  (rcu_read_lock){.+.+..}, at: [<ffffffff810dae5a>] __update_max_tr+0x88/0x1ee
    [ 1257.829021]
    [ 1257.829021] stack backtrace:
    [ 1257.829021] CPU: 3 PID: 4831 Comm: trace-cmd Tainted: G        W    3.10.0-rc1-test+ #171
    [ 1257.829021] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS SDBLI944.86P 05/08/2007
    [ 1257.829021]  0000000000000001 ffff880065f49da8 ffffffff8153dd2b ffff880065f49dd8
    [ 1257.829021]  ffffffff81092a00 ffff88006bd78680 ffff88007add7500 0000000000000003
    [ 1257.829021]  ffff88006bd78680 ffff880065f49e18 ffffffff810daebf ffffffff810dae5a
    [ 1257.829021] Call Trace:
    [ 1257.829021]  [<ffffffff8153dd2b>] dump_stack+0x19/0x1b
    [ 1257.829021]  [<ffffffff81092a00>] lockdep_rcu_suspicious+0x109/0x112
    [ 1257.829021]  [<ffffffff810daebf>] __update_max_tr+0xed/0x1ee
    [ 1257.829021]  [<ffffffff810dae5a>] ? __update_max_tr+0x88/0x1ee
    [ 1257.829021]  [<ffffffff811002b9>] ? user_enter+0xfd/0x107
    [ 1257.829021]  [<ffffffff810dbf85>] update_max_tr_single+0x11d/0x12d
    [ 1257.829021]  [<ffffffff811002b9>] ? user_enter+0xfd/0x107
    [ 1257.829021]  [<ffffffff810e2b15>] stop_critical_timing+0x141/0x209
    [ 1257.829021]  [<ffffffff8109569a>] ? trace_hardirqs_on+0xd/0xf
    [ 1257.829021]  [<ffffffff811002b9>] ? user_enter+0xfd/0x107
    [ 1257.829021]  [<ffffffff810e3057>] time_hardirqs_on+0x2a/0x2f
    [ 1257.829021]  [<ffffffff811002b9>] ? user_enter+0xfd/0x107
    [ 1257.829021]  [<ffffffff8109550c>] trace_hardirqs_on_caller+0x16/0x197
    [ 1257.829021]  [<ffffffff8109569a>] trace_hardirqs_on+0xd/0xf
    [ 1257.829021]  [<ffffffff811002b9>] user_enter+0xfd/0x107
    [ 1257.829021]  [<ffffffff810029b4>] do_notify_resume+0x92/0x97
    [ 1257.829021]  [<ffffffff8154bdca>] int_signal+0x12/0x17
    
    What happened was entering into the user code, the interrupts were enabled
    and a max interrupts off was recorded. The trace buffer was saved along with
    various information about the task: comm, pid, uid, priority, etc.
    
    The uid is recorded with task_uid(tsk). But this is a macro that uses rcu_read_lock()
    to retrieve the data, and this happened to happen where RCU is blind (user_enter).
    
    As only the preempt and irqs off tracers can have this happen, and they both
    only have the tsk == current, if tsk == current, use current_uid() instead of
    task_uid(), as current_uid() does not use RCU as only current can change its uid.
    
    This fixes the RCU suspicious splat.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 72925fa9b85b0501a4e96c5066af3214292d36d2
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Jul 8 15:59:40 2013 -0700

    fanotify: info leak in copy_event_to_user()
    
    commit de1e0c40aceb9d5bff09c3a3b97b2f1b178af53f upstream.
    
    The ->reserved field isn't cleared so we leak one byte of stack
    information to userspace.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: Eric Paris <eparis@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c3fe4b664a77815a91cf51f298708a9f66a7d637
Author: Andi Kleen <andi@firstfloor.org>
Date:   Mon Sep 3 20:50:30 2012 +0200

    Fix incorrect memset in bnx2fc_parse_fcp_rsp
    
    commit 16da05b1158d1bcb31656e636a8736a663b1cf1f upstream.
    
    gcc 4.8 warns because the memset only clears sizeof(char *) bytes, not
    the whole buffer. Use the correct buffer size and clear the whole sense
    buffer.
    
    /backup/lsrc/git/linux-lto-2.6/drivers/scsi/bnx2fc/bnx2fc_io.c: In
    function 'bnx2fc_parse_fcp_rsp':
    /backup/lsrc/git/linux-lto-2.6/drivers/scsi/bnx2fc/bnx2fc_io.c:1810:41:
    warning: argument to 'sizeof' in 'memset' call is the same expression as
    the destination; did you mean to provide an explicit length?
    [-Wsizeof-pointer-memaccess]
       memset(sc_cmd->sense_buffer, 0, sizeof(sc_cmd->sense_buffer));
                                             ^
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit f5615a4ebd1ac0709a44e5fd2f638005919d71ac
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Tue Jul 9 13:19:18 2013 +0300

    virtio_net: fix race in RX VQ processing
    
    commit cbdadbbf0c790f79350a8f36029208944c5487d0 upstream.
    
    virtio net called virtqueue_enable_cq on RX path after napi_complete, so
    with NAPI_STATE_SCHED clear - outside the implicit napi lock.
    This violates the requirement to synchronize virtqueue_enable_cq wrt
    virtqueue_add_buf.  In particular, used event can move backwards,
    causing us to lose interrupts.
    In a debug build, this can trigger panic within START_USE.
    
    Jason Wang reports that he can trigger the races artificially,
    by adding udelay() in virtqueue_enable_cb() after virtio_mb().
    
    However, we must call napi_complete to clear NAPI_STATE_SCHED before
    polling the virtqueue for used buffers, otherwise napi_schedule_prep in
    a callback will fail, causing us to lose RX events.
    
    To fix, call virtqueue_enable_cb_prepare with NAPI_STATE_SCHED
    set (under napi lock), later call virtqueue_poll with
    NAPI_STATE_SCHED clear (outside the lock).
    
    Reported-by: Jason Wang <jasowang@redhat.com>
    Tested-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [wg: Backported to 3.2]
    Signed-off-by: Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 1e079ec5c16199e63c9c5e0e346a0fdf47681f32
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Tue Jul 9 13:19:18 2013 +0300

    virtio: support unlocked queue poll
    
    commit cc229884d3f77ec3b1240e467e0236c3e0647c0c upstream.
    
    This adds a way to check ring empty state after enable_cb outside any
    locks. Will be used by virtio_net.
    
    Note: there's room for more optimization: caller is likely to have a
    memory barrier already, which means we might be able to get rid of a
    barrier here.  Deferring this optimization until we do some
    benchmarking.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [wg: Backported to 3.2]
    Signed-off-by: Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 2f92512982ce9672ec70838ac7f2eea4fdb1d534
Author: Dave Kleikamp <dave.kleikamp@oracle.com>
Date:   Tue Jun 18 09:05:36 2013 -0500

    sparc: tsb must be flushed before tlb
    
    commit 23a01138efe216f8084cfaa74b0b90dd4b097441 upstream.
    
    This fixes a race where a cpu may re-load a tlb from a stale tsb right
    after it has been flushed by a remote function call.
    
    I still see some instability when stressing the system with parallel
    kernel builds while creating memory pressure by writing to
    /proc/sys/vm/nr_hugepages, but this patch improves the stability
    significantly.
    
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Acked-by: Bob Picco <bob.picco@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5d231ecea4c70ae9fc9f44a0fd8ea593e7e98986
Author: bob picco <bpicco@meloft.net>
Date:   Tue Jun 11 14:54:51 2013 -0400

    sparc64 address-congruence property
    
    commit 771a37ff4d80b80db3b0df3e7696f14b298c67b7 upstream.
    
    The Machine Description (MD) property "address-congruence-offset" is
    optional. According to the MD specification the value is assumed 0UL when
    not present. This caused early boot failure on T5.
    
    Signed-off-by: Bob Picco <bob.picco@oracle.com>
    CC: sparclinux@vger.kernel.org
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d28828aae0b1de13f4ec6d036276da7f01bd03a7
Author: Olivier DANET <odanet@caramail.com>
Date:   Wed Jul 10 13:56:10 2013 -0700

    sparc32: vm_area_struct access for old Sun SPARCs.
    
    commit 961246b4ed8da3bcf4ee1eb9147f341013553e3c upstream.
    
    Commit e4c6bfd2d79d063017ab19a18915f0bc759f32d9 ("mm: rearrange
    vm_area_struct for fewer cache misses") changed the layout of the
    vm_area_struct structure, it broke several SPARC32 assembly routines
    which used numerical constants for accessing the vm_mm field.
    
    This patch defines the VMA_VM_MM constant to replace the immediate values.
    
    Signed-off-by: Olivier DANET <odanet@caramail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit ff3599bb956435966cf801d25e6c047502f3165a
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Jul 18 09:35:10 2013 -0700

    vlan: fix a race in egress prio management
    
    [ Upstream commit 3e3aac497513c669e1c62c71e1d552ea85c1d974 ]
    
    egress_priority_map[] hash table updates are protected by rtnl,
    and we never remove elements until device is dismantled.
    
    We have to make sure that before inserting an new element in hash table,
    all its fields are committed to memory or else another cpu could
    find corrupt values and crash.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Patrick McHardy <kaber@trash.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 729c5244dac355ca8c81f402739c218cc3212a10
Author: Neil Horman <nhorman@tuxdriver.com>
Date:   Tue Jul 16 10:49:41 2013 -0400

    atl1e: unmap partially mapped skb on dma error and free skb
    
    [ Upstream commit 584ec4355355ffac43571b02a314d43eb2f7fcbf ]
    
    Ben Hutchings pointed out that my recent update to atl1e
    in commit 352900b583b2852152a1e05ea0e8b579292e731e
    ("atl1e: fix dma mapping warnings") was missing a bit of code.
    
    Specifically it reset the hardware tx ring to its origional state when
    we hit a dma error, but didn't unmap any exiting mappings from the
    operation.  This patch fixes that up.  It also remembers to free the
    skb in the event that an error occurs, so we don't leak.  Untested, as
    I don't have hardware.  I think its pretty straightforward, but please
    review closely.
    
    Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
    CC: Ben Hutchings <bhutchings@solarflare.com>
    CC: Jay Cliburn <jcliburn@gmail.com>
    CC: Chris Snook <chris.snook@gmail.com>
    CC: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 70513e78db3910edc5ba74ca5f31f6e619acac97
Author: Neil Horman <nhorman@tuxdriver.com>
Date:   Fri Jul 12 10:58:48 2013 -0400

    atl1e: fix dma mapping warnings
    
    [ Upstream commit 352900b583b2852152a1e05ea0e8b579292e731e ]
    
    Recently had this backtrace reported:
    WARNING: at lib/dma-debug.c:937 check_unmap+0x47d/0x930()
    Hardware name: System Product Name
    ATL1E 0000:02:00.0: DMA-API: device driver failed to check map error[device
    address=0x00000000cbfd1000] [size=90 bytes] [mapped as single]
    Modules linked in: xt_conntrack nf_conntrack ebtable_filter ebtables
    ip6table_filter ip6_tables snd_hda_codec_hdmi snd_hda_codec_realtek iTCO_wdt
    iTCO_vendor_support snd_hda_intel acpi_cpufreq mperf coretemp btrfs zlib_deflate
    snd_hda_codec snd_hwdep microcode raid6_pq libcrc32c snd_seq usblp serio_raw xor
    snd_seq_device joydev snd_pcm snd_page_alloc snd_timer snd lpc_ich i2c_i801
    soundcore mfd_core atl1e asus_atk0110 ata_generic pata_acpi radeon i2c_algo_bit
    drm_kms_helper ttm drm i2c_core pata_marvell uinput
    Pid: 314, comm: systemd-journal Not tainted 3.9.0-0.rc6.git2.3.fc19.x86_64 #1
    Call Trace:
     <IRQ>  [<ffffffff81069106>] warn_slowpath_common+0x66/0x80
     [<ffffffff8106916c>] warn_slowpath_fmt+0x4c/0x50
     [<ffffffff8138151d>] check_unmap+0x47d/0x930
     [<ffffffff810ad048>] ? sched_clock_cpu+0xa8/0x100
     [<ffffffff81381a2f>] debug_dma_unmap_page+0x5f/0x70
     [<ffffffff8137ce30>] ? unmap_single+0x20/0x30
     [<ffffffffa01569a1>] atl1e_intr+0x3a1/0x5b0 [atl1e]
     [<ffffffff810d53fd>] ? trace_hardirqs_off+0xd/0x10
     [<ffffffff81119636>] handle_irq_event_percpu+0x56/0x390
     [<ffffffff811199ad>] handle_irq_event+0x3d/0x60
     [<ffffffff8111cb6a>] handle_fasteoi_irq+0x5a/0x100
     [<ffffffff8101c36f>] handle_irq+0xbf/0x150
     [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
     [<ffffffff81073b10>] ? irq_enter+0x50/0xa0
     [<ffffffff8172738d>] do_IRQ+0x4d/0xc0
     [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
     [<ffffffff8171c6b2>] common_interrupt+0x72/0x72
     <EOI>  [<ffffffff810db5b2>] ? lock_release+0xc2/0x310
     [<ffffffff8109ea04>] lg_local_unlock_cpu+0x24/0x50
     [<ffffffff811dcb2f>] file_sb_list_del+0x3f/0x50
     [<ffffffff811dcb6d>] fput+0x2d/0xc0
     [<ffffffff811d8ea1>] filp_close+0x61/0x90
     [<ffffffff811fae4d>] __close_fd+0x8d/0x150
     [<ffffffff811d8ef0>] sys_close+0x20/0x50
     [<ffffffff81725699>] system_call_fastpath+0x16/0x1b
    
    The usual straighforward failure to check for dma_mapping_error after a map
    operation is completed.
    
    This patch should fix it, the reporter wandered off after filing this bz:
    https://bugzilla.redhat.com/show_bug.cgi?id=954170
    
    and I don't have hardware to test, but the fix is pretty straightforward, so I
    figured I'd post it for review.
    
    Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
    CC: Jay Cliburn <jcliburn@gmail.com>
    CC: Chris Snook <chris.snook@gmail.com>
    CC: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit e7622858946a8b67f9821a1154e431f745f64043
Author: dingtianhong <dingtianhong@huawei.com>
Date:   Thu Jul 11 19:04:06 2013 +0800

    ifb: fix oops when loading the ifb failed
    
    [ Upstream commit f2966cd5691058b8674a20766525bedeaea9cbcf ]
    
    If __rtnl_link_register() return faild when loading the ifb, it will
    take the wrong path and get oops, so fix it just like dummy.
    
    Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 8de1483c61c900d6ed6a42340f60185226d4a47e
Author: dingtianhong <dingtianhong@huawei.com>
Date:   Thu Jul 11 19:04:02 2013 +0800

    dummy: fix oops when loading the dummy failed
    
    [ Upstream commit 2c8a01894a12665d8059fad8f0a293c98a264121 ]
    
    We rename the dummy in modprobe.conf like this:
    
    install dummy0 /sbin/modprobe -o dummy0 --ignore-install dummy
    install dummy1 /sbin/modprobe -o dummy1 --ignore-install dummy
    
    We got oops when we run the command:
    
    modprobe dummy0
    modprobe dummy1
    
    ------------[ cut here ]------------
    
    [ 3302.187584] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    [ 3302.195411] IP: [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
    [ 3302.201844] PGD 85c94a067 PUD 8517bd067 PMD 0
    [ 3302.206305] Oops: 0002 [#1] SMP
    [ 3302.299737] task: ffff88105ccea300 ti: ffff880eba4a0000 task.ti: ffff880eba4a0000
    [ 3302.307186] RIP: 0010:[<ffffffff813fe62a>]  [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
    [ 3302.316044] RSP: 0018:ffff880eba4a1dd8  EFLAGS: 00010246
    [ 3302.321332] RAX: 0000000000000000 RBX: ffffffff81a9d738 RCX: 0000000000000002
    [ 3302.328436] RDX: 0000000000000000 RSI: ffffffffa04d602c RDI: ffff880eba4a1dd8
    [ 3302.335541] RBP: ffff880eba4a1e18 R08: dead000000200200 R09: dead000000100100
    [ 3302.342644] R10: 0000000000000080 R11: 0000000000000003 R12: ffffffff81a9d788
    [ 3302.349748] R13: ffffffffa04d7020 R14: ffffffff81a9d670 R15: ffff880eba4a1dd8
    [ 3302.364910] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 3302.370630] CR2: 0000000000000008 CR3: 000000085e15e000 CR4: 00000000000427e0
    [ 3302.377734] DR0: 0000000000000003 DR1: 00000000000000b0 DR2: 0000000000000001
    [ 3302.384838] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 3302.391940] Stack:
    [ 3302.393944]  ffff880eba4a1dd8 ffff880eba4a1dd8 ffff880eba4a1e18 ffffffffa04d70c0
    [ 3302.401350]  00000000ffffffef ffffffffa01a8000 0000000000000000 ffffffff816111c8
    [ 3302.408758]  ffff880eba4a1e48 ffffffffa01a80be ffff880eba4a1e48 ffffffffa04d70c0
    [ 3302.416164] Call Trace:
    [ 3302.418605]  [<ffffffffa01a8000>] ? 0xffffffffa01a7fff
    [ 3302.423727]  [<ffffffffa01a80be>] dummy_init_module+0xbe/0x1000 [dummy0]
    [ 3302.430405]  [<ffffffffa01a8000>] ? 0xffffffffa01a7fff
    [ 3302.435535]  [<ffffffff81000322>] do_one_initcall+0x152/0x1b0
    [ 3302.441263]  [<ffffffff810ab24b>] do_init_module+0x7b/0x200
    [ 3302.446824]  [<ffffffff810ad3d2>] load_module+0x4e2/0x530
    [ 3302.452215]  [<ffffffff8127ae40>] ? ddebug_dyndbg_boot_param_cb+0x60/0x60
    [ 3302.458979]  [<ffffffff810ad5f1>] SyS_init_module+0xd1/0x130
    [ 3302.464627]  [<ffffffff814b9652>] system_call_fastpath+0x16/0x1b
    [ 3302.490090] RIP  [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
    [ 3302.496607]  RSP <ffff880eba4a1dd8>
    [ 3302.500084] CR2: 0000000000000008
    [ 3302.503466] ---[ end trace 8342d49cd49f78ed ]---
    
    The reason is that when loading dummy, if __rtnl_link_register() return failed,
    the init_module should return and avoid take the wrong path.
    
    Signed-off-by: Tan Xiaojun <tanxiaojun@huawei.com>
    Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit d83fa942367c29e74bba9320391cee03099a0329
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Thu Jul 11 13:16:54 2013 -0400

    9p: fix off by one causing access violations and memory corruption
    
    [ Upstream commit 110ecd69a9feea82a152bbf9b12aba57e6396883 ]
    
    p9_release_pages() would attempt to dereference one value past the end of
    pages[]. This would cause the following crashes:
    
    [ 6293.171817] BUG: unable to handle kernel paging request at ffff8807c96f3000
    [ 6293.174146] IP: [<ffffffff8412793b>] p9_release_pages+0x3b/0x60
    [ 6293.176447] PGD 79c5067 PUD 82c1e3067 PMD 82c197067 PTE 80000007c96f3060
    [ 6293.180060] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    [ 6293.180060] Modules linked in:
    [ 6293.180060] CPU: 62 PID: 174043 Comm: modprobe Tainted: G        W    3.10.0-next-20130710-sasha #3954
    [ 6293.180060] task: ffff8807b803b000 ti: ffff880787dde000 task.ti: ffff880787dde000
    [ 6293.180060] RIP: 0010:[<ffffffff8412793b>]  [<ffffffff8412793b>] p9_release_pages+0x3b/0x60
    [ 6293.214316] RSP: 0000:ffff880787ddfc28  EFLAGS: 00010202
    [ 6293.214316] RAX: 0000000000000001 RBX: ffff8807c96f2ff8 RCX: 0000000000000000
    [ 6293.222017] RDX: ffff8807b803b000 RSI: 0000000000000001 RDI: ffffea001c7e3d40
    [ 6293.222017] RBP: ffff880787ddfc48 R08: 0000000000000000 R09: 0000000000000000
    [ 6293.222017] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000001
    [ 6293.222017] R13: 0000000000000001 R14: ffff8807cc50c070 R15: ffff8807cc50c070
    [ 6293.222017] FS:  00007f572641d700(0000) GS:ffff8807f3600000(0000) knlGS:0000000000000000
    [ 6293.256784] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 6293.256784] CR2: ffff8807c96f3000 CR3: 00000007c8e81000 CR4: 00000000000006e0
    [ 6293.256784] Stack:
    [ 6293.256784]  ffff880787ddfcc8 ffff880787ddfcc8 0000000000000000 ffff880787ddfcc8
    [ 6293.256784]  ffff880787ddfd48 ffffffff84128be8 ffff880700000002 0000000000000001
    [ 6293.256784]  ffff8807b803b000 ffff880787ddfce0 0000100000000000 0000000000000000
    [ 6293.256784] Call Trace:
    [ 6293.256784]  [<ffffffff84128be8>] p9_virtio_zc_request+0x598/0x630
    [ 6293.256784]  [<ffffffff8115c610>] ? wake_up_bit+0x40/0x40
    [ 6293.256784]  [<ffffffff841209b1>] p9_client_zc_rpc+0x111/0x3a0
    [ 6293.256784]  [<ffffffff81174b78>] ? sched_clock_cpu+0x108/0x120
    [ 6293.256784]  [<ffffffff84122a21>] p9_client_read+0xe1/0x2c0
    [ 6293.256784]  [<ffffffff81708a90>] v9fs_file_read+0x90/0xc0
    [ 6293.256784]  [<ffffffff812bd073>] vfs_read+0xc3/0x130
    [ 6293.256784]  [<ffffffff811a78bd>] ? trace_hardirqs_on+0xd/0x10
    [ 6293.256784]  [<ffffffff812bd5a2>] SyS_read+0x62/0xa0
    [ 6293.256784]  [<ffffffff841a1a00>] tracesys+0xdd/0xe2
    [ 6293.256784] Code: 66 90 48 89 fb 41 89 f5 48 8b 3f 48 85 ff 74 29 85 f6 74 25 45 31 e4 66 0f 1f 84 00 00 00 00 00 e8 eb 14 12 fd 41 ff c4 49 63 c4 <48> 8b 3c c3 48 85 ff 74 05 45 39 e5 75 e7 48 83 c4 08 5b 41 5c
    [ 6293.256784] RIP  [<ffffffff8412793b>] p9_release_pages+0x3b/0x60
    [ 6293.256784]  RSP <ffff880787ddfc28>
    [ 6293.256784] CR2: ffff8807c96f3000
    [ 6293.256784] ---[ end trace 50822ee72cd360fc ]---
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit c96536a2445c72c89276d2e92e698a7f40935cd2
Author: Jason Wang <jasowang@redhat.com>
Date:   Wed Jul 10 13:43:28 2013 +0800

    macvtap: correctly linearize skb when zerocopy is used
    
    [ Upstream commit 61d46bf979d5cd7c164709a80ad5676a35494aae ]
    
    Userspace may produce vectors greater than MAX_SKB_FRAGS. When we try to
    linearize parts of the skb to let the rest of iov to be fit in
    the frags, we need count copylen into linear when calling macvtap_alloc_skb()
    instead of partly counting it into data_len. Since this breaks
    zerocopy_sg_from_iovec() since its inner counter assumes nr_frags should
    be zero at beginning. This cause nr_frags to be increased wrongly without
    setting the correct frags.
    
    This bug were introduced from b92946e2919134ebe2a4083e4302236295ea2a73
    (macvtap: zerocopy: validate vectors before building skb).
    
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b51c3427e95bc9484ed3bb60a48ab334c6857e9c
Author: dingtianhong <dingtianhong@huawei.com>
Date:   Wed Jul 10 12:04:02 2013 +0800

    ifb: fix rcu_sched self-detected stalls
    
    [ Upstream commit 440d57bc5ff55ec1efb3efc9cbe9420b4bbdfefa ]
    
    According to the commit 16b0dc29c1af9df341428f4c49ada4f626258082
    (dummy: fix rcu_sched self-detected stalls)
    
    Eric Dumazet fix the problem in dummy, but the ifb will occur the
    same problem like the dummy modules.
    
    Trying to "modprobe ifb numifbs=30000" triggers :
    
    INFO: rcu_sched self-detected stall on CPU
    
    After this splat, RTNL is locked and reboot is needed.
    
    We must call cond_resched() to avoid this, even holding RTNL.
    
    Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit bb99c9900545e3323c61aa912034b8e955e1f344
Author: Dave Kleikamp <dave.kleikamp@oracle.com>
Date:   Mon Jul 1 16:49:22 2013 -0500

    sunvnet: vnet_port_remove must call unregister_netdev
    
    [ Upstream commit aabb9875d02559ab9b928cd6f259a5cc4c21a589 ]
    
    The missing call to unregister_netdev() leaves the interface active
    after the driver is unloaded by rmmod.
    
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit dfb3cd694c1aba2ad5deae7c84efc3f336e6a19a
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Tue Jul 2 08:04:05 2013 +0200

    ipv6: ip6_append_data_mtu did not care about pmtudisc and frag_size
    
    [ Upstream commit 75a493e60ac4bbe2e977e7129d6d8cbb0dd236be ]
    
    If the socket had an IPV6_MTU value set, ip6_append_data_mtu lost track
    of this when appending the second frame on a corked socket. This results
    in the following splat:
    
    [37598.993962] ------------[ cut here ]------------
    [37598.994008] kernel BUG at net/core/skbuff.c:2064!
    [37598.994008] invalid opcode: 0000 [#1] SMP
    [37598.994008] Modules linked in: tcp_lp uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core videodev media vfat fat usb_storage fuse ebtable_nat xt_CHECKSUM bridge stp llc ipt_MASQUERADE nf_conntrack_netbios_ns nf_conntrack_broadcast ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 iptable_nat
    +nf_nat_ipv4 nf_nat iptable_mangle nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ebtable_filter ebtables ip6table_filter ip6_tables be2iscsi iscsi_boot_sysfs bnx2i cnic uio cxgb4i cxgb4 cxgb3i cxgb3 mdio libcxgbi ib_iser rdma_cm ib_addr iw_cm ib_cm ib_sa ib_mad ib_core iscsi_tcp libiscsi_tcp libiscsi
    +scsi_transport_iscsi rfcomm bnep iTCO_wdt iTCO_vendor_support snd_hda_codec_conexant arc4 iwldvm mac80211 snd_hda_intel acpi_cpufreq mperf coretemp snd_hda_codec microcode cdc_wdm cdc_acm
    [37598.994008]  snd_hwdep cdc_ether snd_seq snd_seq_device usbnet mii joydev btusb snd_pcm bluetooth i2c_i801 e1000e lpc_ich mfd_core ptp iwlwifi pps_core snd_page_alloc mei cfg80211 snd_timer thinkpad_acpi snd tpm_tis soundcore rfkill tpm tpm_bios vhost_net tun macvtap macvlan kvm_intel kvm uinput binfmt_misc
    +dm_crypt i915 i2c_algo_bit drm_kms_helper drm i2c_core wmi video
    [37598.994008] CPU 0
    [37598.994008] Pid: 27320, comm: t2 Not tainted 3.9.6-200.fc18.x86_64 #1 LENOVO 27744PG/27744PG
    [37598.994008] RIP: 0010:[<ffffffff815443a5>]  [<ffffffff815443a5>] skb_copy_and_csum_bits+0x325/0x330
    [37598.994008] RSP: 0018:ffff88003670da18  EFLAGS: 00010202
    [37598.994008] RAX: ffff88018105c018 RBX: 0000000000000004 RCX: 00000000000006c0
    [37598.994008] RDX: ffff88018105a6c0 RSI: ffff88018105a000 RDI: ffff8801e1b0aa00
    [37598.994008] RBP: ffff88003670da78 R08: 0000000000000000 R09: ffff88018105c040
    [37598.994008] R10: ffff8801e1b0aa00 R11: 0000000000000000 R12: 000000000000fff8
    [37598.994008] R13: 00000000000004fc R14: 00000000ffff0504 R15: 0000000000000000
    [37598.994008] FS:  00007f28eea59740(0000) GS:ffff88023bc00000(0000) knlGS:0000000000000000
    [37598.994008] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [37598.994008] CR2: 0000003d935789e0 CR3: 00000000365cb000 CR4: 00000000000407f0
    [37598.994008] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [37598.994008] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [37598.994008] Process t2 (pid: 27320, threadinfo ffff88003670c000, task ffff88022c162ee0)
    [37598.994008] Stack:
    [37598.994008]  ffff88022e098a00 ffff88020f973fc0 0000000000000008 00000000000004c8
    [37598.994008]  ffff88020f973fc0 00000000000004c4 ffff88003670da78 ffff8801e1b0a200
    [37598.994008]  0000000000000018 00000000000004c8 ffff88020f973fc0 00000000000004c4
    [37598.994008] Call Trace:
    [37598.994008]  [<ffffffff815fc21f>] ip6_append_data+0xccf/0xfe0
    [37598.994008]  [<ffffffff8158d9f0>] ? ip_copy_metadata+0x1a0/0x1a0
    [37598.994008]  [<ffffffff81661f66>] ? _raw_spin_lock_bh+0x16/0x40
    [37598.994008]  [<ffffffff8161548d>] udpv6_sendmsg+0x1ed/0xc10
    [37598.994008]  [<ffffffff812a2845>] ? sock_has_perm+0x75/0x90
    [37598.994008]  [<ffffffff815c3693>] inet_sendmsg+0x63/0xb0
    [37598.994008]  [<ffffffff812a2973>] ? selinux_socket_sendmsg+0x23/0x30
    [37598.994008]  [<ffffffff8153a450>] sock_sendmsg+0xb0/0xe0
    [37598.994008]  [<ffffffff810135d1>] ? __switch_to+0x181/0x4a0
    [37598.994008]  [<ffffffff8153d97d>] sys_sendto+0x12d/0x180
    [37598.994008]  [<ffffffff810dfb64>] ? __audit_syscall_entry+0x94/0xf0
    [37598.994008]  [<ffffffff81020ed1>] ? syscall_trace_enter+0x231/0x240
    [37598.994008]  [<ffffffff8166a7e7>] tracesys+0xdd/0xe2
    [37598.994008] Code: fe 07 00 00 48 c7 c7 04 28 a6 81 89 45 a0 4c 89 4d b8 44 89 5d a8 e8 1b ac b1 ff 44 8b 5d a8 4c 8b 4d b8 8b 45 a0 e9 cf fe ff ff <0f> 0b 66 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 48
    [37598.994008] RIP  [<ffffffff815443a5>] skb_copy_and_csum_bits+0x325/0x330
    [37598.994008]  RSP <ffff88003670da18>
    [37599.007323] ---[ end trace d69f6a17f8ac8eee ]---
    
    While there, also check if path mtu discovery is activated for this
    socket. The logic was adapted from ip6_append_data when first writing
    on the corked socket.
    
    This bug was introduced with commit
    0c1833797a5a6ec23ea9261d979aa18078720b74 ("ipv6: fix incorrect ipsec
    fragment").
    
    v2:
    a) Replace IPV6_PMTU_DISC_DO with IPV6_PMTUDISC_PROBE.
    b) Don't pass ipv6_pinfo to ip6_append_data_mtu (suggestion by Gao
       feng, thanks!).
    c) Change mtu to unsigned int, else we get a warning about
       non-matching types because of the min()-macro type-check.
    
    Acked-by: Gao feng <gaofeng@cn.fujitsu.com>
    Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 5d14d39515e0149b5fcd319e4409d8304e7688c7
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Mon Jul 1 20:21:30 2013 +0200

    ipv6: call udp_push_pending_frames when uncorking a socket with AF_INET pending data
    
    [ Upstream commit 8822b64a0fa64a5dd1dfcf837c5b0be83f8c05d1 ]
    
    We accidentally call down to ip6_push_pending_frames when uncorking
    pending AF_INET data on a ipv6 socket. This results in the following
    splat (from Dave Jones):
    
    skbuff: skb_under_panic: text:ffffffff816765f6 len:48 put:40 head:ffff88013deb6df0 data:ffff88013deb6dec tail:0x2c end:0xc0 dev:<NULL>
    ------------[ cut here ]------------
    kernel BUG at net/core/skbuff.c:126!
    invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    Modules linked in: dccp_ipv4 dccp 8021q garp bridge stp dlci mpoa snd_seq_dummy sctp fuse hidp tun bnep nfnetlink scsi_transport_iscsi rfcomm can_raw can_bcm af_802154 appletalk caif_socket can caif ipt_ULOG x25 rose af_key pppoe pppox ipx phonet irda llc2 ppp_generic slhc p8023 psnap p8022 llc crc_ccitt atm bluetooth
    +netrom ax25 nfc rfkill rds af_rxrpc coretemp hwmon kvm_intel kvm crc32c_intel snd_hda_codec_realtek ghash_clmulni_intel microcode pcspkr snd_hda_codec_hdmi snd_hda_intel snd_hda_codec snd_hwdep usb_debug snd_seq snd_seq_device snd_pcm e1000e snd_page_alloc snd_timer ptp snd pps_core soundcore xfs libcrc32c
    CPU: 2 PID: 8095 Comm: trinity-child2 Not tainted 3.10.0-rc7+ #37
    task: ffff8801f52c2520 ti: ffff8801e6430000 task.ti: ffff8801e6430000
    RIP: 0010:[<ffffffff816e759c>]  [<ffffffff816e759c>] skb_panic+0x63/0x65
    RSP: 0018:ffff8801e6431de8  EFLAGS: 00010282
    RAX: 0000000000000086 RBX: ffff8802353d3cc0 RCX: 0000000000000006
    RDX: 0000000000003b90 RSI: ffff8801f52c2ca0 RDI: ffff8801f52c2520
    RBP: ffff8801e6431e08 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000001 R11: 0000000000000001 R12: ffff88022ea0c800
    R13: ffff88022ea0cdf8 R14: ffff8802353ecb40 R15: ffffffff81cc7800
    FS:  00007f5720a10740(0000) GS:ffff880244c00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000005862000 CR3: 000000022843c000 CR4: 00000000001407e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
    Stack:
     ffff88013deb6dec 000000000000002c 00000000000000c0 ffffffff81a3f6e4
     ffff8801e6431e18 ffffffff8159a9aa ffff8801e6431e90 ffffffff816765f6
     ffffffff810b756b 0000000700000002 ffff8801e6431e40 0000fea9292aa8c0
    Call Trace:
     [<ffffffff8159a9aa>] skb_push+0x3a/0x40
     [<ffffffff816765f6>] ip6_push_pending_frames+0x1f6/0x4d0
     [<ffffffff810b756b>] ? mark_held_locks+0xbb/0x140
     [<ffffffff81694919>] udp_v6_push_pending_frames+0x2b9/0x3d0
     [<ffffffff81694660>] ? udplite_getfrag+0x20/0x20
     [<ffffffff8162092a>] udp_lib_setsockopt+0x1aa/0x1f0
     [<ffffffff811cc5e7>] ? fget_light+0x387/0x4f0
     [<ffffffff816958a4>] udpv6_setsockopt+0x34/0x40
     [<ffffffff815949f4>] sock_common_setsockopt+0x14/0x20
     [<ffffffff81593c31>] SyS_setsockopt+0x71/0xd0
     [<ffffffff816f5d54>] tracesys+0xdd/0xe2
    Code: 00 00 48 89 44 24 10 8b 87 d8 00 00 00 48 89 44 24 08 48 8b 87 e8 00 00 00 48 c7 c7 c0 04 aa 81 48 89 04 24 31 c0 e8 e1 7e ff ff <0f> 0b 55 48 89 e5 0f 0b 55 48 89 e5 0f 0b 55 48 89 e5 0f 0b 55
    RIP  [<ffffffff816e759c>] skb_panic+0x63/0x65
     RSP <ffff8801e6431de8>
    
    This patch adds a check if the pending data is of address family AF_INET
    and directly calls udp_push_ending_frames from udp_v6_push_pending_frames
    if that is the case.
    
    This bug was found by Dave Jones with trinity.
    
    (Also move the initialization of fl6 below the AF_INET check, even if
    not strictly necessary.)
    
    Cc: Dave Jones <davej@redhat.com>
    Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 0c0f762a5bf9aa3839311d99e04a3668c97e675e
Author: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Date:   Tue Jul 2 09:02:07 2013 +0800

    l2tp: add missing .owner to struct pppox_proto
    
    [ Upstream commit e1558a93b61962710733dc8c11a2bc765607f1cd ]
    
    Add missing .owner of struct pppox_proto. This prevents the
    module from being removed from underneath its users.
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 18e6d5497062b3764a19b1f87bd0634a163cce3d
Author: Amerigo Wang <amwang@redhat.com>
Date:   Sat Jun 29 21:30:49 2013 +0800

    ipv6,mcast: always hold idev->lock before mca_lock
    
    [ Upstream commit 8965779d2c0e6ab246c82a405236b1fb2adae6b2, with
      some bits from commit b7b1bfce0bb68bd8f6e62a28295922785cc63781
      ("ipv6: split duplicate address detection and router solicitation timer")
      to get the __ipv6_get_lladdr() used by this patch. ]
    
    dingtianhong reported the following deadlock detected by lockdep:
    
     ======================================================
     [ INFO: possible circular locking dependency detected ]
     3.4.24.05-0.1-default #1 Not tainted
     -------------------------------------------------------
     ksoftirqd/0/3 is trying to acquire lock:
      (&ndev->lock){+.+...}, at: [<ffffffff8147f804>] ipv6_get_lladdr+0x74/0x120
    
     but task is already holding lock:
      (&mc->mca_lock){+.+...}, at: [<ffffffff8149d130>] mld_send_report+0x40/0x150
    
     which lock already depends on the new lock.
    
     the existing dependency chain (in reverse order) is:
    
     -> #1 (&mc->mca_lock){+.+...}:
            [<ffffffff810a8027>] validate_chain+0x637/0x730
            [<ffffffff810a8417>] __lock_acquire+0x2f7/0x500
            [<ffffffff810a8734>] lock_acquire+0x114/0x150
            [<ffffffff814f691a>] rt_spin_lock+0x4a/0x60
            [<ffffffff8149e4bb>] igmp6_group_added+0x3b/0x120
            [<ffffffff8149e5d8>] ipv6_mc_up+0x38/0x60
            [<ffffffff81480a4d>] ipv6_find_idev+0x3d/0x80
            [<ffffffff81483175>] addrconf_notify+0x3d5/0x4b0
            [<ffffffff814fae3f>] notifier_call_chain+0x3f/0x80
            [<ffffffff81073471>] raw_notifier_call_chain+0x11/0x20
            [<ffffffff813d8722>] call_netdevice_notifiers+0x32/0x60
            [<ffffffff813d92d4>] __dev_notify_flags+0x34/0x80
            [<ffffffff813d9360>] dev_change_flags+0x40/0x70
            [<ffffffff813ea627>] do_setlink+0x237/0x8a0
            [<ffffffff813ebb6c>] rtnl_newlink+0x3ec/0x600
            [<ffffffff813eb4d0>] rtnetlink_rcv_msg+0x160/0x310
            [<ffffffff814040b9>] netlink_rcv_skb+0x89/0xb0
            [<ffffffff813eb357>] rtnetlink_rcv+0x27/0x40
            [<ffffffff81403e20>] netlink_unicast+0x140/0x180
            [<ffffffff81404a9e>] netlink_sendmsg+0x33e/0x380
            [<ffffffff813c4252>] sock_sendmsg+0x112/0x130
            [<ffffffff813c537e>] __sys_sendmsg+0x44e/0x460
            [<ffffffff813c5544>] sys_sendmsg+0x44/0x70
            [<ffffffff814feab9>] system_call_fastpath+0x16/0x1b
    
     -> #0 (&ndev->lock){+.+...}:
            [<ffffffff810a798e>] check_prev_add+0x3de/0x440
            [<ffffffff810a8027>] validate_chain+0x637/0x730
            [<ffffffff810a8417>] __lock_acquire+0x2f7/0x500
            [<ffffffff810a8734>] lock_acquire+0x114/0x150
            [<ffffffff814f6c82>] rt_read_lock+0x42/0x60
            [<ffffffff8147f804>] ipv6_get_lladdr+0x74/0x120
            [<ffffffff8149b036>] mld_newpack+0xb6/0x160
            [<ffffffff8149b18b>] add_grhead+0xab/0xc0
            [<ffffffff8149d03b>] add_grec+0x3ab/0x460
            [<ffffffff8149d14a>] mld_send_report+0x5a/0x150
            [<ffffffff8149f99e>] igmp6_timer_handler+0x4e/0xb0
            [<ffffffff8105705a>] call_timer_fn+0xca/0x1d0
            [<ffffffff81057b9f>] run_timer_softirq+0x1df/0x2e0
            [<ffffffff8104e8c7>] handle_pending_softirqs+0xf7/0x1f0
            [<ffffffff8104ea3b>] __do_softirq_common+0x7b/0xf0
            [<ffffffff8104f07f>] __thread_do_softirq+0x1af/0x210
            [<ffffffff8104f1c1>] run_ksoftirqd+0xe1/0x1f0
            [<ffffffff8106c7de>] kthread+0xae/0xc0
            [<ffffffff814fff74>] kernel_thread_helper+0x4/0x10
    
    actually we can just hold idev->lock before taking pmc->mca_lock,
    and avoid taking idev->lock again when iterating idev->addr_list,
    since the upper callers of mld_newpack() already take
    read_lock_bh(&idev->lock).
    
    Reported-by: dingtianhong <dingtianhong@huawei.com>
    Cc: dingtianhong <dingtianhong@huawei.com>
    Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Tested-by: Ding Tianhong <dingtianhong@huawei.com>
    Tested-by: Chen Weilong <chenweilong@huawei.com>
    Signed-off-by: Cong Wang <amwang@redhat.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 82a2ab7f349ff50db0670eb4e998c439ce6bfb64
Author: Changli Gao <xiaosuo@gmail.com>
Date:   Sat Jun 29 00:15:51 2013 +0800

    net: Swap ver and type in pppoe_hdr
    
    [ Upstream commit b1a5a34bd0b8767ea689e68f8ea513e9710b671e ]
    
    Ver and type in pppoe_hdr should be swapped as defined by RFC2516
    section-4.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 665e982a9be4a79d8c85f6855ce7463d756101a0
Author: Dave Jones <davej@redhat.com>
Date:   Fri Jun 28 12:13:52 2013 -0400

    x25: Fix broken locking in ioctl error paths.
    
    [ Upstream commit 4ccb93ce7439b63c31bc7597bfffd13567fa483d ]
    
    Two of the x25 ioctl cases have error paths that break out of the function without
    unlocking the socket, leading to this warning:
    
    ================================================
    [ BUG: lock held when returning to user space! ]
    3.10.0-rc7+ #36 Not tainted
    ------------------------------------------------
    trinity-child2/31407 is leaving the kernel with locks still held!
    1 lock held by trinity-child2/31407:
     #0:  (sk_lock-AF_X25){+.+.+.}, at: [<ffffffffa024b6da>] x25_ioctl+0x8a/0x740 [x25]
    
    Signed-off-by: Dave Jones <davej@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit cbdcfcd320e5847c8edde45848562aebb1f01f90
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Fri Jun 28 02:37:42 2013 -0700

    neighbour: fix a race in neigh_destroy()
    
    [ Upstream commit c9ab4d85de222f3390c67aedc9c18a50e767531e ]
    
    There is a race in neighbour code, because neigh_destroy() uses
    skb_queue_purge(&neigh->arp_queue) without holding neighbour lock,
    while other parts of the code assume neighbour rwlock is what
    protects arp_queue
    
    Convert all skb_queue_purge() calls to the __skb_queue_purge() variant
    
    Use __skb_queue_head_init() instead of skb_queue_head_init()
    to make clear we do not use arp_queue.lock
    
    And hold neigh->lock in neigh_destroy() to close the race.
    
    Reported-by: Joe Jin <joe.jin@oracle.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 694c73ea108919b72b689a20c218c4249f0fbffb
Author: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date:   Fri Jun 21 01:12:21 2013 +0400

    sh_eth: fix unhandled RFE interrupt
    
    [ Upstream commit ca8c35852138ee0585eaffe6b9f10a5261ea7771 ]
    
    EESR.RFE (receive FIFO overflow) interrupt is enabled by the driver on all SoCs
    and sh_eth_error() handles it but it's not present in any initializer/assignment
    of the 'eesr_err_check' field of 'struct sh_eth_cpu_data'. This leads to that
    interrupt not being handled and cleared, and finally to disabling IRQ and the
    driver being non-functional.
    
    Modify DEFAULT_EESR_ERR_CHECK macro and all explicit initializers of the above
    mentioned field to contain the EESR.RFE bit. Remove useless backslashes from the
    initializers, while at it.
    
    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 31bd7d1943f42c22850bb3bc6a7dd89fc4cf9b08
Author: Mathias Krause <minipli@googlemail.com>
Date:   Wed Jun 26 23:52:30 2013 +0200

    af_key: fix info leaks in notify messages
    
    [ Upstream commit a5cc68f3d63306d0d288f31edfc2ae6ef8ecd887 ]
    
    key_notify_sa_flush() and key_notify_policy_flush() miss to initialize
    the sadb_msg_reserved member of the broadcasted message and thereby
    leak 2 bytes of heap memory to listeners. Fix that.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit a7cdf6bc2abd64f94622fe12a1a212a07a316a83
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jun 26 04:15:07 2013 -0700

    ipv6: ip6_sk_dst_check() must not assume ipv6 dst
    
    [ Upstream commit a963a37d384d71ad43b3e9e79d68d42fbe0901f3 ]
    
    It's possible to use AF_INET6 sockets and to connect to an IPv4
    destination. After this, socket dst cache is a pointer to a rtable,
    not rt6_info.
    
    ip6_sk_dst_check() should check the socket dst cache is IPv6, or else
    various corruptions/crashes can happen.
    
    Dave Jones can reproduce immediate crash with
    trinity -q -l off -n -c sendmsg -c connect
    
    With help from Hannes Frederic Sowa
    
    Reported-by: Dave Jones <davej@redhat.com>
    Reported-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 34a3c5bb43d7acc16d9a6d65d4b7d963060c5ca8
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Sun Jun 23 17:26:58 2013 +0300

    macvtap: fix recovery from gup errors
    
    [ Upstream commit 4c7ab054ab4f5d63625508ed6f8a607184cae7c2 ]
    
    get user pages might fail partially in macvtap zero copy
    mode. To recover we need to put all pages that we got,
    but code used a wrong index resulting in double-free
    errors.
    
    Reported-by: Brad Hubbard <bhubbard@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit 7d854d8b7d7eb9994259b8edc414baccd697ae8a
Author: Gao feng <gaofeng@cn.fujitsu.com>
Date:   Sun Jun 16 11:14:30 2013 +0800

    ipv6: don't call addrconf_dst_alloc again when enable lo
    
    [ Upstream commit a881ae1f625c599b460cc8f8a7fcb1c438f699ad ]
    
    If we disable all of the net interfaces, and enable
    un-lo interface before lo interface, we already allocated
    the addrconf dst in ipv6_add_addr. So we shouldn't allocate
    it again when we enable lo interface.
    
    Otherwise the message below will be triggered.
    unregister_netdevice: waiting for sit1 to become free. Usage count = 1
    
    This problem is introduced by commit 25fb6ca4ed9cad72f14f61629b68dc03c0d9713f
    "net IPv6 : Fix broken IPv6 routing table after loopback down-up"
    
    Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

commit b14bf7d412c63595f3f26f669437286b873e11a7
Author: Linus Lüssing <linus.luessing@web.de>
Date:   Sun Jun 16 23:20:34 2013 +0200

    bridge: fix switched interval for MLD Query types
    
    [ Upstream commit 32de868cbc6bee010d2cee95b5071b25ecbec8c3 ]
    
    General Queries (the one with the Multicast Address field
    set to zero / '::') are supposed to have a Maximum Response Delay
    of [Query Response Interval], while for Multicast-Address-Specific
    Queries it is [Last Listener Query Interval] - not the other way
    round. (see RFC2710, section 7.3+7.8)
    
    Signed-off-by: Linus Lüssing <linus.luessing@web.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>