1. 04 Nov, 2013 8 commits
  2. 22 Oct, 2013 12 commits
  3. 13 Oct, 2013 20 commits
    • Greg Kroah-Hartman's avatar
      Linux 3.4.66 · dc3a8b0c
      Greg Kroah-Hartman authored
      dc3a8b0c
    • Theodore Ts'o's avatar
      ext4: avoid hang when mounting non-journal filesystems with orphan list · 016a3592
      Theodore Ts'o authored
      commit 0e9a9a1a upstream.
      
      When trying to mount a file system which does not contain a journal,
      but which does have a orphan list containing an inode which needs to
      be truncated, the mount call with hang forever in
      ext4_orphan_cleanup() because ext4_orphan_del() will return
      immediately without removing the inode from the orphan list, leading
      to an uninterruptible loop in kernel code which will busy out one of
      the CPU's on the system.
      
      This can be trivially reproduced by trying to mount the file system
      found in tests/f_orphan_extents_inode/image.gz from the e2fsprogs
      source tree.  If a malicious user were to put this on a USB stick, and
      mount it on a Linux desktop which has automatic mounts enabled, this
      could be considered a potential denial of service attack.  (Not a big
      deal in practice, but professional paranoids worry about such things,
      and have even been known to allocate CVE numbers for such problems.)
      
      -js: This is a fix for CVE-2013-2015.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Reviewed-by: default avatarZheng Liu <wenqing.lz@taobao.com>
      Acked-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      016a3592
    • Josef Bacik's avatar
      Btrfs: change how we queue blocks for backref checking · 027a76bf
      Josef Bacik authored
      commit b6c60c80 upstream.
      
      Previously we only added blocks to the list to have their backrefs checked if
      the level of the block is right above the one we are searching for.  This is
      because we want to make sure we don't add the entire path up to the root to the
      lists to make sure we process things one at a time.  This assumes that if any
      blocks in the path to the root are going to be not checked (shared in other
      words) then they will be in the level right above the current block on up.  This
      isn't quite right though since we can have blocks higher up the list that are
      shared because they are attached to a reloc root.  But we won't add this block
      to be checked and then later on we will BUG_ON(!upper->checked).  So instead
      keep track of wether or not we've queued a block to be checked in this current
      search, and if we haven't go ahead and queue it to be checked.  This patch fixed
      the panic I was seeing where we BUG_ON(!upper->checked).  Thanks,
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      027a76bf
    • Chris Metcalf's avatar
      tile: use a more conservative __my_cpu_offset in CONFIG_PREEMPT · 5df70853
      Chris Metcalf authored
      commit f862eefe upstream.
      
      It turns out the kernel relies on barrier() to force a reload of the
      percpu offset value.  Since we can't easily modify the definition of
      barrier() to include "tp" as an output register, we instead provide a
      definition of __my_cpu_offset as extended assembly that includes a fake
      stack read to hazard against barrier(), forcing gcc to know that it
      must reread "tp" and recompute anything based on "tp" after a barrier.
      
      This fixes observed hangs in the slub allocator when we are looping
      on a percpu cmpxchg_double.
      
      A similar fix for ARMv7 was made in June in change 509eb76e.
      Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5df70853
    • Lv Zheng's avatar
      ACPI / IPMI: Fix atomic context requirement of ipmi_msg_handler() · b55ef2ed
      Lv Zheng authored
      commit 06a8566b upstream.
      
      This patch fixes the issues indicated by the test results that
      ipmi_msg_handler() is invoked in atomic context.
      
      BUG: scheduling while atomic: kipmi0/18933/0x10000100
      Modules linked in: ipmi_si acpi_ipmi ...
      CPU: 3 PID: 18933 Comm: kipmi0 Tainted: G       AW    3.10.0-rc7+ #2
      Hardware name: QCI QSSC-S4R/QSSC-S4R, BIOS QSSC-S4R.QCI.01.00.0027.070120100606 07/01/2010
       ffff8838245eea00 ffff88103fc63c98 ffffffff814c4a1e ffff88103fc63ca8
       ffffffff814bfbab ffff88103fc63d28 ffffffff814c73e0 ffff88103933cbd4
       0000000000000096 ffff88103fc63ce8 ffff88102f618000 ffff881035c01fd8
      Call Trace:
       <IRQ>  [<ffffffff814c4a1e>] dump_stack+0x19/0x1b
       [<ffffffff814bfbab>] __schedule_bug+0x46/0x54
       [<ffffffff814c73e0>] __schedule+0x83/0x59c
       [<ffffffff81058853>] __cond_resched+0x22/0x2d
       [<ffffffff814c794b>] _cond_resched+0x14/0x1d
       [<ffffffff814c6d82>] mutex_lock+0x11/0x32
       [<ffffffff8101e1e9>] ? __default_send_IPI_dest_field.constprop.0+0x53/0x58
       [<ffffffffa09e3f9c>] ipmi_msg_handler+0x23/0x166 [ipmi_si]
       [<ffffffff812bf6e4>] deliver_response+0x55/0x5a
       [<ffffffff812c0fd4>] handle_new_recv_msgs+0xb67/0xc65
       [<ffffffff81007ad1>] ? read_tsc+0x9/0x19
       [<ffffffff814c8620>] ? _raw_spin_lock_irq+0xa/0xc
       [<ffffffffa09e1128>] ipmi_thread+0x5c/0x146 [ipmi_si]
       ...
      
      Also Tony Camuso says:
      
       We were getting occasional "Scheduling while atomic" call traces
       during boot on some systems. Problem was first seen on a Cisco C210
       but we were able to reproduce it on a Cisco c220m3. Setting
       CONFIG_LOCKDEP and LOCKDEP_SUPPORT to 'y' exposed a lockdep around
       tx_msg_lock in acpi_ipmi.c struct acpi_ipmi_device.
      
       =================================
       [ INFO: inconsistent lock state ]
       2.6.32-415.el6.x86_64-debug-splck #1
       ---------------------------------
       inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
       ksoftirqd/3/17 [HC0[0]:SC1[1]:HE1:SE0] takes:
        (&ipmi_device->tx_msg_lock){+.?...}, at: [<ffffffff81337a27>] ipmi_msg_handler+0x71/0x126
       {SOFTIRQ-ON-W} state was registered at:
         [<ffffffff810ba11c>] __lock_acquire+0x63c/0x1570
         [<ffffffff810bb0f4>] lock_acquire+0xa4/0x120
         [<ffffffff815581cc>] __mutex_lock_common+0x4c/0x400
         [<ffffffff815586ea>] mutex_lock_nested+0x4a/0x60
         [<ffffffff8133789d>] acpi_ipmi_space_handler+0x11b/0x234
         [<ffffffff81321c62>] acpi_ev_address_space_dispatch+0x170/0x1be
      
      The fix implemented by this change has been tested by Tony:
      
       Tested the patch in a boot loop with lockdep debug enabled and never
       saw the problem in over 400 reboots.
      Reported-and-tested-by: default avatarTony Camuso <tcamuso@redhat.com>
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Reviewed-by: default avatarHuang Ying <ying.huang@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: Jonghwan Choi <jhbird.choi@samsung.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b55ef2ed
    • David Rientjes's avatar
      mm, show_mem: suppress page counts in non-blockable contexts · 022a41db
      David Rientjes authored
      commit 4b59e6c4 upstream.
      
      On large systems with a lot of memory, walking all RAM to determine page
      types may take a half second or even more.
      
      In non-blockable contexts, the page allocator will emit a page allocation
      failure warning unless __GFP_NOWARN is specified.  In such contexts, irqs
      are typically disabled and such a lengthy delay may even result in NMI
      watchdog timeouts.
      
      To fix this, suppress the page walk in such contexts when printing the
      page allocation failure warning.
      Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Acked-by: default avatarMichal Hocko <mhocko@suse.cz>
      Cc: Dave Hansen <dave@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Xishi Qiu <qiuxishi@huawei.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      022a41db
    • Ian Abbott's avatar
      staging: comedi: ni_65xx: (bug fix) confine insn_bits to one subdevice · 9712612a
      Ian Abbott authored
      commit 677a3156 upstream.
      
      The `insn_bits` handler `ni_65xx_dio_insn_bits()` has a `for` loop that
      currently writes (optionally) and reads back up to 5 "ports" consisting
      of 8 channels each.  It reads up to 32 1-bit channels but can only read
      and write a whole port at once - it needs to handle up to 5 ports as the
      first channel it reads might not be aligned on a port boundary.  It
      breaks out of the loop early if the next port it handles is beyond the
      final port on the card.  It also breaks out early on the 5th port in the
      loop if the first channel was aligned.  Unfortunately, it doesn't check
      that the current port it is dealing with belongs to the comedi subdevice
      the `insn_bits` handler is acting on.  That's a bug.
      
      Redo the `for` loop to terminate after the final port belonging to the
      subdevice, changing the loop variable in the process to simplify things
      a bit.  The `for` loop could now try and handle more than 5 ports if the
      subdevice has more than 40 channels, but the test `if (bitshift >= 32)`
      ensures it will break out early after 4 or 5 ports (depending on whether
      the first channel is aligned on a port boundary).  (`bitshift` will be
      between -7 and 7 inclusive on the first iteration, increasing by 8 for
      each subsequent operation.)
      Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9712612a
    • Michael Grzeschik's avatar
      dmaengine: imx-dma: fix slow path issue in prep_dma_cyclic · d11fb4bb
      Michael Grzeschik authored
      commit edc530fe upstream.
      
      When perparing cyclic_dma buffers by the sound layer, it will dump the
      following lockdep trace. The leading snd_pcm_action_single get called
      with read_lock_irq called. To fix this, we change the kcalloc call from
      GFP_KERNEL to GFP_ATOMIC.
      
      WARNING: at kernel/lockdep.c:2740 lockdep_trace_alloc+0xcc/0x114()
      DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
      Modules linked in:
      CPU: 0 PID: 832 Comm: aplay Not tainted 3.11.0-20130823+ #903
      Backtrace:
      [<c000b98c>] (dump_backtrace+0x0/0x10c) from [<c000bb28>] (show_stack+0x18/0x1c)
       r6:c004c090 r5:00000009 r4:c2e0bd18 r3:00404000
      [<c000bb10>] (show_stack+0x0/0x1c) from [<c02f397c>] (dump_stack+0x20/0x28)
      [<c02f395c>] (dump_stack+0x0/0x28) from [<c001531c>] (warn_slowpath_common+0x54/0x70)
      [<c00152c8>] (warn_slowpath_common+0x0/0x70) from [<c00153dc>] (warn_slowpath_fmt+0x38/0x40)
       r8:00004000 r7:a3b90000 r6:000080d0 r5:60000093 r4:c2e0a000 r3:00000009
      [<c00153a4>] (warn_slowpath_fmt+0x0/0x40) from [<c004c090>] (lockdep_trace_alloc+0xcc/0x114)
       r3:c03955d8 r2:c03907db
      [<c004bfc4>] (lockdep_trace_alloc+0x0/0x114) from [<c008f16c>] (__kmalloc+0x34/0x118)
       r6:000080d0 r5:c3800120 r4:000080d0 r3:c040a0f8
      [<c008f138>] (__kmalloc+0x0/0x118) from [<c019c95c>] (imxdma_prep_dma_cyclic+0x64/0x168)
       r7:a3b90000 r6:00000004 r5:c39d8420 r4:c3847150
      [<c019c8f8>] (imxdma_prep_dma_cyclic+0x0/0x168) from [<c024618c>] (snd_dmaengine_pcm_trigger+0xa8/0x160)
      [<c02460e4>] (snd_dmaengine_pcm_trigger+0x0/0x160) from [<c0241fa8>] (soc_pcm_trigger+0x90/0xb4)
       r8:c058c7b0 r7:c3b8140c r6:c39da560 r5:00000001 r4:c3b81000
      [<c0241f18>] (soc_pcm_trigger+0x0/0xb4) from [<c022ece4>] (snd_pcm_do_start+0x2c/0x38)
       r7:00000000 r6:00000003 r5:c058c7b0 r4:c3b81000
      [<c022ecb8>] (snd_pcm_do_start+0x0/0x38) from [<c022e958>] (snd_pcm_action_single+0x40/0x6c)
      [<c022e918>] (snd_pcm_action_single+0x0/0x6c) from [<c022ea64>] (snd_pcm_action_lock_irq+0x7c/0x9c)
       r7:00000003 r6:c3b810f0 r5:c3b810f0 r4:c3b81000
      [<c022e9e8>] (snd_pcm_action_lock_irq+0x0/0x9c) from [<c023009c>] (snd_pcm_common_ioctl1+0x7f8/0xfd0)
       r8:c3b7f888 r7:005407b8 r6:c2c991c0 r5:c3b81000 r4:c3b81000 r3:00004142
      [<c022f8a4>] (snd_pcm_common_ioctl1+0x0/0xfd0) from [<c023117c>] (snd_pcm_playback_ioctl1+0x464/0x488)
      [<c0230d18>] (snd_pcm_playback_ioctl1+0x0/0x488) from [<c02311d4>] (snd_pcm_playback_ioctl+0x34/0x40)
       r8:c3b7f888 r7:00004142 r6:00000004 r5:c2c991c0 r4:005407b8
      [<c02311a0>] (snd_pcm_playback_ioctl+0x0/0x40) from [<c00a14a4>] (vfs_ioctl+0x30/0x44)
      [<c00a1474>] (vfs_ioctl+0x0/0x44) from [<c00a1fe8>] (do_vfs_ioctl+0x55c/0x5c0)
      [<c00a1a8c>] (do_vfs_ioctl+0x0/0x5c0) from [<c00a208c>] (SyS_ioctl+0x40/0x68)
      [<c00a204c>] (SyS_ioctl+0x0/0x68) from [<c0009380>] (ret_fast_syscall+0x0/0x44)
       r8:c0009544 r7:00000036 r6:bedeaa58 r5:00000000 r4:000000c0
      Signed-off-by: default avatarMichael Grzeschik <m.grzeschik@pengutronix.de>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      Cc: Jonghwan Choi <jhbird.choi@samsung.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d11fb4bb
    • Michael Grzeschik's avatar
      dmaengine: imx-dma: fix callback path in tasklet · cd8ccd53
      Michael Grzeschik authored
      commit fcaaba6c upstream.
      
      We need to free the ld_active list head before jumping into the callback
      routine. Otherwise the callback could run into issue_pending and change
      our ld_active list head we just going to free. This will run the channel
      list into an currupted and undefined state.
      Signed-off-by: default avatarMichael Grzeschik <m.grzeschik@pengutronix.de>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      Cc: Jonghwan Choi <jhbird.choi@samsung.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cd8ccd53
    • Michael Grzeschik's avatar
      dmaengine: imx-dma: fix lockdep issue between irqhandler and tasklet · 218118c7
      Michael Grzeschik authored
      commit 5a276fa6 upstream.
      
      The tasklet and irqhandler are using spin_lock while other routines are
      using spin_lock_irqsave/restore. This leads to lockdep issues as
      described bellow. This patch is changing the code to use
      spinlock_irq_save/restore in both code pathes.
      
      As imxdma_xfer_desc always gets called with spin_lock_irqsave lock held,
      this patch also removes the spare call inside the routine to avoid
      double locking.
      
      [  403.358162] =================================
      [  403.362549] [ INFO: inconsistent lock state ]
      [  403.366945] 3.10.0-20130823+ #904 Not tainted
      [  403.371331] ---------------------------------
      [  403.375721] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
      [  403.381769] swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
      [  403.386762]  (&(&imxdma->lock)->rlock){?.-...}, at: [<c019d77c>] imxdma_tasklet+0x20/0x134
      [  403.395201] {IN-HARDIRQ-W} state was registered at:
      [  403.400108]   [<c004b264>] mark_lock+0x2a0/0x6b4
      [  403.404798]   [<c004d7c8>] __lock_acquire+0x650/0x1a64
      [  403.410004]   [<c004f15c>] lock_acquire+0x94/0xa8
      [  403.414773]   [<c02f74e4>] _raw_spin_lock+0x54/0x8c
      [  403.419720]   [<c019d094>] dma_irq_handler+0x78/0x254
      [  403.424845]   [<c0061124>] handle_irq_event_percpu+0x38/0x1b4
      [  403.430670]   [<c00612e4>] handle_irq_event+0x44/0x64
      [  403.435789]   [<c0063a70>] handle_level_irq+0xd8/0xf0
      [  403.440903]   [<c0060a20>] generic_handle_irq+0x28/0x38
      [  403.446194]   [<c0009cc4>] handle_IRQ+0x68/0x8c
      [  403.450789]   [<c0008714>] avic_handle_irq+0x3c/0x48
      [  403.455811]   [<c0008f84>] __irq_svc+0x44/0x74
      [  403.460314]   [<c0040b04>] cpu_startup_entry+0x88/0xf4
      [  403.465525]   [<c02f00d0>] rest_init+0xb8/0xe0
      [  403.470045]   [<c03e07dc>] start_kernel+0x28c/0x2d4
      [  403.474986]   [<a0008040>] 0xa0008040
      [  403.478709] irq event stamp: 50854
      [  403.482140] hardirqs last  enabled at (50854): [<c001c6b8>] tasklet_action+0x38/0xdc
      [  403.489954] hardirqs last disabled at (50853): [<c001c6a0>] tasklet_action+0x20/0xdc
      [  403.497761] softirqs last  enabled at (50850): [<c001bc64>] _local_bh_enable+0x14/0x18
      [  403.505741] softirqs last disabled at (50851): [<c001c268>] irq_exit+0x88/0xdc
      [  403.513026]
      [  403.513026] other info that might help us debug this:
      [  403.519593]  Possible unsafe locking scenario:
      [  403.519593]
      [  403.525548]        CPU0
      [  403.528020]        ----
      [  403.530491]   lock(&(&imxdma->lock)->rlock);
      [  403.534828]   <Interrupt>
      [  403.537474]     lock(&(&imxdma->lock)->rlock);
      [  403.541983]
      [  403.541983]  *** DEADLOCK ***
      [  403.541983]
      [  403.547951] no locks held by swapper/0.
      [  403.551813]
      [  403.551813] stack backtrace:
      [  403.556222] CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.0-20130823+ #904
      [  403.563039] Backtrace:
      [  403.565581] [<c000b98c>] (dump_backtrace+0x0/0x10c) from [<c000bb28>] (show_stack+0x18/0x1c)
      [  403.574054]  r6:00000000 r5:c05c51d8 r4:c040bd58 r3:00200000
      [  403.579872] [<c000bb10>] (show_stack+0x0/0x1c) from [<c02f398c>] (dump_stack+0x20/0x28)
      [  403.587955] [<c02f396c>] (dump_stack+0x0/0x28) from [<c02f29c8>] (print_usage_bug.part.28+0x224/0x28c)
      [  403.597340] [<c02f27a4>] (print_usage_bug.part.28+0x0/0x28c) from [<c004b404>] (mark_lock+0x440/0x6b4)
      [  403.606682]  r8:c004a41c r7:00000000 r6:c040bd58 r5:c040c040 r4:00000002
      [  403.613566] [<c004afc4>] (mark_lock+0x0/0x6b4) from [<c004d844>] (__lock_acquire+0x6cc/0x1a64)
      [  403.622244] [<c004d178>] (__lock_acquire+0x0/0x1a64) from [<c004f15c>] (lock_acquire+0x94/0xa8)
      [  403.631010] [<c004f0c8>] (lock_acquire+0x0/0xa8) from [<c02f74e4>] (_raw_spin_lock+0x54/0x8c)
      [  403.639614] [<c02f7490>] (_raw_spin_lock+0x0/0x8c) from [<c019d77c>] (imxdma_tasklet+0x20/0x134)
      [  403.648434]  r6:c3847010 r5:c040e890 r4:c38470d4
      [  403.653194] [<c019d75c>] (imxdma_tasklet+0x0/0x134) from [<c001c70c>] (tasklet_action+0x8c/0xdc)
      [  403.662013]  r8:c0599160 r7:00000000 r6:00000000 r5:c040e890 r4:c3847114 r3:c019d75c
      [  403.670042] [<c001c680>] (tasklet_action+0x0/0xdc) from [<c001bd4c>] (__do_softirq+0xe4/0x1f0)
      [  403.678687]  r7:00000101 r6:c0402000 r5:c059919c r4:00000001
      [  403.684498] [<c001bc68>] (__do_softirq+0x0/0x1f0) from [<c001c268>] (irq_exit+0x88/0xdc)
      [  403.692652] [<c001c1e0>] (irq_exit+0x0/0xdc) from [<c0009cc8>] (handle_IRQ+0x6c/0x8c)
      [  403.700514]  r4:00000030 r3:00000110
      [  403.704192] [<c0009c5c>] (handle_IRQ+0x0/0x8c) from [<c0008714>] (avic_handle_irq+0x3c/0x48)
      [  403.712664]  r5:c0403f28 r4:c0593ebc
      [  403.716343] [<c00086d8>] (avic_handle_irq+0x0/0x48) from [<c0008f84>] (__irq_svc+0x44/0x74)
      [  403.724733] Exception stack(0xc0403f28 to 0xc0403f70)
      [  403.729841] 3f20:                   00000001 00000004 00000000 20000013 c0402000 c04104a8
      [  403.738078] 3f40: 00000002 c0b69620 a0004000 41069264 a03fb5f4 c0403f7c c0403f40 c0403f70
      [  403.746301] 3f60: c004b92c c0009e74 20000013 ffffffff
      [  403.751383]  r6:ffffffff r5:20000013 r4:c0009e74 r3:c004b92c
      [  403.757210] [<c0009e30>] (arch_cpu_idle+0x0/0x4c) from [<c0040b04>] (cpu_startup_entry+0x88/0xf4)
      [  403.766161] [<c0040a7c>] (cpu_startup_entry+0x0/0xf4) from [<c02f00d0>] (rest_init+0xb8/0xe0)
      [  403.774753] [<c02f0018>] (rest_init+0x0/0xe0) from [<c03e07dc>] (start_kernel+0x28c/0x2d4)
      [  403.783051]  r6:c03fc484 r5:ffffffff r4:c040a0e0
      [  403.787797] [<c03e0550>] (start_kernel+0x0/0x2d4) from [<a0008040>] (0xa0008040)
      Signed-off-by: default avatarMichael Grzeschik <m.grzeschik@pengutronix.de>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      Cc: Jonghwan Choi <jhbird.choi@samsung.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      218118c7
    • Christian Lamparter's avatar
      p54usb: add USB ID for Corega WLUSB2GTST USB adapter · 3047268f
      Christian Lamparter authored
      commit 1e43692c upstream.
      
      Added USB ID for Corega WLUSB2GTST USB adapter.
      Reported-by: default avatarJoerg Kalisch <the_force@gmx.de>
      Signed-off-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3047268f
    • Larry Finger's avatar
      rtlwifi: Align private space in rtl_priv struct · 5bbc247e
      Larry Finger authored
      commit 60ce314d upstream.
      
      The private array at the end of the rtl_priv struct is not aligned.
      On ARM architecture, this causes an alignment trap and is fixed by aligning
      that array with __align(sizeof(void *)). That should properly align that
      space according to the requirements of all architectures.
      Reported-by: default avatarJason Andrews <jasona@cadence.com>
      Tested-by: default avatarJason Andrews <jasona@cadence.com>
      Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5bbc247e
    • Jack Wang's avatar
      ib_srpt: always set response for task management · a2a88da3
      Jack Wang authored
      commit c807f643 upstream.
      
      The SRP specification requires:
      
        "Response data shall be provided in any SRP_RSP response that is sent in
         response to an SRP_TSK_MGMT request (see 6.7). The information in the
         RSP_CODE field (see table 24) shall indicate the completion status of
         the task management function."
      
      So fix this to avoid the SRP initiator interprets task management functions
      that succeeded as failed.
      Signed-off-by: default avatarJack Wang <jinpu.wang@profitbricks.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a2a88da3
    • Nicholas Bellinger's avatar
      ib_srpt: Destroy cm_id before destroying QP. · d08417dc
      Nicholas Bellinger authored
      commit 0b41d6ca upstream.
      
      This patch fixes a bug where ib_destroy_cm_id() was incorrectly being called
      after srpt_destroy_ch_ib() had destroyed the active QP.
      
      This would result in the following failed SRP_LOGIN_REQ messages:
      
      Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff1762bd, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c903009f8f41)
      Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff1758f9, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 2 (guid=0xfe80000000000000:0x2c903009f8f42)
      Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff175941, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 2 (guid=0xfe80000000000000:0x2c90300a3cfb2)
      Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff176299, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c90300a3cfb1)
      mlx4_core 0000:84:00.0: command 0x19 failed: fw status = 0x9
      rejected SRP_LOGIN_REQ because creating a new RDMA channel failed.
      Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff176299, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c90300a3cfb1)
      mlx4_core 0000:84:00.0: command 0x19 failed: fw status = 0x9
      rejected SRP_LOGIN_REQ because creating a new RDMA channel failed.
      Received SRP_LOGIN_REQ with i_port_id 0x0:0x2590ffff176299, t_port_id 0x2c903009f8f40:0x2c903009f8f40 and it_iu_len 260 on port 1 (guid=0xfe80000000000000:0x2c90300a3cfb1)
      Reported-by: default avatarNavin Ahuja <navin.ahuja@saratoga-speed.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d08417dc
    • Michal Malý's avatar
      USB: serial: option: Ignore card reader interface on Huawei E1750 · 03b88a25
      Michal Malý authored
      commit eb2addd4 upstream.
      
      Hi,
      
      my Huawei 3G modem has an embedded Smart Card reader which causes
      trouble when the modem is being detected (a bunch of "<warn>  (ttyUSBx):
      open blocked by driver for more than 7 seconds!" in messages.log). This
      trivial patch corrects the problem for me. The modem identifies itself
      as "12d1:1406 Huawei Technologies Co., Ltd. E1750" in lsusb although the
      description on the body says "Model E173u-1"
      Signed-off-by: default avatarMichal Malý <madcatxster@prifuk.cz>
      Cc: Bjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      03b88a25
    • Kirill Tkhai's avatar
      sparc32: Fix exit flag passed from traced sys_sigreturn · 5d8bce85
      Kirill Tkhai authored
      [ Upstream commit 7a3b0f89 ]
      
      Pass 1 in %o1 to indicate that syscall_trace accounts exit.
      Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
      CC: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5d8bce85
    • Kirill Tkhai's avatar
      sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall · 81cc2335
      Kirill Tkhai authored
      [ Upstream commit ab2abda6 ]
      
      (From v1 to v2: changed comment)
      
      On the way linux_sparc_syscall32->linux_syscall_trace32->goto 2f,
      register %o5 doesn't clear its second 32-bit.
      
      Fix that.
      Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
      CC: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      81cc2335
    • David S. Miller's avatar
    • Kirill Tkhai's avatar
      sparc64: Remove RWSEM export leftovers · cf818489
      Kirill Tkhai authored
      [ Upstream commit 61d9b935 ]
      
      The functions
      
      			__down_read
      			__down_read_trylock
      			__down_write
      			__down_write_trylock
      			__up_read
      			__up_write
      			__downgrade_write
      
      are implemented inline, so remove corresponding EXPORT_SYMBOLs
      (They lead to compile errors on RT kernel).
      Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
      CC: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cf818489
    • Kirill Tkhai's avatar
      sparc64: Fix ITLB handler of null page · cad9d82d
      Kirill Tkhai authored
      [ Upstream commit 1c2696cd ]
      
      1)Use kvmap_itlb_longpath instead of kvmap_dtlb_longpath.
      
      2)Handle page #0 only, don't handle page #1: bleu -> blu
      
       (KERNBASE is 0x400000, so #1 does not exist too. But everything
        is possible in the future. Fix to not to have problems later.)
      
      3)Remove unused kvmap_itlb_nonlinear.
      Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
      CC: David Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cad9d82d