1. 06 Jul, 2012 5 commits
  2. 05 Jul, 2012 9 commits
  3. 04 Jul, 2012 11 commits
    • Benoit Cousson's avatar
      ARM: OMAP2+: hwmod data: Fix wrong McBSP clock alias on OMAP4 · d7a0b513
      Benoit Cousson authored
      The commit 503d0ea2
        ARM: OMAP4: hwmod data: Add aliases for McBSP fclk clocks
      
      added a wrong "prcm_clk" alias for PRCM clock whereas the McBSP
      driver and previous OMAPs are using "prcm_fck".
      
      It thus lead to the following warning.
      
      [   47.409729] omap-mcbsp: clks: could not clk_get() prcm_fck
      
      Fix that by changing the opt_clk role to prcm_fck.
      Reported-by: default avatarMisael Lopez Cruz <misael.lopez@ti.com>
      Signed-off-by: default avatarBenoit Cousson <b-cousson@ti.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Tested-by: default avatarSebastien Guiriec <s-guiriec@ti.com>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      d7a0b513
    • Paul Walmsley's avatar
      ARM: OMAP4: hwmod data: temporarily comment out data for the usb_host_fs and aess IP blocks · b0a70cc8
      Paul Walmsley authored
      The OMAP4 usb_host_fs (OHCI) and AESS IP blocks require some special
      programming for them to enter idle.  Without this programming, they
      will prevent the rest of the chip from entering full chip idle.
      
      To implement the idle programming cleanly, this will take some
      coordination between maintainers.  This is likely to take some time,
      so it is probably best to leave this for 3.6 or 3.7.  So, in the
      meantime, prevent these IP blocks from being registered.
      
      Later, once the appropriate support is available, this patch can be
      reverted.
      
      This second version comments out the IP block data since Benoît didn't
      like removing it.
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      b0a70cc8
    • Arnd Bergmann's avatar
      Merge branch 'fixes' of git://github.com/hzhuang1/linux into fixes · 8df0fd93
      Arnd Bergmann authored
      From Haojian Zhuang <haojian.zhuang@gmail.com>:
      
      * 'fixes' of git://github.com/hzhuang1/linux:
        ARM: mmp: remove mach/gpio-pxa.h
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      8df0fd93
    • Arnd Bergmann's avatar
      Merge tag 'v3.5-imx-fixes' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes · 811dde65
      Arnd Bergmann authored
      From Sascha Hauer <s.hauer@pengutronix.de>:
      
      ARM i.MX fixes for v3.5-rc5
      
      * tag 'v3.5-imx-fixes' of git://git.pengutronix.de/git/imx/linux-2.6:
        ARM: imx: assert SCC gate stays enabled
        ARM: imx27_visstrim_m10: Do not include <asm/system.h>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      811dde65
    • Andrew Lunn's avatar
      ARM: Orion: Fix WDT compile for Dove and MV78xx0 · 1e0c1ce0
      Andrew Lunn authored
      Commit 0fa1f060 (ARM: Orion: Fix
      Virtual/Physical mixup with watchdog) broke the Dove & MV78xx0
      build. Although these two SoC don't use the watchdog, the shared
      platform code still needs to build. Add the necessary defines.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Tested-by: default avatarNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      1e0c1ce0
    • Paul Bolle's avatar
      ARM: mmp: remove mach/gpio-pxa.h · c12a3cb9
      Paul Bolle authored
      Commit 157d2644 ("ARM: pxa: change gpio
      to platform device") removed all includes of mach/gpio-pxa.h. It kept
      this unused header in the tree. Using it can't work, as it itself
      includes the non-existent header plat/gpio-pxa.h. This header can safely
      be removed.
      Signed-off-by: default avatarPaul Bolle <pebolle@tiscali.nl>
      Acked-by: default avatarEric Miao <eric.y.miao@gmail.com>
      Signed-off-by: default avatarHaojian Zhuang <haojian.zhuang@gmail.com>
      c12a3cb9
    • Alexander Holler's avatar
      leds: heartbeat: fix bug on panic · fb31fbeb
      Alexander Holler authored
      With commit 49dca5ae I introduced
      a bug (visible if CONFIG_PROVE_RCU is enabled) which occures when a panic
      has happened:
      
      [ 1526.520230] ===============================
      [ 1526.520230] [ INFO: suspicious RCU usage. ]
      [ 1526.520230] 3.5.0-rc1+ #12 Not tainted
      [ 1526.520230] -------------------------------
      [ 1526.520230] /c/kernel-tests/mm/include/linux/rcupdate.h:436 Illegal context switch in RCU read-side critical section!
      [ 1526.520230]
      [ 1526.520230] other info that might help us debug this:
      [ 1526.520230]
      [ 1526.520230]
      [ 1526.520230] rcu_scheduler_active = 1, debug_locks = 0
      [ 1526.520230] 3 locks held by net.agent/3279:
      [ 1526.520230]  #0:  (&mm->mmap_sem){++++++}, at: [<ffffffff82f85962>] do_page_fault+0x193/0x390
      [ 1526.520230]  #1:  (panic_lock){+.+...}, at: [<ffffffff82ed2830>] panic+0x37/0x1d3
      [ 1526.520230]  #2:  (rcu_read_lock){.+.+..}, at: [<ffffffff810b9b28>] rcu_lock_acquire+0x0/0x29
      [ 1526.520230]
      [ 1526.520230] stack backtrace:
      [ 1526.520230] Pid: 3279, comm: net.agent Not tainted 3.5.0-rc1+ #12
      [ 1526.520230] Call Trace:
      [ 1526.520230]  [<ffffffff810e1570>] lockdep_rcu_suspicious+0x109/0x112
      [ 1526.520230]  [<ffffffff810bfe3a>] rcu_preempt_sleep_check+0x45/0x47
      [ 1526.520230]  [<ffffffff810bfe5a>] __might_sleep+0x1e/0x19a
      [ 1526.520230]  [<ffffffff82f8010e>] down_write+0x26/0x81
      [ 1526.520230]  [<ffffffff8276a966>] led_trigger_unregister+0x1f/0x9c
      [ 1526.520230]  [<ffffffff8276def5>] heartbeat_reboot_notifier+0x15/0x19
      [ 1526.520230]  [<ffffffff82f85bf5>] notifier_call_chain+0x96/0xcd
      [ 1526.520230]  [<ffffffff82f85cba>] __atomic_notifier_call_chain+0x8e/0xff
      [ 1526.520230]  [<ffffffff81094b7c>] ? kmsg_dump+0x37/0x1eb
      [ 1526.520230]  [<ffffffff82f85d3f>] atomic_notifier_call_chain+0x14/0x16
      [ 1526.520230]  [<ffffffff82ed28e1>] panic+0xe8/0x1d3
      [ 1526.520230]  [<ffffffff811473e2>] out_of_memory+0x15d/0x1d3
      
      So in case of a panic, now just turn of the LED. Other approaches like
      scheduling a work to unregister the trigger aren't working because there
      isn't much which still runs after a panic occured (except timers).
      Signed-off-by: default avatarAlexander Holler <holler@ahsoftware.de>
      Signed-off-by: default avatarBryan Wu <bryan.wu@canonical.com>
      fb31fbeb
    • Uwe Kleine-König's avatar
      ARM: imx: assert SCC gate stays enabled · c520c921
      Uwe Kleine-König authored
      The SCC clock is needed in internal boot mode and so must keep enabled.
      This same issue was fixed for the pre-common-clk code in commit
      
      	3d6e6149 (mx35: Fix boot ROM hang in internal boot mode)
      
      Cc: John Ogness <jogness@linutronix.de>
      Cc: Hans J. Koch <hjk@hansjkoch.de>
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
      c520c921
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux · 9e85a6f9
      Linus Torvalds authored
      Pull fix to common clk framework from Michael Turquette:
       "The previous set of common clk fixes for -rc5 left an uninitialized
        int which could lead to bad array indexing when switching clock
        parents.  The issue is fixed with a trivial change to the code flow in
        __clk_set_parent."
      
      * tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux:
        clk: fix parent validation in __clk_set_parent()
      9e85a6f9
    • Linus Torvalds's avatar
      Merge tag 'md-3.5-fixes' of git://neil.brown.name/md · 6c8addcb
      Linus Torvalds authored
      Pull raid10 build failure fix from NeilBrown:
       "I really shouldn't do important things late in the day.  It seems that
        I get careless."
      
      * tag 'md-3.5-fixes' of git://neil.brown.name/md:
        md/raid10: fix careless build error
      6c8addcb
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 56728748
      Linus Torvalds authored
      Pull networking update from David Miller:
      
       1) Fix RX sequence number handling in mwifiex, from Stone Piao.
      
       2) Netfilter ipset mis-compares device names, fix from Florian
          Westphal.
      
       3) Fix route leak in ipv6 IPVS, from Eric Dumazet.
      
       4) NFS fixes.  Several buffer overflows in NCI layer from Dan
          Rosenberg, and release sock OOPS'er fix from Eric Dumazet.
      
       5) Fix WEP handling ath9k, we started using a bit the chip provides to
          indicate undecrypted packets but that bit turns out to be unreliable
          in certain configurations.  Fix from Felix Fietkau.
      
       6) Fix Kconfig dependency bug in wlcore, from Randy Dunlap.
      
       7) New USB IDs for rtlwifi driver from Larry Finger.
      
       8) Fix crashes in qmi_wwan usbnet driver when disconnecting, from Bjørn
          Mork.
      
       9) Gianfar driver programs coalescing settings properly in single queue
          mode, but does not do so in multi-queue mode.  Fix from Claudiu
          Manoil.
      
      10) Missing module.h include in davinci_cpdma.c, from Daniel Mack.
      
      11) Need dummy handler for IPSET_CMD_NONE otherwise we crash in ipset if
          we get this via nfnetlink, fix from Tomasz Bursztyka.
      
      12) Missing RCU unlock in nfnetlink error path, also from Tomasz.
      
      13) Fix divide by zero in igbvf when the user tries to set an RX
          coalescing value of 0 usecs, from Mitch A Williams.
      
      14) We can process SCTP sacks for the wrong transport, oops.  Fix from
          Neil Horman.
      
      15) Remove hw IP payload checksumming from e1000e driver.  This has zery
          value in our stack, and turning it on creates a very unintuitive
          restriction for users when using jumbo MTUs.
      
          Specifically, when IP payload checksums are on you cannot use both
          receive hashing offload and jumbo MTU.  Fix from Bruce Allan.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (27 commits)
        e1000e: remove use of IP payload checksum
        sctp: be more restrictive in transport selection on bundled sacks
        igbvf: fix divide by zero
        netfilter: nfnetlink: fix missing rcu_read_unlock in nfnetlink_rcv_msg
        netfilter: ipset: fix crash if IPSET_CMD_NONE command is sent
        davinci_cpdma: include linux/module.h
        gianfar: Fix RXICr/TXICr programming for multi-queue mode
        net: Downgrade CAP_SYS_MODULE deprecated message from error to warning.
        net: qmi_wwan: fix Oops while disconnecting
        mwifiex: fix memory leak associated with IE manamgement
        ath9k: fix panic caused by returning a descriptor we have queued for reuse
        mac80211: correct behaviour on unrecognised action frames
        ath9k: enable serialize_regmode for non-PCIE AR9287
        rtlwifi: rtl8192cu: New USB IDs
        NFC: Return from rawsock_release when sk is NULL
        iwlwifi: fix activating inactive stations
        wlcore: drop INET dependency
        ath9k: fix dynamic WEP related regression
        NFC: Prevent multiple buffer overflows in NCI
        netfilter: update location of my trees
        ...
      56728748
  4. 03 Jul, 2012 15 commits
    • NeilBrown's avatar
      md/raid10: fix careless build error · 10684112
      NeilBrown authored
      build error introduced by commit b357f04a
      
      That function doesn't get extra args until a later patch.  Bother.
      
      Reported-by: Fengguang Wu <wfg@linux.intel.com> 
      Reported-by: default avatarSimon Kirby <sim@hostway.ca>
      Reported-by: default avatarTobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      10684112
    • Linus Torvalds's avatar
      floppy: cancel any pending fd_timeouts before adding a new one · dab058fd
      Linus Torvalds authored
      In commit 070ad7e7 ("floppy: convert to delayed work and
      single-thread wq") the 'fd_timeout' timer was converted to a delayed
      work.  However, the "del_timer(&fd_timeout)" was lost in the process,
      and any previous pending timeouts would stay active when we then
      re-queued the timeout.
      
      This resulted in the floppy probe sequence having a (stale) 20s timeout
      rather than the intended 3s timeout, and thus made booting with the
      floppy driver (but no actual floppy controller) take much longer than it
      should.
      
      Of course, there's little reason for most people to compile the floppy
      driver into the kernel at all, which is why most people never noticed.
      
      Canceling the delayed work where we used to do the del_timer() fixes the
      issue, and makes the floppy probing use the proper new timeout instead.
      The three second timeout is still very wasteful, but better than the 20s
      one.
      Reported-and-tested-by: default avatarAndi Kleen <ak@linux.intel.com>
      Reported-and-tested-by: default avatarCalvin Walton <calvin.walton@kepstin.ca>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dab058fd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · a3da2c69
      Linus Torvalds authored
      Pull block bits from Jens Axboe:
       "As vacation is coming up, thought I'd better get rid of my pending
        changes in my for-linus branch for this iteration.  It contains:
      
         - Two patches for mtip32xx.  Killing a non-compliant sysfs interface
           and moving it to debugfs, where it belongs.
      
         - A few patches from Asias.  Two legit bug fixes, and one killing an
           interface that is no longer in use.
      
         - A patch from Jan, making the annoying partition ioctl warning a bit
           less annoying, by restricting it to !CAP_SYS_RAWIO only.
      
         - Three bug fixes for drbd from Lars Ellenberg.
      
         - A fix for an old regression for umem, it hasn't really worked since
           the plugging scheme was changed in 3.0.
      
         - A few fixes from Tejun.
      
         - A splice fix from Eric Dumazet, fixing an issue with pipe
           resizing."
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        scsi: Silence unnecessary warnings about ioctl to partition
        block: Drop dead function blk_abort_queue()
        block: Mitigate lock unbalance caused by lock switching
        block: Avoid missed wakeup in request waitqueue
        umem: fix up unplugging
        splice: fix racy pipe->buffers uses
        drbd: fix null pointer dereference with on-congestion policy when diskless
        drbd: fix list corruption by failing but already aborted reads
        drbd: fix access of unallocated pages and kernel panic
        xen/blkfront: Add WARN to deal with misbehaving backends.
        blkcg: drop local variable @q from blkg_destroy()
        mtip32xx: Create debugfs entries for troubleshooting
        mtip32xx: Remove 'registers' and 'flags' from sysfs
        blkcg: fix blkg_alloc() failure path
        block: blkcg_policy_cfq shouldn't be used if !CONFIG_CFQ_GROUP_IOSCHED
        block: fix return value on cfq_init() failure
        mtip32xx: Remove version.h header file inclusion
        xen/blkback: Copy id field when doing BLKIF_DISCARD.
      a3da2c69
    • Xiao Guangrong's avatar
      KVM: MMU: fix shrinking page from the empty mmu · 85b70591
      Xiao Guangrong authored
      Fix:
      
       [ 3190.059226] BUG: unable to handle kernel NULL pointer dereference at           (null)
       [ 3190.062224] IP: [<ffffffffa02aac66>] mmu_page_zap_pte+0x10/0xa7 [kvm]
       [ 3190.063760] PGD 104f50067 PUD 112bea067 PMD 0
       [ 3190.065309] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
       [ 3190.066860] CPU 1
      [ ...... ]
       [ 3190.109629] Call Trace:
       [ 3190.111342]  [<ffffffffa02aada6>] kvm_mmu_prepare_zap_page+0xa9/0x1fc [kvm]
       [ 3190.113091]  [<ffffffffa02ab2f5>] mmu_shrink+0x11f/0x1f3 [kvm]
       [ 3190.114844]  [<ffffffffa02ab25d>] ? mmu_shrink+0x87/0x1f3 [kvm]
       [ 3190.116598]  [<ffffffff81150c9d>] ? prune_super+0x142/0x154
       [ 3190.118333]  [<ffffffff8110a4f4>] ? shrink_slab+0x39/0x31e
       [ 3190.120043]  [<ffffffff8110a687>] shrink_slab+0x1cc/0x31e
       [ 3190.121718]  [<ffffffff8110ca1d>] do_try_to_free_pages
      
      This is caused by shrinking page from the empty mmu, although we have
      checked n_used_mmu_pages, it is useless since the check is out of mmu-lock
      Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      85b70591
    • Xiao Guangrong's avatar
      KVM: fix fault page leak · f4119304
      Xiao Guangrong authored
      fault_page is forgot to be freed
      Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      f4119304
    • Rajendra Nayak's avatar
      clk: fix parent validation in __clk_set_parent() · 863b1327
      Rajendra Nayak authored
      The below commit introduced a bug in __clk_set_parent()
      which could cause it to *skip* the parent validation
      which makes sure the parent passed to the api is a valid
      one.
      
          commit 7975059d
          Author: Rajendra Nayak <rnayak@ti.com>
          Date:   Wed Jun 6 14:41:31 2012 +0530
      
              clk: Allow late cache allocation for clk->parents
      
      This was identified by the following compiler warning..
      
          drivers/clk/clk.c: In function '__clk_set_parent':
          drivers/clk/clk.c:1083:5: warning: 'i' may be used uninitialized in this function [-Wuninitialized]
      
      .. as reported by Marc Kleine-Budde.
      
      There were various options discussed on how to fix this, one
      being initing 'i' to clk->num_parents, but the below approach
      was found to be more appropriate as it also makes the 'parent
      validation' code simpler to read.
      Reported-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
      Signed-off-by: default avatarRajendra Nayak <rnayak@ti.com>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      Cc: stable@kernel.org
      863b1327
    • Linus Torvalds's avatar
      Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · ff826b2b
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Just a few driver-specific fixes for ASoC and HD-audio."
      
      * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Fix no sound from ALC662 after Windows reboot
        ASoC: tlv320aic3x: Fix codec pll configure bug
        ASoC: wm2200: Add missing BCLK rate
      ff826b2b
    • Linus Torvalds's avatar
      Merge tag 'dm-3.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm · 3492ee72
      Linus Torvalds authored
      Pull device-mapper fixes from Alasdair G Kergon:
       "Four minor thin provisioning fixes and correct and update dm-verity
        documentation."
      
      * tag 'dm-3.5-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
        dm: verity fix documentation
        dm persistent data: fix allocation failure in space map checker init
        dm persistent data: handle space map checker creation failure
        dm persistent data: fix shadow_info_leak on dm_tm_destroy
        dm thin: commit metadata before creating metadata snapshot
      3492ee72
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 73e60805
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "One regression fix, two radeon fixes (one for an oops), and an i915
        fix to unload framebuffers earlier.
      
        We originally were going to leave the i915 fix until -next, but grub2
        in some situations causes vesafb/efifb to be loaded now, and this
        causes big slowdowns, and I have reports in rawhide I'd like to have
        fixed."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/i915: kick any firmware framebuffers before claiming the gtt
        drm: edid: Don't add inferred modes with higher resolution
        drm/radeon: fix rare segfault
        drm/radeon: fix VM page table setup on SI
      73e60805
    • Linus Torvalds's avatar
      Merge tag 'md-3.5-fixes' of git://neil.brown.name/md · 2fb748d2
      Linus Torvalds authored
      Pull md fixes from NeilBrown:
       "md: collection of bug fixes for 3.5
      
        You go away for 2 weeks vacation and what do you get when you come
        back? Piles of bugs :-)
      
        Some found by inspection, some by testing, some during use in the
        field, and some while developing for the next window..."
      
      * tag 'md-3.5-fixes' of git://neil.brown.name/md:
        md: fix up plugging (again).
        md: support re-add of recovering devices.
        md/raid1: fix bug in read_balance introduced by hot-replace
        raid5: delayed stripe fix
        md/raid456: When read error cannot be recovered, record bad block
        md: make 'name' arg to md_register_thread non-optional.
        md/raid10: fix failure when trying to repair a read error.
        md/raid5: fix refcount problem when blocked_rdev is set.
        md:Add blk_plug in sync_thread.
        md/raid5: In ops_run_io, inc nr_pending before calling md_wait_for_blocked_rdev
        md/raid5: Do not add data_offset before call to is_badblock
        md/raid5: prefer replacing failed devices over want-replacement devices.
        md/raid10: Don't try to recovery unmatched (and unused) chunks.
      2fb748d2
    • Linus Torvalds's avatar
      Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 3bfd2454
      Linus Torvalds authored
      Pull security layer fixes from James Morris.
      
      A documentation update, and a nommu build fix.
      
      * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        security: Fix nommu build.
        security: document no_new_privs
      3bfd2454
    • Milan Broz's avatar
      dm: verity fix documentation · 18068bdd
      Milan Broz authored
      Veritysetup is now part of cryptsetup package.
      Remove on-disk header description (which is not parsed in kernel)
      and point users to cryptsetup where it the format is documented.
      Mention units for block size paramaters.
      Fix target line specification and dmsetup parameters.
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      18068bdd
    • Mike Snitzer's avatar
      dm persistent data: fix allocation failure in space map checker init · b0239faa
      Mike Snitzer authored
      If CONFIG_DM_DEBUG_SPACE_MAPS is enabled and memory is fragmented and a
      sufficiently-large metadata device is used in a thin pool then the space
      map checker will fail to allocate the memory it requires.
      
      Switch from kmalloc to vmalloc to allow larger virtually contiguous
      allocations for the space map checker's internal count arrays.
      Reported-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      b0239faa
    • Mike Snitzer's avatar
      dm persistent data: handle space map checker creation failure · 62662303
      Mike Snitzer authored
      If CONFIG_DM_DEBUG_SPACE_MAPS is enabled and dm_sm_checker_create()
      fails, dm_tm_create_internal() would still return success even though it
      cleaned up all resources it was supposed to have created.  This will
      lead to a kernel crash:
      
      general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
      ...
      RIP: 0010:[<ffffffff81593659>]  [<ffffffff81593659>] dm_bufio_get_block_size+0x9/0x20
      Call Trace:
        [<ffffffff81599bae>] dm_bm_block_size+0xe/0x10
        [<ffffffff8159b8b8>] sm_ll_init+0x78/0xd0
        [<ffffffff8159c1a6>] sm_ll_new_disk+0x16/0xa0
        [<ffffffff8159c98e>] dm_sm_disk_create+0xfe/0x160
        [<ffffffff815abf6e>] dm_pool_metadata_open+0x16e/0x6a0
        [<ffffffff815aa010>] pool_ctr+0x3f0/0x900
        [<ffffffff8158d565>] dm_table_add_target+0x195/0x450
        [<ffffffff815904c4>] table_load+0xe4/0x330
        [<ffffffff815917ea>] ctl_ioctl+0x15a/0x2c0
        [<ffffffff81591963>] dm_ctl_ioctl+0x13/0x20
        [<ffffffff8116a4f8>] do_vfs_ioctl+0x98/0x560
        [<ffffffff8116aa51>] sys_ioctl+0x91/0xa0
        [<ffffffff81869f52>] system_call_fastpath+0x16/0x1b
      
      Fix the space map checker code to return an appropriate ERR_PTR and have
      dm_sm_disk_create() and dm_tm_create_internal() check for it with
      IS_ERR.
      Reported-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      62662303
    • Mike Snitzer's avatar
      dm persistent data: fix shadow_info_leak on dm_tm_destroy · 25d7cd6f
      Mike Snitzer authored
      Cleanup the shadow table before destroying the transaction manager.
      
      Reference: leak was identified with kmemleak when running
      test_discard_random_sectors in the thinp-test-suite.
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      25d7cd6f