commit 399abb8918aa5cef74a1d5c582bc7c08c8c99757
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Oct 7 08:32:45 2012 -0700

    Linux 3.4.13

commit ead94148559d54f0aae235dda91dfb98dfb1eae7
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Aug 24 09:08:41 2012 +0000

    SCSI: scsi_dh_alua: Enable STPG for unavailable ports
    
    commit e47f8976d8e573928824a06748f7bc82c58d747f upstream.
    
    A quote from SPC-4: "While in the unavailable primary target port
    asymmetric access state, the device server shall support those of
    the following commands that it supports while in the active/optimized
    state: [ ... ] d) SET TARGET PORT GROUPS; [ ... ]". Hence enable
    sending STPG to a target port group that is in the unavailable state.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
    Acked-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8d54c01874da4e548a531b77a29c21236ce8a31
Author: Dan Williams <djbw@fb.com>
Date:   Tue Aug 28 22:12:10 2012 -0700

    SCSI: scsi_remove_target: fix softlockup regression on hot remove
    
    commit bc3f02a795d3b4faa99d37390174be2a75d091bd upstream.
    
    John reports:
     BUG: soft lockup - CPU#2 stuck for 23s! [kworker/u:8:2202]
     [..]
     Call Trace:
      [<ffffffff8141782a>] scsi_remove_target+0xda/0x1f0
      [<ffffffff81421de5>] sas_rphy_remove+0x55/0x60
      [<ffffffff81421e01>] sas_rphy_delete+0x11/0x20
      [<ffffffff81421e35>] sas_port_delete+0x25/0x160
      [<ffffffff814549a3>] mptsas_del_end_device+0x183/0x270
    
    ...introduced by commit 3b661a9 "[SCSI] fix hot unplug vs async scan race".
    
    Don't restart lookup of more stargets in the multi-target case, just
    arrange to traverse the list once, on the assumption that new targets
    are always added at the end.  There is no guarantee that the target will
    change state in scsi_target_reap() so we can end up spinning if we
    restart.
    
    Acked-by: Jack Wang <jack_wang@usish.com>
    LKML-Reference: <CAEhu1-6wq1YsNiscGMwP4ud0Q+MrViRzv=kcWCQSBNc8c68N5Q@mail.gmail.com>
    Reported-by: John Drescher <drescherjm@gmail.com>
    Tested-by: John Drescher <drescherjm@gmail.com>
    Signed-off-by: Dan Williams <djbw@fb.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a3bb116ee8ab2f912fdb6d2af40028b15825151
Author: Avi Kivity <avi@redhat.com>
Date:   Wed Aug 22 13:03:48 2012 +0300

    x86/alternatives: Fix p6 nops on non-modular kernels
    
    commit cb09cad44f07044d9810f18f6f9a6a6f3771f979 upstream.
    
    Probably a leftover from the early days of self-patching, p6nops
    are marked __initconst_or_module, which causes them to be
    discarded in a non-modular kernel.  If something later triggers
    patching, it will overwrite kernel code with garbage.
    
    Reported-by: Tomas Racek <tracek@redhat.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Cc: Michael Tokarev <mjt@tls.msk.ru>
    Cc: Borislav Petkov <borislav.petkov@amd.com>
    Cc: Marcelo Tosatti <mtosatti@redhat.com>
    Cc: qemu-devel@nongnu.org
    Cc: Anthony Liguori <anthony@codemonkey.ws>
    Cc: H. Peter Anvin <hpa@linux.intel.com>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Cc: Alan Cox <alan@linux.intel.com>
    Link: http://lkml.kernel.org/r/5034AE84.90708@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Ben Jencks <ben@bjencks.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4d4dc33a372aaee2205d4506b4c7ead6275067d
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Jun 22 11:31:14 2012 -0700

    isci: fix isci_pci_probe() generates warning on efi failure path
    
    commit 6d70a74ffd616073a68ae0974d98819bfa8e6da6 upstream.
    
    The oem parameter image embedded in the efi variable is at an offset
    from the start of the variable.  However, in the failure path we try to
    free the 'orom' pointer which is only valid when the paramaters are
    being read from the legacy option-rom space.
    
    Since failure to load the oem parameters is unlikely and we keep the
    memory around in the success case just defer all de-allocation to devm.
    
    Reported-by: Don Morris <don.morris@hp.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22fb582405002812d8fb89d0ed1264e97d3d25ad
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Aug 24 10:29:11 2012 +0000

    IB/srp: Avoid having aborted requests hang
    
    commit d8536670916a685df116b5c2cb256573fd25e4e3 upstream.
    
    We need to call scsi_done() for commands after we abort them.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Acked-by: David Dillow <dillowda@ornl.gov>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e4765fd9c0f8df577e0b8cbea927c2051710f27
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Aug 24 10:27:54 2012 +0000

    IB/srp: Fix use-after-free in srp_reset_req()
    
    commit 9b796d06d5d1b1e85ae2316a283ea11dd739ef96 upstream.
    
    srp_free_req() uses the scsi_cmnd structure contents to unmap
    buffers, so we must invoke srp_free_req() before we release
    ownership of that structure.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Acked-by: David Dillow <dillowda@ornl.gov>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 350f3edb0a05c340853c75f4c5007a72ebd9e32f
Author: Patrick McHardy <kaber@trash.net>
Date:   Thu Aug 30 07:01:30 2012 +0000

    IPoIB: Fix use-after-free of multicast object
    
    commit bea1e22df494a729978e7f2c54f7bda328f74bc3 upstream.
    
    Fix a crash in ipoib_mcast_join_task().  (with help from Or Gerlitz)
    
    Commit c8c2afe360b7 ("IPoIB: Use rtnl lock/unlock when changing device
    flags") added a call to rtnl_lock() in ipoib_mcast_join_task(), which
    is run from the ipoib_workqueue, and hence the workqueue can't be
    flushed from the context of ipoib_stop().
    
    In the current code, ipoib_stop() (which doesn't flush the workqueue)
    calls ipoib_mcast_dev_flush(), which goes and deletes all the
    multicast entries.  This takes place without any synchronization with
    a possible running instance of ipoib_mcast_join_task() for the same
    ipoib device, leading to a crash due to NULL pointer dereference.
    
    Fix this by making sure that the workqueue is flushed before
    ipoib_mcast_dev_flush() is called.  To make that possible, we move the
    RTNL-lock wrapped code to ipoib_mcast_join_finish().
    
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cbc7a8263c6e2d8f7354b4c06e21607d6dffd6bd
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Sep 25 10:01:56 2012 +0300

    remoteproc: fix a potential NULL-dereference on cleanup
    
    commit 7168d914a782086e217214c57ddfc7cc4b738c0c upstream.
    
    We only need to allocate mapping if there is an IOMMU domain.
    
    Otherwise, when the mappings are released, the assumption that
    an IOMMU domain is there will crash and burn.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    [ohad: revise commit log]
    Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abe988511dc075dab47ba9283c791299f7285aaa
Author: Ohad Ben-Cohen <ohad@wizery.com>
Date:   Sun Sep 30 10:25:34 2012 +0200

    remoteproc: select VIRTIO to avoid build breakage
    
    commit 2ed6d29c725c4aead510b5c23f563795b265acf5 upstream.
    
    drivers/built-in.o: In function `rproc_virtio_finalize_features':
    remoteproc_virtio.c:(.text+0x2f9a02): undefined reference to `vring_transport_features'
    drivers/built-in.o: In function `rproc_virtio_del_vqs':
    remoteproc_virtio.c:(.text+0x2f9a74): undefined reference to `vring_del_virtqueue'
    drivers/built-in.o: In function `rproc_virtio_find_vqs':
    remoteproc_virtio.c:(.text+0x2f9c44): undefined reference to `vring_new_virtqueue'
    drivers/built-in.o: In function `rproc_add_virtio_dev':
    (.text+0x2f9e2c): undefined reference to `register_virtio_device'
    drivers/built-in.o: In function `rproc_vq_interrupt':
    (.text+0x2f9db7): undefined reference to `vring_interrupt'
    drivers/built-in.o: In function `rproc_remove_virtio_dev':
    (.text+0x2f9e9f): undefined reference to `unregister_virtio_device'
    
    Reported-by: Randy Dunlap <rdunlap@xenotime.net>
    Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f0c5909d4cf6016c536fceddd5ca7bded0e5219
Author: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Date:   Fri Sep 21 15:09:47 2012 +0800

    can: mscan-mpc5xxx: fix return value check in mpc512x_can_get_clock()
    
    commit f61bd0585dfc7d99db4936d7467de4ca8e2f7ea0 upstream.
    
    In case of error, the function clk_get() returns ERR_PTR()
    and never returns NULL pointer. The NULL test in the error
    handling should be replaced with IS_ERR().
    
    dpatch engine is used to auto generated this patch.
    (https://github.com/weiyj/dpatch)
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Acked-by: Wolfgang Grandegger <wg@grandegger.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b5c87e0163ad33aabb1a725b0b5444a7e0b5c73
Author: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Date:   Thu Jul 26 11:34:10 2012 -0500

    SCSI: hpsa: Use LUN reset instead of target reset
    
    commit 21e89afd325849eb38adccf382df16cc895911f9 upstream.
    
    It turns out Smart Array logical drives do not support target
    reset and when the target reset fails, the logical drive will
    be taken off line.  Symptoms look like this:
    
    hpsa 0000:03:00.0: Abort request on C1:B0:T0:L0
    hpsa 0000:03:00.0: resetting device 1:0:0:0
    hpsa 0000:03:00.0: cp ffff880037c56000 is reported invalid (probably means target device no longer present)
    hpsa 0000:03:00.0: resetting device failed.
    sd 1:0:0:0: Device offlined - not ready after error recovery
    sd 1:0:0:0: rejecting I/O to offline device
    EXT3-fs error (device sdb1): read_block_bitmap:
    
    LUN reset is supported though, and is what we should be using.
    Target reset is also disruptive in shared SAS situations,
    for example, an external MSA1210m which does support target
    reset attached to Smart Arrays in multiple hosts -- a target
    reset from one host is disruptive to other hosts as all LUNs
    on the target will be reset and will abort all outstanding i/os
    back to all the attached hosts.  So we should use LUN reset,
    not target reset.
    
    Tested this with Smart Array logical drives and with tape drives.
    Not sure how this bug survived since 2009, except it must be very
    rare for a Smart Array to require more than 30s to complete a request.
    
    Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54ce2fb86f0b78808c7fcc1d581ebbf15ca36e91
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Mon Jul 30 11:33:05 2012 +1000

    SCSI: ibmvscsi: Fix host config length field overflow
    
    commit 225c56960fcafeccc2b6304f96cd3f0dbf42a16a upstream.
    
    The length field in the host config packet is only 16-bit long, so
    passing it 0x10000 (64K which is our standard PAGE_SIZE) doesn't
    work and result in an empty config from the server.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Acked-by: Robert Jennings <rcj@linux.vnet.ibm.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d0fcfec4c491eb3c815929be5512ae8d1886553
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Aug 27 11:38:13 2012 -0700

    Yama: handle 32-bit userspace prctl
    
    commit 2e4930eb7c8fb20a39dfb5f8a8f80402710dcea8 upstream.
    
    When running a 64-bit kernel and receiving prctls from a 32-bit
    userspace, the "-1" used as an unsigned long will end up being
    misdetected. The kernel is looking for 0xffffffffffffffff instead of
    0xffffffff. Since prctl lacks a distinct compat interface, Yama needs
    to handle this translation itself. As such, support either value as
    meaning PR_SET_PTRACER_ANY, to avoid breaking the ABI for 64-bit.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Acked-by: John Johansen <john.johansen@canonical.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56a631f3bf36641133afeb3db7c1ec5721c8dd04
Author: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Date:   Sat Aug 18 14:11:42 2012 +0200

    UBI: fix autoresize handling in R/O mode
    
    commit abb3e01103eb4e2ea5c15e6fedbc74e08bd4cc2b upstream.
    
    Currently UBI fails in autoresize when it is in R/O mode (e.g., because the
    underlying MTD device is R/O). This patch fixes the issue - we just skip
    autoresize and print a warning.
    
    Reported-by: Pali Rohár <pali.rohar@gmail.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1168fb4bf41d55b04c07d82cb5c1e0fde9be3cf9
Author: Russ Gorby <russ.gorby@intel.com>
Date:   Mon Aug 13 13:45:30 2012 +0100

    n_gsm: memory leak in uplink error path
    
    commit 88ed2a60610974443335c924d7cb8e5dcf9dbdc1 upstream.
    
    Uplink (TX) network data will go through gsm_dlci_data_output_framed
    there is a bug where if memory allocation fails, the skb which
    has already been pulled off the list will be lost.
    
    In addition TX skbs were being processed in LIFO order
    
    Fixed the memory leak, and changed to FIFO order processing
    
    Signed-off-by: Russ Gorby <russ.gorby@intel.com>
    Tested-by: Kappel, LaurentX <laurentx.kappel@intel.com>
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 119bd47785006d185e8247f63f44c43eaf345ed9
Author: Russ Gorby <russ.gorby@intel.com>
Date:   Mon Aug 13 13:44:40 2012 +0100

    n_gsm: added interlocking for gsm_data_lock for certain code paths
    
    commit 5e44708f75b0f8712da715d6babb0c21089b2317 upstream.
    
    There were some locking holes in the management of the MUX's
    message queue for 2 code paths:
    1) gsmld_write_wakeup
    2) receipt of CMD_FCON flow-control message
    In both cases gsm_data_kick is called w/o locking so it can collide
    with other other instances of gsm_data_kick (pulling messages tx_tail)
    or potentially other instances of __gsm_data_queu (adding messages to tx_head)
    
    Changed to take the tx_lock in these 2 cases
    
    Signed-off-by: Russ Gorby <russ.gorby@intel.com>
    Tested-by: Yin, Fengwei <fengwei.yin@intel.com>
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0a3c588df225ee719bd82ab303d02f7cc0d5805
Author: Russ Gorby <russ.gorby@intel.com>
Date:   Mon Aug 13 13:43:36 2012 +0100

    n_gsm: uplink SKBs accumulate on list
    
    commit 192b6041e75bb4a2aae73834037038cea139a92d upstream.
    
    gsm_dlci_data_kick will not call any output function if tx_bytes > THRESH_LO
    furthermore it will call the output function only once if tx_bytes == 0
    If the size of the IP writes are on the order of THRESH_LO
    we can get into a situation where skbs accumulate on the outbound list
    being starved for events to call the output function.
    
    gsm_dlci_data_kick now calls the sweep function when tx_bytes==0
    
    Signed-off-by: Russ Gorby <russ.gorby@intel.com>
    Tested-by: Kappel, LaurentX <laurentx.kappel@intel.com>
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e6ef23fbf8c22163602cd52729de2fe370fba8f
Author: xiaojin <jin.xiao@intel.com>
Date:   Mon Aug 13 13:43:15 2012 +0100

    n_gsm.c: Implement 3GPP27.010 DLC start-up procedure in MUX
    
    commit 7e8ac7b23b67416700dfb8b4136a4e81ce675b48 upstream.
    
    In 3GPP27.010 5.8.1, it defined:
    The TE multiplexer initiates the establishment of the multiplexer control channel by sending a SABM frame on DLCI 0 using the procedures of clause 5.4.1.
    Once the multiplexer channel is established other DLCs may be established using the procedures of clause 5.4.1.
    This patch implement 5.8.1 in MUX level, it make sure DLC0 is the first channel to be setup.
    
    [or for those not familiar with the specification: it was possible to try
     and open a data connection while the control channel was not yet fully
     open, which is a spec violation and confuses some modems]
    
    Signed-off-by: xiaojin <jin.xiao@intel.com>
    Tested-by: Yin, Fengwei <fengwei.yin@intel.com>
    [tweaked the order we check things and error code]
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa821c51dc6167556a3dc39fc518754f8650265c
Author: Denys Vlasenko <vda.linux@googlemail.com>
Date:   Wed Sep 26 11:34:50 2012 +1000

    coredump: prevent double-free on an error path in core dumper
    
    commit f34f9d186df35e5c39163444c43b4fc6255e39c5 upstream.
    
    In !CORE_DUMP_USE_REGSET case, if elf_note_info_init fails to allocate
    memory for info->fields, it frees already allocated stuff and returns
    error to its caller, fill_note_info.  Which in turn returns error to its
    caller, elf_core_dump.  Which jumps to cleanup label and calls
    free_note_info, which will happily try to free all info->fields again.
    BOOM.
    
    This is the fix.
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
    Cc: Venu Byravarasu <vbyravarasu@nvidia.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92d9a683c431081038d715585e7da9d953cb09f2
Author: Sujith Manoharan <c_manoha@qualcomm.com>
Date:   Sat Sep 22 00:14:28 2012 +0530

    ath9k: Disable ASPM only for AR9285
    
    commit 046b6802c8d3c8a57448485513bf7291633e0fa3 upstream.
    
    Currently, ASPM is disabled for all WLAN+BT combo chipsets
    when BTCOEX is enabled. This is incorrect since the workaround
    is required only for WB195, which is a AR9285+AR3011 combo
    solution. Fix this by checking for the HW version when enabling
    the workaround.
    
    Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
    Tested-by: Paul Stewart <pstew@chromium.org>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3a63e8c061c486ce46d8d825b3fdd45c14140de
Author: Michael Spang <spang@chromium.org>
Date:   Fri Sep 14 13:05:49 2012 -0400

    Increase XHCI suspend timeout to 16ms
    
    commit a6e097dfdfd189b6929af6efa1d289af61858386 upstream.
    
    The Intel XHCI specification says that after clearing the run/stop bit
    the controller may take up to 16ms to halt. We've seen a device take
    14ms, which with the current timeout of 10ms causes the kernel to
    abort the suspend. Increasing the timeout to the recommended value
    fixes the problem.
    
    This patch should be backported to kernels as old as 2.6.37, that
    contain the commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI:
    PCI power management implementation".
    
    Signed-off-by: Michael Spang <spang@chromium.org>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4f132c4c23d6b822242c98def8be15182c24ff4
Author: Elric Fu <elricfu1@gmail.com>
Date:   Wed Jun 27 16:55:43 2012 +0800

    xHCI: handle command after aborting the command ring
    
    commit b63f4053cc8aa22a98e3f9a97845afe6c15d0a0d upstream.
    
    According to xHCI spec section 4.6.1.1 and section 4.6.1.2,
    after aborting a command on the command ring, xHC will
    generate a command completion event with its completion
    code set to Command Ring Stopped at least. If a command is
    currently executing at the time of aborting a command, xHC
    also generate a command completion event with its completion
    code set to Command Abort. When the command ring is stopped,
    software may remove, add, or rearrage Command Descriptors.
    
    To cancel a command, software will initialize a command
    descriptor for the cancel command, and add it into a
    cancel_cmd_list of xhci. When the command ring is stopped,
    software will find the command trbs described by command
    descriptors in cancel_cmd_list and modify it to No Op
    command. If software can't find the matched trbs, we can
    think it had been finished.
    
    This patch should be backported to kernels as old as 3.0, that contain
    the commit 7ed603ecf8b68ab81f4c83097d3063d43ec73bb8 "xhci: Add an
    assertion to check for virt_dev=0 bug." That commit papers over a NULL
    pointer dereference, and this patch fixes the underlying issue that
    caused the NULL pointer dereference.
    
    Signed-off-by: Elric Fu <elricfu1@gmail.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-by: Miroslav Sabljic <miroslav.sabljic@avl.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75382341d888ba0132c5eeb94711840acf972034
Author: Elric Fu <elricfu1@gmail.com>
Date:   Wed Jun 27 16:31:52 2012 +0800

    xHCI: cancel command after command timeout
    
    commit 6e4468b9a0793dfb53eb80d9fe52c739b13b27fd upstream.
    
    The patch is used to cancel command when the command isn't
    acknowledged and a timeout occurs.
    
    This patch should be backported to kernels as old as 3.0, that contain
    the commit 7ed603ecf8b68ab81f4c83097d3063d43ec73bb8 "xhci: Add an
    assertion to check for virt_dev=0 bug." That commit papers over a NULL
    pointer dereference, and this patch fixes the underlying issue that
    caused the NULL pointer dereference.
    
    Signed-off-by: Elric Fu <elricfu1@gmail.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-by: Miroslav Sabljic <miroslav.sabljic@avl.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2818247b6565b7adfbcd53b74509448a8e1fad84
Author: Elric Fu <elricfu1@gmail.com>
Date:   Wed Jun 27 16:31:12 2012 +0800

    xHCI: add aborting command ring function
    
    commit b92cc66c047ff7cf587b318fe377061a353c120f upstream.
    
    Software have to abort command ring and cancel command
    when a command is failed or hang. Otherwise, the command
    ring will hang up and can't handle the others. An example
    of a command that may hang is the Address Device Command,
    because waiting for a SET_ADDRESS request to be acknowledged
    by a USB device is outside of the xHC's ability to control.
    
    To cancel a command, software will initialize a command
    descriptor for the cancel command, and add it into a
    cancel_cmd_list of xhci.
    
    Sarah: Fixed missing newline on "Have the command ring been stopped?"
    debugging statement.
    
    This patch should be backported to kernels as old as 3.0, that contain
    the commit 7ed603ecf8b68ab81f4c83097d3063d43ec73bb8 "xhci: Add an
    assertion to check for virt_dev=0 bug." That commit papers over a NULL
    pointer dereference, and this patch fixes the underlying issue that
    caused the NULL pointer dereference.
    
    Signed-off-by: Elric Fu <elricfu1@gmail.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-by: Miroslav Sabljic <miroslav.sabljic@avl.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1976fffe9dc839e9d25c903a65723600f7641a50
Author: Elric Fu <elricfu1@gmail.com>
Date:   Wed Jun 27 16:30:57 2012 +0800

    xHCI: add cmd_ring_state
    
    commit c181bc5b5d5c79b71203cd10cef97f802fb6f9c1 upstream.
    
    Adding cmd_ring_state for command ring. It helps to verify
    the current command ring state for controlling the command
    ring operations.
    
    This patch should be backported to kernels as old as 3.0.  The commit
    7ed603ecf8b68ab81f4c83097d3063d43ec73bb8 "xhci: Add an assertion to
    check for virt_dev=0 bug." papers over the NULL pointer dereference that
    I now believe is related to a timed out Set Address command.  This (and
    the four patches that follow it) contain the real fix that also allows
    VIA USB 3.0 hubs to consistently re-enumerate during the plug/unplug
    stress tests.
    
    Signed-off-by: Elric Fu <elricfu1@gmail.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-by: Miroslav Sabljic <miroslav.sabljic@avl.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59b91d284b24d4ec17f917421b169fcb40805544
Author: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Date:   Wed Sep 19 16:27:26 2012 -0700

    xhci: Intel Panther Point BEI quirk.
    
    commit 80fab3b244a22e0ca539d2439bdda50e81e5666f upstream.
    
    When a device with an isochronous endpoint is behind a hub plugged into
    the Intel Panther Point xHCI host controller, and the driver submits
    multiple frames per URB, the xHCI driver will set the Block Event
    Interrupt (BEI) flag on all but the last TD for the URB.  This causes
    the host controller to place an event on the event ring, but not send an
    interrupt.  When the last TD for the URB completes, BEI is cleared, and
    we get an interrupt for the whole URB.
    
    However, under a Panther Point xHCI host controller, if the parent hub
    is unplugged when one or more events from transfers with BEI set are on
    the event ring, a port status change event is placed on the event ring,
    but no interrupt is generated.  This means URBs stop completing, and the
    USB device disconnect is not noticed.  Something like a USB headset will
    cause mplayer to hang when the device is disconnected.
    
    If another transfer is sent (such as running `sudo lsusb -v`), the next
    transfer event seems to "unstick" the event ring, the xHCI driver gets
    an interrupt, and the disconnect is reported to the USB core.
    
    The fix is not to use the BEI flag under the Panther Point xHCI host.
    This will impact power consumption and system responsiveness, because
    the xHCI driver will receive an interrupt for every frame in all
    isochronous URBs instead of once per URB.
    
    Intel chipset developers confirm that this bug will be hit if the BEI
    flag is used on any endpoint, not just ones that are behind a hub.
    
    This patch should be backported to kernels as old as 3.0, that contain
    the commit 69e848c2090aebba5698a1620604c7dccb448684 "Intel xhci: Support
    EHCI/xHCI port switching."
    
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed02004f896be60f6d5dc3af403999f56a3e6d37
Author: Khalid Aziz <khalid.aziz@hp.com>
Date:   Mon Sep 10 12:52:42 2012 -0600

    firmware: Add missing attributes to EFI variable attribute print out from sysfs
    
    commit 7083909023bbe29b3176e92d2d089def1aa7aa1e upstream.
    
    Some of the EFI variable attributes are missing from print out from
    /sys/firmware/efi/vars/*/attributes. This patch adds those in. It also
    updates code to use pre-defined constants for masking current value
    of attributes.
    
    Signed-off-by: Khalid Aziz <khalid.aziz@hp.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Acked-by: Matthew Garrett <mjg@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc8276b241ad415b2602c4a7309e5b518bb09c32
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Wed Sep 26 12:32:02 2012 -0500

    b43legacy: Fix crash on unload when firmware not available
    
    commit 2d838bb608e2d1f6cb4280e76748cb812dc822e7 upstream.
    
    When b43legacy is loaded without the firmware being available, a following
    unload generates a kernel NULL pointer dereference BUG as follows:
    
    [  214.330789] BUG: unable to handle kernel NULL pointer dereference at 0000004c
    [  214.330997] IP: [<c104c395>] drain_workqueue+0x15/0x170
    [  214.331179] *pde = 00000000
    [  214.331311] Oops: 0000 [#1] SMP
    [  214.331471] Modules linked in: b43legacy(-) ssb pcmcia mac80211 cfg80211 af_packet mperf arc4 ppdev sr_mod cdrom sg shpchp yenta_socket pcmcia_rsrc pci_hotplug pcmcia_core battery parport_pc parport floppy container ac button edd autofs4 ohci_hcd ehci_hcd usbcore usb_common thermal processor scsi_dh_rdac scsi_dh_hp_sw scsi_dh_emc scsi_dh_alua scsi_dh fan thermal_sys hwmon ata_generic pata_ali libata [last unloaded: cfg80211]
    [  214.333421] Pid: 3639, comm: modprobe Not tainted 3.6.0-rc6-wl+ #163 Source Technology VIC 9921/ALI Based Notebook
    [  214.333580] EIP: 0060:[<c104c395>] EFLAGS: 00010246 CPU: 0
    [  214.333687] EIP is at drain_workqueue+0x15/0x170
    [  214.333788] EAX: c162ac40 EBX: cdfb8360 ECX: 0000002a EDX: 00002a2a
    [  214.333890] ESI: 00000000 EDI: 00000000 EBP: cd767e7c ESP: cd767e5c
    [  214.333957]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    [  214.333957] CR0: 8005003b CR2: 0000004c CR3: 0c96a000 CR4: 00000090
    [  214.333957] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
    [  214.333957] DR6: ffff0ff0 DR7: 00000400
    [  214.333957] Process modprobe (pid: 3639, ti=cd766000 task=cf802e90 task.ti=cd766000)
    [  214.333957] Stack:
    [  214.333957]  00000292 cd767e74 c12c5e09 00000296 00000296 cdfb8360 cdfb9220 00000000
    [  214.333957]  cd767e90 c104c4fd cdfb8360 cdfb9220 cd682800 cd767ea4 d0c10184 cd682800
    [  214.333957]  cd767ea4 cba31064 cd767eb8 d0867908 cba31064 d087e09c cd96f034 cd767ec4
    [  214.333957] Call Trace:
    [  214.333957]  [<c12c5e09>] ? skb_dequeue+0x49/0x60
    [  214.333957]  [<c104c4fd>] destroy_workqueue+0xd/0x150
    [  214.333957]  [<d0c10184>] ieee80211_unregister_hw+0xc4/0x100 [mac80211]
    [  214.333957]  [<d0867908>] b43legacy_remove+0x78/0x80 [b43legacy]
    [  214.333957]  [<d083654d>] ssb_device_remove+0x1d/0x30 [ssb]
    [  214.333957]  [<c126f15a>] __device_release_driver+0x5a/0xb0
    [  214.333957]  [<c126fb07>] driver_detach+0x87/0x90
    [  214.333957]  [<c126ef4c>] bus_remove_driver+0x6c/0xe0
    [  214.333957]  [<c1270120>] driver_unregister+0x40/0x70
    [  214.333957]  [<d083686b>] ssb_driver_unregister+0xb/0x10 [ssb]
    [  214.333957]  [<d087c488>] b43legacy_exit+0xd/0xf [b43legacy]
    [  214.333957]  [<c1089dde>] sys_delete_module+0x14e/0x2b0
    [  214.333957]  [<c110a4a7>] ? vfs_write+0xf7/0x150
    [  214.333957]  [<c1240050>] ? tty_write_lock+0x50/0x50
    [  214.333957]  [<c110a6f8>] ? sys_write+0x38/0x70
    [  214.333957]  [<c1397c55>] syscall_call+0x7/0xb
    [  214.333957] Code: bc 27 00 00 00 00 a1 74 61 56 c1 55 89 e5 e8 a3 fc ff ff 5d c3 90 55 89 e5 57 56 89 c6 53 b8 40 ac 62 c1 83 ec 14 e8 bb b7 34 00 <8b> 46 4c 8d 50 01 85 c0 89 56 4c 75 03 83 0e 40 80 05 40 ac 62
    [  214.333957] EIP: [<c104c395>] drain_workqueue+0x15/0x170 SS:ESP 0068:cd767e5c
    [  214.333957] CR2: 000000000000004c
    [  214.341110] ---[ end trace c7e90ec026d875a6 ]---Index: wireless-testing/drivers/net/wireless/b43legacy/main.c
    
    The problem is fixed by making certain that the ucode pointer is not NULL
    before deregistering the driver in mac80211.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1eafb0280d1275629da54c350c7d9842f7785577
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Wed Sep 5 14:37:37 2012 -0700

    tools/hv: Check for read/write errors
    
    commit 436473bc2173499ae274d0f50111d1e355006caf upstream.
    
    hv_kvp_daemon currently does not check whether fread() or fwrite()
    succeed.  Add the necessary checks.  Also, remove the incorrect use of
    feof() before fread().
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de5d66e635460e27d678df99f9cb97e263d3bbe7
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Wed Sep 5 14:37:36 2012 -0700

    tools/hv: Fix exit() error code
    
    commit 6bb22fea25624ab593eee376fa5fb82d1b13f45a upstream.
    
    Linux native exit codes are 8-bit unsigned values.  exit(-1) results
    in an exit code of 255, which is usually reserved for shells reporting
    'command not found'.  Use the portable value EXIT_FAILURE.  (Not that
    this matters much for a daemon.)
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37b6d804b3b5e2a255d2182ce00e1f25c568d7e9
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Wed Sep 5 14:37:35 2012 -0700

    tools/hv: Fix file handle leak
    
    commit d5ab482799e7c4c4b7c0aa67e8710dce28115d03 upstream.
    
    Match up each fopen() with an fclose().
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 268b7d491c88845b410b2dfc84af54075db35c4d
Author: Flavio Leitner <fbl@redhat.com>
Date:   Fri Sep 21 21:04:34 2012 -0300

    serial: set correct baud_base for EXSYS EX-41092 Dual 16950
    
    commit 26e8220adb0aec43b7acafa0f1431760eee28522 upstream.
    
    Apparently the same card model has two IDs, so this patch
    complements the commit 39aced68d664291db3324d0fcf0985ab5626aac2
    adding the missing one.
    
    Signed-off-by: Flavio Leitner <fbl@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c5500c74ff1414578161b796557b382d5cbaf024
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Wed Sep 26 17:21:36 2012 +0200

    serial: pl011: handle corruption at high clock speeds
    
    commit c5dd553b9fd069892c9e2de734f4f604e280fa7a upstream.
    
    This works around a few glitches in the ST version of the PL011
    serial driver when using very high baud rates, as we do in the
    Ux500: 3, 3.25, 4 and 4.05 Mbps.
    
    Problem Observed/rootcause:
    
    When using high baud-rates, and the baudrate*8 is getting close to
    the provided clock frequency (so a division factor close to 1), when
    using bursts of characters (so they are abutted), then it seems as if
    there is not enough time to detect the beginning of the start-bit which
    is a timing reference for the entire character, and thus the sampling
    moment of character bits is moving towards the end of each bit, instead
    of the middle.
    
    Fix:
    Increase slightly the RX baud rate of the UART above the theoretical
    baudrate by 5%. This will definitely give more margin time to the
    UART_RX to correctly sample the data at the middle of the bit period.
    
    Also fix the ages old copy-paste error in the very stressed comment,
    it's referencing the registers used in the PL010 driver rather than
    the PL011 ones.
    
    Signed-off-by: Guillaume Jaunet <guillaume.jaunet@stericsson.com>
    Signed-off-by: Christophe Arnal <christophe.arnal@stericsson.com>
    Signed-off-by: Matthias Locher <matthias.locher@stericsson.com>
    Signed-off-by: Rajanikanth HV <rajanikanth.hv@stericsson.com>
    Cc: Bibek Basu <bibek.basu@stericsson.com>
    Cc: Par-Gunnar Hjalmdahl <par-gunnar.hjalmdahl@stericsson.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bba5a67bba4c56ab0ce632d7a3e1a651d9162b9e
Author: Vikram Pandita <vikram.pandita@ti.com>
Date:   Thu Sep 6 15:45:37 2012 +0300

    serial: omap: fix software flow control
    
    commit 957ee7270d632245b43f6feb0e70d9a5e9ea6cf6 upstream.
    
    Software flow control register bits were not defined correctly.
    
    Also clarify the IXON and IXOFF logic to reflect what userspace wants.
    
    Tested-by: Shubhrajyoti D <shubhrajyoti@ti.com>
    Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
    Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 804f6a4a4745ce54f3afa76b3d2270b385f565f8
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Tue Aug 7 21:47:39 2012 +0200

    TTY: ttyprintk, don't touch behind tty->write_buf
    
    commit ee8b593affdf893012e57f4c54a21984d1b0d92e upstream.
    
    If a user provides a buffer larger than a tty->write_buf chunk and
    passes '\r' at the end of the buffer, we touch an out-of-bound memory.
    
    Add a check there to prevent this.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Cc: Samo Pogacnik <samo_pogacnik@t-2.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2a43abf3d9c6a3828d9a02c3de0d8bf16bd4b90
Author: Stanislav Kozina <skozina@redhat.com>
Date:   Thu Aug 16 12:01:47 2012 +0100

    Remove BUG_ON from n_tty_read()
    
    commit e9490e93c1978b6669f3e993caa3189be13ce459 upstream.
    
    Change the BUG_ON to WARN_ON and return in case of tty->read_buf==NULL. We want to track a
    couple of long standing reports of this but at the same time we can avoid killing the box.
    
    Signed-off-by: Stanislav Kozina <skozina@redhat.com>
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f810716cd61810278caee8eefed22e8706e49125
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Wed Sep 19 19:37:39 2012 +0100

    staging: comedi: fix memory leak for saved channel list
    
    commit c8cad4c89ee3b15935c532210ae6ebb5c0a2734d upstream.
    
    When `do_cmd_ioctl()` allocates memory for the kernel copy of a channel
    list, it frees any previously allocated channel list in
    `async->cmd.chanlist` and replaces it with the new one.  However, if the
    device is ever removed (or "detached") the cleanup code in
    `cleanup_device()` in "drivers.c" does not free this memory so it is
    lost.
    
    A sensible place to free the kernel copy of the channel list is in
    `do_become_nonbusy()` as at that point the comedi asynchronous command
    associated with the channel list is no longer valid.  Free the channel
    list in `do_become_nonbusy()` instead of `do_cmd_ioctl()` and clear the
    pointer to prevent it being freed more than once.
    
    Note that `cleanup_device()` could be called at an inappropriate time
    while the comedi device is open, but that's a separate bug not related
    to this this patch.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19dcf415184e1ef6d9641d76e3248d3b2677b3df
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Tue Sep 18 19:46:58 2012 +0100

    staging: comedi: don't dereference user memory for INSN_INTTRIG
    
    commit 5d06e3df280bd230e2eadc16372e62818c63e894 upstream.
    
    `parse_insn()` is dereferencing the user-space pointer `insn->data`
    directly when handling the `INSN_INTTRIG` comedi instruction.  It
    shouldn't be using `insn->data` at all; it should be using the separate
    `data` pointer passed to the function.  Fix it.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4483c56613f9ca0cff15d231975b240d3f3e8a10
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Thu Sep 27 17:45:27 2012 +0100

    staging: comedi: jr3_pci: fix iomem dereference
    
    commit e1878957b4676a17cf398f7f5723b365e9a2ca48 upstream.
    
    Correct a direct dereference of I/O memory to use an appropriate I/O
    memory access function.  Note that the pointer being dereferenced is not
    currently tagged with `__iomem` but I plan to correct that for 3.7.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5697de62b79060f59a5d7780aa4c16fdcfaa929
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Sep 24 17:20:52 2012 +0100

    staging: comedi: s626: don't dereference insn->data
    
    commit b655c2c4782ed3e2e71d2608154e295a3e860311 upstream.
    
    `s626_enc_insn_config()` is incorrectly dereferencing `insn->data` which
    is a pointer to user memory.  It should be dereferencing the separate
    `data` parameter that points to a copy of the data in kernel memory.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28675586f391fc14960de13c63359b25542ddec4
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Wed Sep 26 14:01:31 2012 -0500

    staging: r8712u: Do not queue cloned skb
    
    commit fa16e5ea25d7dd83f663f333e70713aa2fa5dffe upstream.
    
    Some post-3.4 kernels have a problem when a cloned skb is used in the
    RX path. This patch handles one such case for r8712u.
    
    The patch was suggested by Eric Dumazet.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f2c427a4f4a994526bea7ce3855284fc5a7940a
Author: Christopher Brannon <chris@the-brannons.com>
Date:   Fri Jun 22 08:16:34 2012 -0500

    tty: keyboard.c: Remove locking from vt_get_leds.
    
    commit 157a4b311c45c9aba75a990464d9680867dc8805 upstream.
    
    There are three call sites for this function, and all three
    are called within a keyboard handler.
    kbd_event_lock is already held within keyboard handlers,
    so attempting to lock it in vt_get_leds causes deadlock.
    
    Signed-off-by: Christopher Brannon <chris@the-brannons.com>
    Acked-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7d978ef5d1cdbbb7bd7dba5fb995d56b7640b37
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Sep 16 04:18:50 2012 +0100

    staging: speakup_soft: Fix reading of init string
    
    commit 40fe4f89671fb3c7ded94190fb267402a38b0261 upstream.
    
    softsynth_read() reads a character at a time from the init string;
    when it finds the null terminator it sets the initialized flag but
    then repeats the last character.
    
    Additionally, if the read() buffer is not big enough for the init
    string, the next read() will start reading from the beginning again.
    So the caller may never progress to reading anything else.
    
    Replace the simple initialized flag with the current position in
    the init string, carried over between calls.  Switch to reading
    real data once this reaches the null terminator.
    
    (This assumes that the length of the init string can't change, which
    seems to be the case.  Really, the string and position belong together
    in a per-file private struct.)
    
    Tested-by: Samuel Thibault <sthibault@debian.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d64560a29d149803a119527ad6b3d80b83a85a8
Author: Vivek Gautam <gautam.vivek@samsung.com>
Date:   Sat Sep 22 18:11:19 2012 +0530

    usb: host: xhci: Fix Null pointer dereferencing with 71c731a for non-x86 systems
    
    commit 457a73d346187c2cc5d599072f38676f18f130e0 upstream.
    
    In 71c731a: usb: host: xhci: Fix Compliance Mode on SN65LVPE502CP Hardware
    when extracting DMI strings (vendor or product_name) to mark them as quirk
    we may get NULL pointer in case of non-x86 systems which won't define
    CONFIG_DMI. Hence susbsequent strstr() calls crash while driver probing.
    
    So, returning 'false' here in case we get a NULL vendor or product_name.
    
    This is tested with ARM (exynos) system.
    
    This patch should be backported to stable kernels as old as 3.6, that
    contain the commit 71c731a296f1b08a3724bd1b514b64f1bda87a23 "usb: host:
    xhci: Fix Compliance Mode on SN65LVPE502CP Hardware"
    
    Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Reported-by: Sebastian Gottschall (DD-WRT) <s.gottschall@dd-wrt.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28939e9a0972df8eff635a92c0c0a62efe97d9a2
Author: Bjørn Mork <bjorn@mork.no>
Date:   Wed Sep 19 22:02:03 2012 +0200

    USB: qcaux: add Pantech vendor class match
    
    commit c638eb2872b3af079501e7ee44cbb8a5cce9b4b5 upstream.
    
    The three Pantech devices UML190 (106c:3716), UML290 (106c:3718) and
    P4200 (106c:3721) all use the same subclasses to identify vendor
    specific functions.  Replace the existing device specific entries
    with generic vendor matching, adding support for the P4200.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Cc: Thomas Schäfer <tschaefer@t-online.de>
    Acked-by: Dan Williams <dcbw@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e59f498dc3f7679f236b2aec4a6c23173de78a65
Author: Antonio Ospite <ospite@studenti.unina.it>
Date:   Sun Sep 23 09:57:25 2012 +0200

    USB: ftdi_sio: add TIAO USB Multi-Protocol Adapter (TUMPA) support
    
    commit 54575b05af36959dfb6a49a3e9ca0c2b456b7126 upstream.
    
    TIAO/DIYGADGET USB Multi-Protocol Adapter (TUMPA) is an FTDI FT2232H
    based device which provides an easily accessible JTAG, SPI, I2C, serial
    breakout.
    
    http://www.diygadget.com/tiao-usb-multi-protocol-adapter-jtag-spi-i2c-serial.html
    http://www.tiaowiki.com/w/TIAO_USB_Multi_Protocol_Adapter_User%27s_Manual
    
    FTDI FT2232H provides two serial channels (A and B), but on the TUMPA
    channel A is dedicated to JTAG/SPI while channel B can be used for
    UART/RS-232: use the ftdi_jtag_quirk to expose only channel B as
    a usb-serial interface to userspace.
    
    Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58bd65bfa47cf7dec02c8a1e2201dad0003acfb6
Author: Bjørn Mork <bjorn@mork.no>
Date:   Wed Sep 19 22:02:12 2012 +0200

    USB: option: blacklist QMI interface on ZTE MF683
    
    commit 160c9425ac52cb30502be2d9c5e848cec91bb115 upstream.
    
    Interface #5 on ZTE MF683 is a QMI/wwan interface.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Cc: Shawn J. Goff <shawn7400@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47c8e86e3869d7b7d159b069ad80cc621c2b1199
Author: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Date:   Sun Aug 19 21:54:58 2012 +0200

    usb: gadget: dummy_hcd: fixup error probe path
    
    commit 1b68a4ca2d038addb7314211d122fb6d7002b38b upstream.
    
    If USB2 host controller probes fine but USB3 does not then we don't
    remove the USB controller properly and lock up the system while the HUB
    code will try to enumerate the USB2 controller and access memory which
    is no longer available in case the dummy_hcd was compiled as a module.
    
    This is a problem since 448b6eb1 ("USB: Make sure to fetch the BOS desc
    for roothubs.) if used in USB3 mode because dummy does not provide this
    descriptor and explodes later.
    
    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0b50b292c41e0a1c6a1ef6df665fe7fb8eac2e1
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Wed Sep 26 23:45:48 2012 +0100

    dm verity: fix overflow check
    
    commit 1d55f6bcc0331d744cd5b56c4ee79e3809438161 upstream.
    
    This patch fixes sector_t overflow checking in dm-verity.
    
    Without this patch, the code checks for overflow only if sector_t is
    smaller than long long, not if sector_t and long long have the same size.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d77f4776e3fc8770f90244f1f5d1c9181b834c7
Author: Milan Broz <mbroz@redhat.com>
Date:   Wed Sep 26 23:45:43 2012 +0100

    dm table: clear add_random unless all devices have it set
    
    commit c3c4555edd10dbc0b388a0125b9c50de5e79af05 upstream.
    
    Always clear QUEUE_FLAG_ADD_RANDOM if any underlying device does not
    have it set. Otherwise devices with predictable characteristics may
    contribute entropy.
    
    QUEUE_FLAG_ADD_RANDOM specifies whether or not queue IO timings
    contribute to the random pool.
    
    For bio-based targets this flag is always 0 because such devices have no
    real queue.
    
    For request-based devices this flag was always set to 1 by default.
    
    Now set it according to the flags on underlying devices. If there is at
    least one device which should not contribute, set the flag to zero: If a
    device, such as fast SSD storage, is not suitable for supplying entropy,
    a request-based queue stacked over it will not be either.
    
    Because the checking logic is exactly same as for the rotational flag,
    share the iteration function with device_is_nonrot().
    
    Signed-off-by: Milan Broz <mbroz@redhat.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f9954ca80cc595852db6e913e65808819b9dc413
Author: Mike Snitzer <snitzer@redhat.com>
Date:   Wed Sep 26 23:45:42 2012 +0100

    dm: handle requests beyond end of device instead of using BUG_ON
    
    commit ba1cbad93dd47223b1f3b8edd50dd9ef2abcb2ed upstream.
    
    The access beyond the end of device BUG_ON that was introduced to
    dm_request_fn via commit 29e4013de7ad950280e4b2208 ("dm: implement
    REQ_FLUSH/FUA support for request-based dm") was an overly
    drastic (but simple) response to this situation.
    
    I have received a report that this BUG_ON was hit and now think
    it would be better to use dm_kill_unmapped_request() to fail the clone
    and original request with -EIO.
    
    map_request() will assign the valid target returned by
    dm_table_find_target to tio->ti.  But when the target
    isn't valid tio->ti is never assigned (because map_request isn't
    called); so add a check for tio->ti != NULL to dm_done().
    
    Reported-by: Mike Christie <michaelc@cs.wisc.edu>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9316bed3701438b79644e80cc4dd4903a40c756b
Author: Miklos Szeredi <miklos@szeredi.hu>
Date:   Mon Sep 17 22:23:30 2012 +0200

    vfs: dcache: fix deadlock in tree traversal
    
    commit 8110e16d42d587997bcaee0c864179e6d93603fe upstream.
    
    IBM reported a deadlock in select_parent().  This was found to be caused
    by taking rename_lock when already locked when restarting the tree
    traversal.
    
    There are two cases when the traversal needs to be restarted:
    
     1) concurrent d_move(); this can only happen when not already locked,
        since taking rename_lock protects against concurrent d_move().
    
     2) racing with final d_put() on child just at the moment of ascending
        to parent; rename_lock doesn't protect against this rare race, so it
        can happen when already locked.
    
    Because of case 2, we need to be able to handle restarting the traversal
    when rename_lock is already held.  This patch fixes all three callers of
    try_to_ascend().
    
    IBM reported that the deadlock is gone with this patch.
    
    [ I rewrote the patch to be smaller and just do the "goto again" if the
      lock was already held, but credit goes to Miklos for the real work.
       - Linus ]
    
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>