Skip to content
Commits on Jul 10, 2011
  1. Merge branch 'configs-2.6.39' into pf-2.6.39

    Oleksandr Natalenko committed Jul 11, 2011
  2. configs-2.6.39: fix modules for Arch initramfs build system

    Oleksandr Natalenko committed Jul 11, 2011
  3. Merge branch 'version-2.6.39' into pf-2.6.39

    Oleksandr Natalenko committed Jul 10, 2011
  4. version-2.6.39: bump to v2.6.39-pf4

    Oleksandr Natalenko committed Jul 10, 2011
  5. fix merge conflict

    Oleksandr Natalenko committed Jul 10, 2011
Commits on Jul 9, 2011
  1. @gregkh

    Linux 2.6.39.3

    gregkh committed Jul 8, 2011
  2. @gregkh

    USB: additional regression fix for device removal

    commit ca5c485 upstream.
    
    Commit e534c5b (USB: fix regression
    occurring during device removal) didn't go far enough.  It failed to
    take into account that when a driver claims multiple interfaces, it may
    release them all at the same time.  As a result, some interfaces can
    get released before they are unregistered, and we deadlock trying to
    acquire the bandwidth_mutex that we already own.
    
    This patch (asl478) handles this case by setting the "unregistering"
    flag on all the interfaces before removing any of them.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Éric Piel <eric.piel@tremplin-utc.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Alan Stern committed with gregkh Jul 6, 2011
  3. @ickle @gregkh

    drm/i915: Apply HWSTAM workaround for BSD ring on SandyBridge

    commit ec6a890 upstream.
    
    ...we need to apply exactly the same workaround for missing interrupts
    from BSD as for the BLT ring, apparently.
    
    See also commit 498e720
    (drm/i915: Fix gen6 (SNB) missed BLT ring interrupts).
    
    Reported-and-tested-by: nkalkhof@web.de
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38529
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ickle committed with gregkh Jun 21, 2011
  4. @gregkh

    IPVS netns exit causes crash in conntrack

    commit 8f4e0a1 upstream.
    
    Quote from Patric Mc Hardy
    "This looks like nfnetlink.c excited and destroyed the nfnl socket, but
    ip_vs was still holding a reference to a conntrack. When the conntrack
    got destroyed it created a ctnetlink event, causing an oops in
    netlink_has_listeners when trying to use the destroyed nfnetlink
    socket."
    
    If nf_conntrack_netlink is loaded before ip_vs this is not a problem.
    
    This patch simply avoids calling ip_vs_conn_drop_conntrack()
    when netns is dying as suggested by Julian.
    
    Signed-off-by: Hans Schillstrom <hans.schillstrom@ericsson.com>
    Signed-off-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Hans Schillstrom committed with gregkh Jun 13, 2011
  5. @gregkh

    KVM: Fix register corruption in pvclock_scale_delta

    (cherry picked from commit de2d1a5)
    
    The 128-bit multiply in pvclock.h was missing an output constraint for
    EDX which caused a register corruption to appear.  Thanks to Ulrich for
    diagnosing the EDX corruption and Avi for providing this fix.
    
    Signed-off-by: Zachary Amsden <zamsden@redhat.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Zachary Amsden committed with gregkh Jun 23, 2011
  6. @awilliam @gregkh

    Revert "KVM: Save/restore state of assigned PCI device"

    This reverts ed78661 as it assumes
    the saved PCI state will remain valid for the entire length of time
    that it is attached to a guest.  This fails when userspace makes use
    of the pci-sysfs reset interface, which invalidates the saved device
    state, leaving nothing to be restored after the device is reset on
    de-assignment.  This leaves the device in an unusable state.
    
    3.0.0 will add an interface for KVM to save the PCI state in a
    buffer unaffected by other callers of pci_reset_function(), but the
    most appropriate stable fix seems to be reverting this change since
    the original assumption about the device saved state persisting is
    incorrect.
    
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    awilliam committed with gregkh Jun 23, 2011
  7. @gregkh

    xfrm: Fix off by one in the replay advance functions

    [ Upstream commit e756682 ]
    
    We may write 4 byte too much when we reinitialize the anti replay
    window in the replay advance functions. This patch fixes this by
    adjusting the last index of the initialization loop.
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Steffen Klassert committed with gregkh Jun 5, 2011
  8. @gregkh

    vlan: fix typo in vlan_dev_hard_start_xmit()

    [ Upstream commit 307f73d ]
    
    commit 4af429d (vlan: lockless
    transmit path) have a typo in vlan_dev_hard_start_xmit(), using
    u64_stats_update_begin() to end the stat update, it should be
    u64_stats_update_end().
    
    Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
    Reviewed-by: WANG Cong <xiyou.wangcong@gmail.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Wei Yongjun committed with gregkh May 31, 2011
  9. @gregkh

    netfilter: Fix ip_route_me_harder triggering ip_rt_bug

    [ Upstream commit ed6e4ef ]
    
    	Avoid creating input routes with ip_route_me_harder.
    It does not work for locally generated packets. Instead,
    restrict sockets to provide valid saddr for output route (or
    unicast saddr for transparent proxy). For other traffic
    allow saddr to be unicast or local but if callers forget
    to check saddr type use 0 for the output route.
    
    	The resulting handling should be:
    
    - REJECT TCP:
    	- in INPUT we can provide addr_type = RTN_LOCAL but
    	better allow rejecting traffic delivered with
    	local route (no IP address => use RTN_UNSPEC to
    	allow also RTN_UNICAST).
    	- FORWARD: RTN_UNSPEC => allow RTN_LOCAL/RTN_UNICAST
    	saddr, add fix to ignore RTN_BROADCAST and RTN_MULTICAST
    	- OUTPUT: RTN_UNSPEC
    
    - NAT, mangle, ip_queue, nf_ip_reroute: RTN_UNSPEC in LOCAL_OUT
    
    - IPVS:
    	- use RTN_LOCAL in LOCAL_OUT and FORWARD after SNAT
    	to restrict saddr to be local
    
    Signed-off-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Julian Anastasov committed with gregkh Jun 18, 2011
  10. @gregkh

    ipv4: fix multicast losses

    [ Upstream commit 9aa3c94 ]
    
    Knut Tidemann found that first packet of a multicast flow was not
    correctly received, and bisected the regression to commit b23dd4f
    (Make output route lookup return rtable directly.)
    
    Special thanks to Knut, who provided a very nice bug report, including
    sample programs to demonstrate the bug.
    
    Reported-and-bisectedby: Knut Tidemann <knut.andre.tidemann@jotron.com>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Eric Dumazet committed with gregkh Jun 18, 2011
  11. @gregkh

    USB: fix regression occurring during device removal

    commit e534c5b upstream.
    
    This patch (as1476) fixes a regression introduced by
    fccf4e8 (USB: Free bandwidth when
    usb_disable_device is called).  usb_disconnect() grabs the
    bandwidth_mutex before calling usb_disable_device(), which calls down
    indirectly to usb_set_interface(), which tries to acquire the
    bandwidth_mutex.
    
    The fix causes usb_set_interface() to return early when it is called
    for an interface that has already been unregistered, which is what
    happens in usb_disable_device().
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Alan Stern committed with gregkh Jul 1, 2011
  12. @gregkh

    USB: don't let the hub driver prevent system sleep

    commit cbb3300 upstream.
    
    This patch (as1465) continues implementation of the policy that errors
    during suspend or hibernation should not prevent the system from going
    to sleep.
    
    In this case, failure to turn on the Suspend feature for a hub port
    shouldn't be reported as an error.  There are situations where this
    does actually occur (such as when the device plugged into that port
    was disconnected in the recent past), and it turns out to be harmless.
    There's no reason for it to prevent a system sleep.
    
    Also, don't allow the hub driver to fail a system suspend if the
    downstream ports aren't all suspended.  This is also harmless (and
    should never happen, given the change mentioned above); printing a
    warning message in the kernel log is all we really need to do.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Alan Stern committed with gregkh Jun 15, 2011
  13. @gregkh

    USB: don't let errors prevent system sleep

    commit 0af212b upstream.
    
    This patch (as1464) implements the recommended policy that most errors
    during suspend or hibernation should not prevent the system from going
    to sleep.  In particular, failure to suspend a USB driver or a USB
    device should not prevent the sleep from succeeding:
    
    Failure to suspend a device won't matter, because the device will
    automatically go into suspend mode when the USB bus stops carrying
    packets.  (This might be less true for USB-3.0 devices, but let's not
    worry about them now.)
    
    Failure of a driver to suspend might lead to trouble later on when the
    system wakes up, but it isn't sufficient reason to prevent the system
    from going to sleep.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Alan Stern committed with gregkh Jun 15, 2011
  14. @gregkh

    NLM: Don't hang forever on NLM unlock requests

    commit 0b76011 upstream.
    
    If the NLM daemon is killed on the NFS server, we can currently end up
    hanging forever on an 'unlock' request, instead of aborting. Basically,
    if the rpcbind request fails, or the server keeps returning garbage, we
    really want to quit instead of retrying.
    
    Tested-by: Vasily Averin <vvs@sw.ru>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Trond Myklebust committed with gregkh May 31, 2011
  15. @gregkh

    Fix CPU spinlock lockups on secondary CPU bringup

    commit 1b19ca9 upstream.
    
    Secondary CPU bringup typically calls calibrate_delay() during its
    initialization.  However, calibrate_delay() modifies a global variable
    (loops_per_jiffy) used for udelay() and __delay().
    
    A side effect of 71c696b ("calibrate: extract fall-back calculation
    into own helper") introduced in the 2.6.39 merge window means that we
    end up with a substantial period where loops_per_jiffy is zero.  This
    causes the spinlock debugging code to malfunction:
    
    	u64 loops = loops_per_jiffy * HZ;
    	for (;;) {
    		for (i = 0; i < loops; i++) {
    			if (arch_spin_trylock(&lock->raw_lock))
    				return;
    			__delay(1);
    		}
    		...
    	}
    
    by never calling arch_spin_trylock() - resulting in the CPU locking
    up in an infinite loop inside __spin_lock_debug().
    
    Work around this by only writing to loops_per_jiffy only once we have
    completed all the calibration decisions.
    
    Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    --
    Better solutions (such as omitting the calibration for secondary CPUs,
    or arranging for calibrate_delay() to return the LPJ value and leave
    it to the caller to decide where to store it) are a possibility, but
    would be much more invasive into each architecture.
    
    I think this is the best solution for -rc and stable, but it should be
    revisited for the next merge window.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Russell King committed with gregkh Jun 22, 2011
  16. @gregkh

    taskstats: don't allow duplicate entries in listener mode

    commit 26c4cae upstream.
    
    Currently a single process may register exit handlers unlimited times.
    It may lead to a bloated listeners chain and very slow process
    terminations.
    
    Eg after 10KK sent TASKSTATS_CMD_ATTR_REGISTER_CPUMASKs ~300 Mb of
    kernel memory is stolen for the handlers chain and "time id" shows 2-7
    seconds instead of normal 0.003.  It makes it possible to exhaust all
    kernel memory and to eat much of CPU time by triggerring numerous exits
    on a single CPU.
    
    The patch limits the number of times a single process may register
    itself on a single CPU to one.
    
    One little issue is kept unfixed - as taskstats_exit() is called before
    exit_files() in do_exit(), the orphaned listener entry (if it was not
    explicitly deregistered) is kept until the next someone's exit() and
    implicit deregistration in send_cpu_listeners().  So, if a process
    registered itself as a listener exits and the next spawned process gets
    the same pid, it would inherit taskstats attributes.
    
    Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Vasiliy Kulikov committed with gregkh Jun 27, 2011
  17. @gregkh

    drivers/misc/lkdtm.c: fix race when crashpoint is hit multiple times …

    …before checking count
    
    commit aa2c96d upstream.
    
    We observed the crash point count going negative in cases where the
    crash point is hit multiple times before the check of "count == 0" is
    done.  Because of this we never call lkdtm_do_action().  This patch just
    adds a spinlock to protect count.
    
    Reported-by: Tapan Dhimant <tdhimant@akamai.com>
    Signed-off-by: Josh Hunt <johunt@akamai.com>
    Acked-by: Ankita Garg <ankita@in.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Josh Hunt committed with gregkh Jun 27, 2011
  18. @jmberg @gregkh

    iwlagn: fix change_interface for P2P types

    commit 5306c08 upstream.
    
    When an interface changes type to a P2P type,
    iwlagn will erroneously set vif->type to the
    P2P type and not the reduced/split type. Fix
    this by keeping "newtype" in another variable
    for the assignment to vif->type.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    jmberg committed with gregkh Jun 21, 2011
  19. @arndb @gregkh

    6pack,mkiss: fix lock inconsistency

    commit 6e4e2f8 upstream.
    
    Lockdep found a locking inconsistency in the mkiss_close function:
    
    > kernel: [ INFO: inconsistent lock state ]
    > kernel: 2.6.39.1 #3
    > kernel: ---------------------------------
    > kernel: inconsistent {IN-SOFTIRQ-R} -> {SOFTIRQ-ON-W} usage.
    > kernel: ax25ipd/2813 [HC0[0]:SC0[0]:HE1:SE1] takes:
    > kernel: (disc_data_lock){+++?.-}, at: [<ffffffffa018552b>] mkiss_close+0x1b/0x90 [mkiss]
    > kernel: {IN-SOFTIRQ-R} state was registered at:
    
    The message hints that disc_data_lock is aquired with softirqs disabled,
    but does not itself disable softirqs, which can in rare circumstances
    lead to a deadlock.
    The same problem is present in the 6pack driver, this patch fixes both
    by using write_lock_bh instead of write_lock.
    
    Reported-by: Bernard F6BVP <f6bvp@free.fr>
    Tested-by: Bernard F6BVP <f6bvp@free.fr>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Ralf Baechle<ralf@linux-mips.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    arndb committed with gregkh Jul 1, 2011
  20. @gregkh

    FS-Cache: Add a helper to bulk uncache pages on an inode

    commit c902ce1 upstream.
    
    Add an FS-Cache helper to bulk uncache pages on an inode.  This will
    only work for the circumstance where the pages in the cache correspond
    1:1 with the pages attached to an inode's page cache.
    
    This is required for CIFS and NFS: When disabling inode cookie, we were
    returning the cookie and setting cifsi->fscache to NULL but failed to
    invalidate any previously mapped pages.  This resulted in "Bad page
    state" errors and manifested in other kind of errors when running
    fsstress.  Fix it by uncaching mapped pages when we disable the inode
    cookie.
    
    This patch should fix the following oops and "Bad page state" errors
    seen during fsstress testing.
    
      ------------[ cut here ]------------
      kernel BUG at fs/cachefiles/namei.c:201!
      invalid opcode: 0000 [#1] SMP
      Pid: 5, comm: kworker/u:0 Not tainted 2.6.38.7-30.fc15.x86_64 #1 Bochs Bochs
      RIP: 0010: cachefiles_walk_to_object+0x436/0x745 [cachefiles]
      RSP: 0018:ffff88002ce6dd00  EFLAGS: 00010282
      RAX: ffff88002ef165f0 RBX: ffff88001811f500 RCX: 0000000000000000
      RDX: 0000000000000000 RSI: 0000000000000100 RDI: 0000000000000282
      RBP: ffff88002ce6dda0 R08: 0000000000000100 R09: ffffffff81b3a300
      R10: 0000ffff00066c0a R11: 0000000000000003 R12: ffff88002ae54840
      R13: ffff88002ae54840 R14: ffff880029c29c00 R15: ffff88001811f4b0
      FS:  00007f394dd32720(0000) GS:ffff88002ef00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      CR2: 00007fffcb62ddf8 CR3: 000000001825f000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process kworker/u:0 (pid: 5, threadinfo ffff88002ce6c000, task ffff88002ce55cc0)
      Stack:
       0000000000000246 ffff88002ce55cc0 ffff88002ce6dd58 ffff88001815dc00
       ffff8800185246c0 ffff88001811f618 ffff880029c29d18 ffff88001811f380
       ffff88002ce6dd50 ffffffff814757e4 ffff88002ce6dda0 ffffffff8106ac56
      Call Trace:
       cachefiles_lookup_object+0x78/0xd4 [cachefiles]
       fscache_lookup_object+0x131/0x16d [fscache]
       fscache_object_work_func+0x1bc/0x669 [fscache]
       process_one_work+0x186/0x298
       worker_thread+0xda/0x15d
       kthread+0x84/0x8c
       kernel_thread_helper+0x4/0x10
      RIP  cachefiles_walk_to_object+0x436/0x745 [cachefiles]
      ---[ end trace 1d481c9af1804caa ]---
    
    I tested the uncaching by the following means:
    
     (1) Create a big file on my NFS server (104857600 bytes).
    
     (2) Read the file into the cache with md5sum on the NFS client.  Look in
         /proc/fs/fscache/stats:
    
    	Pages  : mrk=25601 unc=0
    
     (3) Open the file for read/write ("bash 5<>/warthog/bigfile").  Look in proc
         again:
    
    	Pages  : mrk=25601 unc=25601
    
    Reported-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-and-Tested-by: Suresh Jayaraman <sjayaraman@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    David Howells committed with gregkh Jul 7, 2011
  21. @gregkh

    fs: fix lock initialization

    commit a51cb91 upstream.
    
    locks_alloc_lock() assumed that the allocated struct file_lock is
    already initialized to zero members.  This is only true for the first
    allocation of the structure, after reuse some of the members will have
    random values.
    
    This will for example result in passing random fl_start values to
    userspace in fuse for FL_FLOCK locks, which is an information leak at
    best.
    
    Fix by reinitializing those members which may be non-zero after freeing.
    
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Miklos Szeredi committed with gregkh Jul 6, 2011
  22. @gregkh

    drivers/base/platform.c: don't mark platform_device_register_resndata…

    …() as __init_or_module
    
    commit bb2b43f upstream.
    
    This reverts 737a3bb ("Driver core: move platform device
    creation helpers to .init.text (if MODULE=n)").  That patch assumed that
    platform_device_register_resndata() is only ever called from __init code
    but that isn't true in the case ioctl->drm_ioctl->radeon_cp_init().
    
    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=35192
    
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Reported-by: Anthony Basile <blueness@gentoo.org>
    Cc: Greg KH <gregkh@suse.de>
    Cc: David Airlie <airlied@linux.ie>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Andrew Morton committed with gregkh May 23, 2011
  23. @zonque @gregkh

    ASoC: pxa-ssp: Correct check for stream presence

    commit 53dea36 upstream.
    
    Don't rely on the codec's channels_min information to decide wheter or
    not allocate a substream's DMA buffer. Rather check if the substream
    itself was allocated previously.
    
    Signed-off-by: Daniel Mack <zonque@gmail.com>
    Acked-by: Liam Girdwood <lrg@ti.com>
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    zonque committed with gregkh Jun 22, 2011
  24. @gregkh

    SUNRPC: Ensure the RPC client only quits on fatal signals

    commit 5afa913 upstream.
    
    Fix a couple of instances where we were exiting the RPC client on
    arbitrary signals. We should only do so on fatal signals.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Trond Myklebust committed with gregkh Jun 17, 2011
  25. @neilbrown @gregkh

    md: avoid endless recovery loop when waiting for fail device to compl…

    …ete.
    
    commit 4274215 upstream.
    
    If a device fails in a way that causes pending request to take a while
    to complete, md will not be able to immediately remove it from the
    array in remove_and_add_spares.
    It will then incorrectly look like a spare device and md will try to
    recover it even though it is failed.
    This leads to a recovery process starting and instantly aborting over
    and over again.
    
    We should check if the device is faulty before considering it to be a
    spare.  This will avoid trying to start a recovery that cannot
    proceed.
    
    This bug was introduced in 2.6.26 so that patch is suitable for any
    kernel since then.
    
    Reported-by: Jim Paradis <james.paradis@stratus.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    neilbrown committed with gregkh Jun 28, 2011
  26. @gregkh

    hfsplus: add missing call to bio_put()

    commit 50176dd upstream.
    
    hfsplus leaks bio objects by failing to call bio_put() on the bios
    it allocates. Add the missing call to fix the leak.
    
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Seth Forshee committed with gregkh May 31, 2011
  27. @gregkh

    i2c/pca954x: Initialize the mux to disconnected state

    commit cd823db upstream.
    
    pca954x power-on default is channel 0 connected. If multiple pca954x
    muxes are connected to the same physical I2C bus, the parent bus will
    see channel 0 devices behind both muxes by default. This is bad.
    
    Scenario:
                -- pca954x @ 0x70 -- ch 0 (I2C-bus-101) -- EEPROM @ 0x50
                |
    I2C-bus-1 ---
                |
                -- pca954x @ 0x71 -- ch 0 (I2C-bus-111) -- EEPROM @ 0x50
    
    1. Load I2C bus driver: creates I2C-bus-1
    2. Load pca954x driver: creates virtual I2C-bus-101 and I2C-bus-111
    3. Load eeprom driver
    4. Try to read EEPROM @ 0x50 on I2C-bus-101. The transaction will also bleed
       onto I2C-bus-111 because pca954x @ 0x71 channel 0 is connected by default.
    
    Fix: Initialize pca954x to disconnected state in pca954x_probe()
    
    Signed-off-by: Petri Gynther <pgynther@google.com>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Petri Gynther committed with gregkh Jun 29, 2011
  28. @gregkh

    i2c-taos-evm: Fix log messages

    commit 9b640f2 upstream.
    
    * Print all error and information messages even when debugging is
      disabled.
    * Don't use adapter device to log messages before it is ready.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Jean Delvare committed with gregkh Jun 29, 2011
  29. @gregkh

    KEYS: Fix error handling in construct_key_and_link()

    commit b1d7dd8 upstream.
    
    Fix error handling in construct_key_and_link().
    
    If construct_alloc_key() returns an error, it shouldn't pass out through
    the normal path as the key_serial() called by the kleave() statement
    will oops when it gets an error code in the pointer:
    
      BUG: unable to handle kernel paging request at ffffffffffffff84
      IP: [<ffffffff8120b401>] request_key_and_link+0x4d7/0x52f
      ..
      Call Trace:
       [<ffffffff8120b52c>] request_key+0x41/0x75
       [<ffffffffa00ed6e8>] cifs_get_spnego_key+0x206/0x226 [cifs]
       [<ffffffffa00eb0c9>] CIFS_SessSetup+0x511/0x1234 [cifs]
       [<ffffffffa00d9799>] cifs_setup_session+0x90/0x1ae [cifs]
       [<ffffffffa00d9c02>] cifs_get_smb_ses+0x34b/0x40f [cifs]
       [<ffffffffa00d9e05>] cifs_mount+0x13f/0x504 [cifs]
       [<ffffffffa00caabb>] cifs_do_mount+0xc4/0x672 [cifs]
       [<ffffffff8113ae8c>] mount_fs+0x69/0x155
       [<ffffffff8114ff0e>] vfs_kern_mount+0x63/0xa0
       [<ffffffff81150be2>] do_kern_mount+0x4d/0xdf
       [<ffffffff81152278>] do_mount+0x63c/0x69f
       [<ffffffff8115255c>] sys_mount+0x88/0xc2
       [<ffffffff814fbdc2>] system_call_fastpath+0x16/0x1b
    
    Signed-off-by: David Howells <dhowells@redhat.com>
    Acked-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    David Howells committed with gregkh Jun 21, 2011
Something went wrong with that request. Please try again.