Permalink
Commits on Nov 26, 2012
  1. Linux 3.7-rc7

    torvalds committed Nov 26, 2012
  2. Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git…

    torvalds committed Nov 26, 2012
    …/benh/powerpc
    
    Pull powerpc EEH bugfixes from Benjamin Herrenschmidt.
    
    Two one-liner fixes for the new EEH code.
    
    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
      powerpc/eeh: Do not invalidate PE properly
      powerpc/pseries: Fix oops with MSIs when missing EEH PEs
  3. Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upst…

    torvalds committed Nov 26, 2012
    …ream-linus
    
    Pull MIPS fixes from Ralf Baechle:
     "Three issues fixed accross the field:
    
       - Some functions that were recently outlined as part of a preemption
         fix were causing problems with function tracing.
       - The recently merged in-kernel MPI library uses very outdated
         headers that contain MIPS-specific code which won't build on with
         gcc 4.4 or newer.
       - The MIPS non-NUMA memory initialization was making only a very
         half-baked attempt at merging adjacent memory ranges.  This kept
         the code simple enough but is now causing issues with kexec."
    
    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
      MPI: Fix compilation on MIPS with GCC 4.4 and newer
      MIPS: Fix crash that occurs when function tracing is enabled
      MIPS: Merge overlapping bootmem ranges
Commits on Nov 25, 2012
  1. powerpc/eeh: Do not invalidate PE properly

    shangw committed with ozbenh Nov 22, 2012
    While the EEH does recovery on the specific PE that has PCI errors,
    the PCI devices belonging to the PE will be removed and the PE will
    be marked as invalid since we still need the information stored in
    the PE. We only invalidate the PE when it doesn't have associated
    EEH devices and valid child PEs. However, the code used to check
    that is wrong. The patch fixes that.
    
    Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Commits on Nov 24, 2012
  1. Merge tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    torvalds committed Nov 24, 2012
    …t/tiwai/sound
    
    Pull sound build error fix from Takashi Iwai:
     "Only a single commit for fixing the build error without CONFIG_PM in
      hda driver."
    
    * tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: hda - Fix build without CONFIG_PM
  2. ALSA: hda - Fix build without CONFIG_PM

    tiwai committed Nov 24, 2012
    I forgot this again...  codec->in_pm is in #ifdef CONFIG_PM
    
    Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
  3. Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/l…

    torvalds committed Nov 24, 2012
    …inux/kernel/git/tip/tip
    
    Pull x86 arch fixes from Peter Anvin:
     "Here is a collection of fixes for 3.7-rc7.  This is a superset of
      tglx' earlier pull request."
    
    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86-64: Fix ordering of CFI directives and recent ASM_CLAC additions
      x86, microcode, AMD: Add support for family 16h processors
      x86-32: Export kernel_stack_pointer() for modules
      x86-32: Fix invalid stack address while in softirq
      x86, efi: Fix processor-specific memcpy() build error
      x86: remove dummy long from EFI stub
      x86, mm: Correct vmflag test for checking VM_HUGETLB
      x86, amd: Disable way access filter on Piledriver CPUs
      x86/mce: Do not change worker's running cpu in cmci_rediscover().
      x86/ce4100: Fix PCI configuration register access for devices without interrupts
      x86/ce4100: Fix reboot by forcing the reboot method to be KBD
      x86/ce4100: Fix pm_poweroff
      MAINTAINERS: Update email address for Robert Richter
      x86, microcode_amd: Change email addresses, MAINTAINERS entry
      MAINTAINERS: Change Boris' email address
      EDAC: Change Boris' email address
      x86, AMD: Change Boris' email address
  4. Merge tag 'for-linus-20121123' of git://git.infradead.org/mtd-2.6

    torvalds committed Nov 24, 2012
    Pull MTD fixes from David Woodhouse:
     "The most important part of this is that it fixes a regression in
      Samsung NAND chip detection, introduced by some rework which went into
      3.7.  The initial fix wasn't quite complete, so it's in two parts.  In
      fact the first part is committed twice (Artem committed his own copy
      of the same patch) and I've merged Artem's tree into mine which
      already had that fix.
    
      I'd have recommitted that to make it somewhat cleaner, but figured by
      this point in the release cycle it was better to merge *exactly* the
      commits which have been in linux-next.
    
      If I'd recommitted, I'd also omit the sparse warning fix.  But it's
      there, and it's harmless — just marking one function as 'static' in
      onenand code.
    
      This also includes a couple more fixes for stable: an AB-BA deadlock
      in JFFS2, and an invalid range check in slram."
    
    * tag 'for-linus-20121123' of git://git.infradead.org/mtd-2.6:
      mtd: nand: fix Samsung SLC detection regression
      mtd: nand: fix Samsung SLC NAND identification regression
      jffs2: Fix lock acquisition order bug in jffs2_write_begin
      mtd: onenand: Make flexonenand_set_boundary static
      mtd: slram: invalid checking of absolute end address
      mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions()
      mtd: nand: fix Samsung SLC NAND identification regression
Commits on Nov 23, 2012
  1. Merge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6

    torvalds committed Nov 23, 2012
    Pull device tree regression fix from Grant Likely:
     "Simple build regression fix for DT device drivers on Sparc.  An
      earlier change had masked out the of_iomap() helper on SPARC."
    
    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6:
      of/address: sparc: Declare of_iomap as an extern function for sparc again
  2. Merge tag 'pm-for-3.7-rc7' of git://git.kernel.org/pub/scm/linux/kern…

    torvalds committed Nov 23, 2012
    …el/git/rafael/linux-pm
    
    Pull power management update from Rafael Wysocki:
     "Fix for an incorrect error condition check in device PM QoS code that
      may lead to an Oops from Guennadi Liakhovetski."
    
    * tag 'pm-for-3.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      PM / QoS: fix wrong error-checking condition
  3. Merge tag 'md-3.7-fixes' of git://neil.brown.name/md

    torvalds committed Nov 23, 2012
    Pull md fixes from NeilBrown:
     "Several bug fixes for md in 3.7:
    
       - raid5 discard has problems
       - raid10 replacement devices have problems
       - bad block lock seqlock usage has problems
       - dm-raid doesn't free everything"
    
    * tag 'md-3.7-fixes' of git://neil.brown.name/md:
      md/raid10: decrement correct pending counter when writing to replacement.
      md/raid10: close race that lose writes lost when replacement completes.
      md/raid5: Make sure we clear R5_Discard when discard is finished.
      md/raid5: move resolving of reconstruct_state earlier in stripe_handle.
      md/raid5: round discard alignment up to power of 2.
      md: make sure everything is freed when dm-raid stops an array.
      md: Avoid write invalid address if read_seqretry returned true.
      md: Reassigned the parameters if read_seqretry returned true in func md_is_badblock.
  4. Merge branch 'for-linus' of git://git.kernel.dk/linux-block

    torvalds committed Nov 23, 2012
    Pull block layer fixes from Jens Axboe:
     "Distilled down version of bug fixes for 3.7.  The patches have been
      well tested.  If you notice that commit dates are from today, it's
      because I pulled less important bits out and shuffled them into the
      3.8 mix.  Apart from that, no changes, base still the same.
    
      It contains:
    
       - Fix for aoe, don't run request_fn while it's plugged.
    
       - Fix for a regression in floppy since 3.6, which causes problems if
         no floppy is found.
    
       - Stable fix for blk_exec(), don't touch a request after it has been
         sent to the scheduler (and the device as well).
    
       - Five fixes for various nasties in mtip32xx."
    
    * 'for-linus' of git://git.kernel.dk/linux-block:
      block: Don't access request after it might be freed
      mtip32xx: Fix padding issue
      aoe: avoid running request handler on plugged queue
      mtip32xx: fix potential NULL pointer dereference in mtip_timeout_function()
      mtip32xx: fix shift larger than type warning
      mtip32xx: Fix incorrect mask used for erase mode
      mtip32xx: Fix to make lba address correct in big-endian systems
      mtip32xx: fix potential crash on SEC_ERASE_UNIT
      dm: fix deadlock with request based dm and queue request_fn recursion
      floppy: destroy floppy workqueue before cleaning up the queue
  5. of/address: sparc: Declare of_iomap as an extern function for sparc a…

    andreas-gaisler committed with glikely Nov 23, 2012
    …gain
    
    This bug-fix makes sure that of_iomap is defined extern for sparc so that the
    sparc-specific implementation of_iomap is once again used when including
    include/linux/of_address.h in a sparc context. OF_GPIO that is now available for
    sparc relies on this.
    
    The bug was inadvertently introduced in a850a75, "of/address: add empty static
    inlines for !CONFIG_OF", that added a static dummy inline for of_iomap when
    !CONFIG_OF_ADDRESS. However, CONFIG_OF_ADDRESS is never defined for sparc, but
    there is a sparc-specific implementation /arch/sparc/kernel/of_device_common.c.
    
    This fix takes the same approach as 0bce04b that solved the equivalent problem
    for of_address_to_resource.
    
    Signed-off-by: Andreas Larsson <andreas@gaisler.com>
    Acked-by: David Miller <davem@davemloft.net>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
  6. Merge tag 'omapdss-for-3.7-rc' of git://gitorious.org/linux-omap-dss2…

    torvalds committed Nov 23, 2012
    …/linux
    
    Pull omapdss fixes from Tomi Valkeinen:
     "Here are a few OMAPDSS fixes for the next -rc.  I'm sending these
      directly to you, and quite late, as the fbdev tree maintainer
      (Florian) has been busy with his work and hasn't had time to manage
      the fb patches."
    
    * tag 'omapdss-for-3.7-rc' of git://gitorious.org/linux-omap-dss2/linux:
      OMAPDSS: do not fail if dpll4_m4_ck is missing
      OMAPFB: Fix possible null pointer dereferencing
      OMAPDSS: HDMI: fix missing unlock on error in hdmi_dump_regs()
      omapdss: dss: Fix clocks on OMAP363x
      OMAPDSS: DSI: fix dsi_get_dsidev_from_id()
  7. Merge branch 'i2c-embedded/for-current' of git://git.pengutronix.de/g…

    torvalds committed Nov 23, 2012
    …it/wsa/linux
    
    Pull i2c fixes from Wolfram Sang:
     "Bugfixes for the i2c subsystem.
    
      Except for a few one-liners, there is mainly one revert because of an
      overlooked dependency.  Since there is no linux-next at the moment, I
      did some extra testing, and all was fine for me."
    
    * 'i2c-embedded/for-current' of git://git.pengutronix.de/git/wsa/linux:
      i2c: mxs: Handle i2c DMA failure properly
      i2c: s3c2410: Fix code to free gpios
      i2c: omap: ensure writes to dev->buf_len are ordered
      Revert "ARM: OMAP: convert I2C driver to PM QoS for MPU latency constraints"
      i2c: at91: fix SMBus quick command
  8. Merge tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    torvalds committed Nov 23, 2012
    …t/tiwai/sound
    
    Pull sound fixes from Takashi Iwai:
     "The highlight of this update is the fixes for ASoC kirkwood by
      Russell.  In addition to that, a couple of regression fixes for
      HD-audio due to the runtime PM support on 3.7, and other driver-
      specific regression fixes like USB MIDI on non-standard USB audio
      drivers."
    
    * tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
      ALSA: snd-usb: properly initialize the sync endpoint
      ALSA: hda - Cirrus: Correctly clear line_out_pins when moving to speaker
      ALSA: hda - Add support for Realtek ALC292
      ASoC: kirkwood-i2s: more pause-mode fixes
      ASoC: kirkwood-i2s: fix DMA underruns
      ASoC: kirkwood-i2s: fix DCO lock detection
      ASoC: kirkwood-dma: don't ignore other irq causes on error
      ASoC: kirkwood-dma: fix use of virt_to_phys()
      ALSA: hda - Limit runtime PM support only to known Intel chips
      ALSA: hda - Fix recursive suspend/resume call
      ALSA: ua101, usx2y: fix broken MIDI output
      ASoC: arizona: Fix typo - Swap value in 48k_rates[] and 44k1_rates[]
      ASoC: bells: Fix up git patch application failure
      ASoC: cs4271: free allocated GPIO
  9. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    torvalds committed Nov 23, 2012
    Pull networkign fixes from David Miller:
     "Networking bug fixes, Cacio e Pepe edition:
    
      1) BNX2X accidently accesses chip rev specific registers without an
         appropriate guard, fix from Ariel Elior.
    
      2) When we removed the routing cache, we set ip_rt_max_size to ~0 just
         to keep reporting a value to userspace via sysfs.  But the ipv4
         IPSEC layer was using this to tune itself which is completely bogus
         to now do.  Fix from Steffen Klassert.
    
      3) Missing initialization in netfilter ipset code from Jozsef
         Kadlecsik.
    
      4) Check CTA_TIMEOUT_NAME length properly in netfilter cttimeout code,
         fix from Florian Westphal.
    
      5) After removing the routing cache, we inadvertantly are caching
         multicast routes that end up looping back locally, we cannot do
         that legitimately any more.  Fix from Julian Anastasov.
    
      6) Revert a race fix for 8139cp qemu/kvm that doesn't actually work
         properly on real hardware.  From Francois Romieu.
    
      7) Fixup errors in example command lines in VXLAN device docs."
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
      bnx2x: remove redundant warning log
      vxlan: fix command usage in its doc
      8139cp: revert "set ring address before enabling receiver"
      ipv4: do not cache looped multicasts
      netfilter: cttimeout: fix buffer overflow
      netfilter: ipset: Fix range bug in hash:ip,port,net
      xfrm: Fix the gc threshold value for ipv4
  10. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

    torvalds committed Nov 23, 2012
    Pull sparc fix from David Miller:
     "Bug fix from Al Viro"
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
      sparc64: not any error from do_sigaltstack() should fail rt_sigreturn()
  11. Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/ker…

    torvalds committed Nov 23, 2012
    …nel/git/arm/arm-soc
    
    Pull one more ARM SoC fix from Olof Johansson:
     "I missed one pull request from Samsung with one fix in the previous
      batch.  Here it is -- a dma driver fix for an early version of silicon
      that they still support."
    
    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
      ARM: EXYNOS: PL330 MDMA1 fix for revision 0 of Exynos4210 SOC
  12. PM / QoS: fix wrong error-checking condition

    lyakh committed with Rafael J. Wysocki Nov 23, 2012
    dev_pm_qos_add_request() can return 0, 1, or a negative error code,
    therefore the correct error test is "if (error < 0)." Checking just for
    non-zero return code leads to erroneous setting of the req->dev pointer
    to NULL, which then leads to a repeated call to
    dev_pm_qos_add_ancestor_request() in st1232_ts_irq_handler(). This in turn
    leads to an Oops, when the I2C host adapter is unloaded and reloaded again
    because of the inconsistent state of its QoS request list.
    
    Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  13. bnx2x: remove redundant warning log

    Ariel Elior committed with davem330 Nov 22, 2012
    fix bug where a register which was only meant to be read in 578xx/57712
    devices causes a bogus error message to be logged when read from other
    devices.
    
    Signed-off-by: Ariel Elior <ariele@broadcom.com>
    Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  14. vxlan: fix command usage in its doc

    Zhi Yong Wu committed with davem330 Nov 22, 2012
      Some commands don't work in its example doc. The patch will fix it.
    
    Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  15. 8139cp: revert "set ring address before enabling receiver"

    françois romieu committed with davem330 Nov 21, 2012
    This patch reverts b01af45.
    
    The original patch was tested with emulated hardware. Real
    hardware chokes.
    
    Fixes https://bugzilla.kernel.org/show_bug.cgi?id=47041
    
    Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
    Acked-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  16. MPI: Fix compilation on MIPS with GCC 4.4 and newer

    mlauss committed with ralfbaechle Nov 22, 2012
    Since 4.4 GCC on MIPS no longer recognizes the "h" constraint,
    leading to this build failure:
    
      CC      lib/mpi/generic_mpih-mul1.o
    lib/mpi/generic_mpih-mul1.c: In function 'mpihelp_mul_1':
    lib/mpi/generic_mpih-mul1.c:50:3: error: impossible constraint in 'asm'
    
    This patch updates MPI with the latest umul_ppm implementations for MIPS.
    
    Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
    Cc: Linux-MIPS <linux-mips@linux-mips.org>
    Cc: Dmitry Kasatkin <dmitry.kasatkin@intel.com>
    Cc: James Morris <jmorris@namei.org>
    Patchwork: https://patchwork.linux-mips.org/patch/4612/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  17. MIPS: Fix crash that occurs when function tracing is enabled

    alcooper committed with ralfbaechle Nov 15, 2012
    A recent patch changed some irq routines from inlines to functions.
    These routines are called by the tracer code. Now that they're functions,
    if they are compiled for function tracing they will call the tracer
    and crash the system due to infinite recursion. The fix disables
    tracing in these functions by using "notrace" in the function
    definition.
    
    Signed-off-by: Al Cooper <alcooperx@gmail.com>
    Reviewed-by: David Daney <david.daney@cavium.com>
    Pathchwork: https://patchwork.linux-mips.org/patch/4564/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  18. MIPS: Merge overlapping bootmem ranges

    ralfbaechle committed Nov 15, 2012
    Without this, we may end up with something like this in /proc/iomem:
    
    01100000-014fffff : System RAM
      01100000-013bf48f : Kernel code
      013bf490-0149e01f : Kernel data
    01500000-0c0fffff : System RAM
    
    but the two System RAM ranges should be one single range.  This particular
    case will result in kexec failure on Octeon systems if the kernel being
    loaded by kexec is bigger than the already running kernel.
    
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  19. block: Don't access request after it might be freed

    rolandd committed with axboe Nov 22, 2012
    After we've done __elv_add_request() and __blk_run_queue() in
    blk_execute_rq_nowait(), the request might finish and be freed
    immediately.  Therefore checking if the type is REQ_TYPE_PM_RESUME
    isn't safe afterwards, because if it isn't, rq might be gone.
    Instead, check beforehand and stash the result in a temporary.
    
    This fixes crashes in blk_execute_rq_nowait() I get occasionally when
    running with lots of memory debugging options enabled -- I think this
    race is usually harmless because the window for rq to be reallocated
    is so small.
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Cc: stable@kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  20. mtip32xx: Fix padding issue

    Selvan Mani committed with axboe Nov 14, 2012
    Hi Jens,
    
    Another tiny patch.
    
    Removed __packed before the struct smart_attr and added __packed at end of
    the structure to fix padding issue.
    
    Signed-off-by: Selvan Mani  <smani@micron.com>
    Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  21. aoe: avoid running request handler on plugged queue

    ecashin committed with axboe Nov 9, 2012
    Calling the request handler directly on a plugged queue defeats
    the performance improvements provided by the plugging mechanism.
    Use the __blk_run_queue function instead of calling the request
    handler directly, so that we don't interfere with the block
    layer's ability to plug the queue.
    
    Signed-off-by: Ed Cashin <ecashin@coraid.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  22. mtip32xx: fix potential NULL pointer dereference in mtip_timeout_func…

    Wei Yongjun committed with axboe Nov 8, 2012
    …tion()
    
    The dereference to port should be moved below the NULL test.
    
    dpatch engine is used to auto generate this patch.
    (https://github.com/weiyj/dpatch)
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  23. mtip32xx: fix shift larger than type warning

    axboe committed Nov 8, 2012
    If we're building a 32-bit kernel and CONFIG_LBADF isn't set,
    sector_t is 32-bits wide. The shifts by 32 and 40 are thus
    larger than we support.
    
    Cast the sector offset to a u64 to avoid these warnings.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  24. mtip32xx: Fix incorrect mask used for erase mode

    Selvan Mani committed with axboe Nov 7, 2012
    Previous commit use value 3 for erasemode mask.
    Changing the mask to correct value to 2
    
    Signed-off-by: Selvan Mani <smani@micron.com>
    Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  25. mtip32xx: Fix to make lba address correct in big-endian systems

    Selvan Mani committed with axboe Nov 7, 2012
    Earlier lba address was assigned directly to lba_low and lba_low_ex,
    which would result in a different number (bytes reversed) in
    big-endian systems. Now assigning lba address byte-by-byte to fis.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Selvan Mani <smani@micron.com>
    Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  26. mtip32xx: fix potential crash on SEC_ERASE_UNIT

    Selvan Mani committed with axboe Nov 7, 2012
    The mtip driver lifted this code from elsewhere and then added a special
    handling check for SEC_ERASE_UNIT. If the caller tries to do a security
    erase but passes no output data for the command then outbuf is not
    allocated and the driver duly explodes.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Selvan Mani <smani@micron.com>
    Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
  27. dm: fix deadlock with request based dm and queue request_fn recursion

    axboe committed Nov 6, 2012
    Request based dm attempts to re-run the request queue off the
    request completion path. If used with a driver that potentially does
    end_io from its request_fn, we could deadlock trying to recurse
    back into request dispatch. Fix this by punting the request queue
    run to kblockd.
    
    Tested to fix a quickly reproducible deadlock in such a scenario.
    
    Cc: stable@kernel.org
    Acked-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>