1. 13 5月, 2012 2 次提交
  2. 12 5月, 2012 11 次提交
    • M
      dm mpath: check if scsi_dh module already loaded before trying to load · 510193a2
      Mike Snitzer 提交于
      If the requested scsi_dh module is already loaded then skip
      request_module().
      
      Multipath table loads can hang in an unnecessary __request_module.
      Reported-by: NBen Marzinski <bmarzins@redhat.com>
      Cc: stable@kernel.org
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      510193a2
    • A
      dm thin: correct module description · 7cab8bf1
      Alasdair G Kergon 提交于
      Remove duplicate copy of string "device-mapper" (DM_NAME) from
      MODULE_DESCRIPTION.
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      7cab8bf1
    • M
      dm thin: fix unprotected use of prepared_discards list · c3a0ce2e
      Mike Snitzer 提交于
      Fix two places in commit 104655fd ("dm thin: support discards") that
      didn't use pool->lock to protect against concurrent changes to the
      prepared_discards list.
      
      Without this fix, thin_endio() can race with process_discard(), leading
      to concurrent list_add()s that result in the processes locking up with
      an error like the following:
      
      WARNING: at lib/list_debug.c:32 __list_add+0x8f/0xa0()
      ...
      list_add corruption. next->prev should be prev (ffff880323b96140), but was ffff8801d2c48440. (next=ffff8801d2c485c0).
      ...
      Pid: 17205, comm: kworker/u:1 Tainted: G        W  O 3.4.0-rc3.snitm+ #1
      Call Trace:
       [<ffffffff8103ca1f>] warn_slowpath_common+0x7f/0xc0
       [<ffffffff8103cb16>] warn_slowpath_fmt+0x46/0x50
       [<ffffffffa04f6ce6>] ? bio_detain+0xc6/0x210 [dm_thin_pool]
       [<ffffffff8124ff3f>] __list_add+0x8f/0xa0
       [<ffffffffa04f70d2>] process_discard+0x2a2/0x2d0 [dm_thin_pool]
       [<ffffffffa04f6a78>] ? remap_and_issue+0x38/0x50 [dm_thin_pool]
       [<ffffffffa04f7c3b>] process_deferred_bios+0x7b/0x230 [dm_thin_pool]
       [<ffffffffa04f7df0>] ? process_deferred_bios+0x230/0x230 [dm_thin_pool]
       [<ffffffffa04f7e42>] do_worker+0x52/0x60 [dm_thin_pool]
       [<ffffffff81056fa9>] process_one_work+0x129/0x450
       [<ffffffff81059b9c>] worker_thread+0x17c/0x3c0
       [<ffffffff81059a20>] ? manage_workers+0x120/0x120
       [<ffffffff8105eabe>] kthread+0x9e/0xb0
       [<ffffffff814ceda4>] kernel_thread_helper+0x4/0x10
       [<ffffffff8105ea20>] ? kthread_freezable_should_stop+0x70/0x70
       [<ffffffff814ceda0>] ? gs_change+0x13/0x13
      ---[ end trace 7e0a523bc5e52692 ]---
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      c3a0ce2e
    • M
      dm thin: reinstate missing mempool_free in cell_release_singleton · 03aaae7c
      Mike Snitzer 提交于
      Fix a significant memory leak inadvertently introduced during
      simplification of cell_release_singleton() in commit
      6f94a4c4 ("dm thin: fix stacked bi_next
      usage").
      
      A cell's hlist_del() must be accompanied by a mempool_free().
      Use __cell_release() to do this, like before.
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
      03aaae7c
    • L
      Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6 · bcc62fb0
      Linus Torvalds 提交于
      Pull GPIO omap bug fix from Grant Likely.
      
      * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        gpio/omap: fix incorrect initialization of omap_gpio_mod_init
      bcc62fb0
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · ec53646f
      Linus Torvalds 提交于
      Pull another powerpc irq fix from Benjamin Herrenschmidt:
       "It looks like my previous fix for the lazy irq masking problem wasn't
        quite enough.  There was another problem related to performance
        monitor interrupts acting as NMIs leaving the flags in an incorrect
        state.  Here's a fix that finally seems to make perf solid again."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/irq: Fix another case of lazy IRQ state getting out of sync
      ec53646f
    • L
      Merge branch '3.4-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 04e53358
      Linus Torvalds 提交于
      Pull target fix from Nicholas Bellinger:
       "This patch removes some incorrect legacy code to free se_lun_acl
        memory in the NodeACL release path that could potentially trigger an
        OOPS during shutdown once dynamic -> explicit initiator NodeACL
        conversion has occurred.
      
        That said, we've been able to trigger an OOPS in v4.0 code for this
        special case when the associated MappedLUNs had not also been made
        explicit based on active TPG LUN layout during the conversion, so it
        really makes senses to go ahead and drop this extra cruft to avoid any
        possible issues here.
      
        This ends up only effecting iscsi-target module code (it's the only
        user) and is CC'ed to stable."
      
      * '3.4-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        target: Drop incorrect se_lun_acl release for dynamic -> explict ACL conversion
      04e53358
    • B
      powerpc/irq: Fix another case of lazy IRQ state getting out of sync · 7c0482e3
      Benjamin Herrenschmidt 提交于
      So we have another case of paca->irq_happened getting out of
      sync with the HW irq state. This can happen when a perfmon
      interrupt occurs while soft disabled, as it will return to a
      soft disabled but hard enabled context while leaving a stale
      PACA_IRQ_HARD_DIS flag set.
      
      This patch fixes it, and also adds a test for the condition
      of those flags being out of sync in arch_local_irq_restore()
      when CONFIG_TRACE_IRQFLAGS is enabled.
      
      This helps catching those gremlins faster (and so far I
      can't seem see any anymore, so that's good news).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      7c0482e3
    • N
      target: Drop incorrect se_lun_acl release for dynamic -> explict ACL conversion · cfebf8f4
      Nicholas Bellinger 提交于
      This patch removes some potentially problematic legacy code within
      core_clear_initiator_node_from_tpg() that was originally intended to
      release left over se_lun_acl setup during dynamic NodeACL+MappedLUN
      generate when running with TPG demo-mode operation.
      
      Since we now only ever expect to allocate and release se_lun_acl from
      within target_core_fabric_configfs.c:target_fabric_make_mappedlun() and
      target_fabric_drop_mappedlun() context respectively, this code for
      demo-mode release is incorrect and needs to be removed.
      
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Andy Grover <agrover@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      cfebf8f4
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 4e25651b
      Linus Torvalds 提交于
      Pull a m68knommu fix from Greg Ungerer:
       "It contains a single fix for including the ColdFire QSPI interface
        setup code when enabled as a module.  This was broken in the
        consolidation of the ColdFire SoC device tables in the 3.4 merge
        window."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: enable qspi support when SPI_COLDFIRE_QSPI = m
      4e25651b
    • H
      mm: raise MemFree by reverting percpu_pagelist_fraction to 0 · 1b76b02f
      Hugh Dickins 提交于
      Why is there less MemFree than there used to be?  It perturbed a test,
      so I've just been bisecting linux-next, and now find the offender went
      upstream yesterday.
      
      Commit 93278814 "mm: fix division by 0 in percpu_pagelist_fraction()"
      mistakenly initialized percpu_pagelist_fraction to the sysctl's minimum 8,
      which leaves 1/8th of memory on percpu lists (on each cpu??); but most of
      us expect it to be left unset at 0 (and it's not then used as a divisor).
      
        MemTotal: 8061476kB  8061476kB  8061476kB  8061476kB  8061476kB  8061476kB
        Repetitive test with percpu_pagelist_fraction 8:
        MemFree:  6948420kB  6237172kB  6949696kB  6840692kB  6949048kB  6862984kB
        Same test with percpu_pagelist_fraction back to 0:
        MemFree:  7945000kB  7944908kB  7948568kB  7949060kB  7948796kB  7948812kB
      Signed-off-by: NHugh Dickins <hughd@google.com>
      [ We really should fix the crazy sysctl interface too, but that's a
        separate thing - Linus ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1b76b02f
  3. 11 5月, 2012 21 次提交
  4. 10 5月, 2012 6 次提交
    • J
      compat: Fix RT signal mask corruption via sigprocmask · b7dafa0e
      Jan Kiszka 提交于
      compat_sys_sigprocmask reads a smaller signal mask from userspace than
      sigprogmask accepts for setting.  So the high word of blocked.sig[0]
      will be cleared, releasing any potentially blocked RT signal.
      
      This was discovered via userspace code that relies on get/setcontext.
      glibc's i386 versions of those functions use sigprogmask instead of
      rt_sigprogmask to save/restore signal mask and caused RT signal
      unblocking this way.
      
      As suggested by Linus, this replaces the sys_sigprocmask based compat
      version with one that open-codes the required logic, including the merge
      of the existing blocked set with the new one provided on SIG_SETMASK.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b7dafa0e
    • T
      gpio/omap: fix incorrect initialization of omap_gpio_mod_init · 6edd94db
      Tarun Kanti DebBarma 提交于
      Initialization of irqenable, irqstatus registers is the common
      operation done in this function for all OMAP platforms, viz. OMAP1,
      OMAP2+. The latter _gpio_rmw()'s which supposedly got introduced
      wrongly to take care of OMAP2+ platforms were overwriting initially
      programmed OMAP1 value breaking functionality on OMAP1.
      Somehow incorrect assumption was made that each _gpio_rmw()'s were
      mutually exclusive. On close observation it is found that the first
      _gpio_rmw() which is supposedly done to take care of OMAP1 platform
      is generic enough and takes care of OMAP2+ platform as well.
      Therefore remove the latter _gpio_rmw() to irqenable as they are
      redundant now.
      
      Writing to ctrl and debounce_en registers for OMAP2+ platforms are
      modified to match the original(pre-cleanup) code where the registers
      are initialized with 0. In the cleanup series since we are using
      _gpio_rmw(reg, 0, 1), instead of __raw_writel(), we are just reading
      and writing the same values to ctrl and debounce_en. This is not an
      issue for debounce_en register because it has 0x0 as the default value.
      But in the case of ctrl register the default value is 0x2 (GATINGRATIO
       = 0x1) so that we end up writing 0x2 instead of intended 0 value.
      Therefore changing back to __raw_writel() as this is sufficient for
      this case besides simpler to understand.
      
      Also, change irqstatus initalization logic that avoids comparison
      with bool, besides making it fit in a single line.
      
      Cc: stable@vger.kernel.org
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Reported-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Tested-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Signed-off-by: NTarun Kanti DebBarma <tarun.kanti@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      6edd94db
    • D
      cifs: fix revalidation test in cifs_llseek() · 48a5730e
      Dan Carpenter 提交于
      This test is always true so it means we revalidate the length every
      time, which generates more network traffic.  When it is SEEK_SET or
      SEEK_CUR, then we don't need to revalidate.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Reviewed-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      48a5730e
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 7ee94d97
      Linus Torvalds 提交于
      Pull ARM: SoC fixes from Olof Johansson:
       "Things have slowed down a lot for us, but we have five more fixes for
        omap and kirkwood below.  Three are for boards setup issues, two are
        SoC-level fixes."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: OMAP: igep0020: fix smsc911x dummy regulator id
        ARM: orion5x: Fix GPIO enable bits for MPP9
        ARM: kirkwood: add missing kexec.h include
        ARM: OMAP: Revert "ARM: OMAP: ctrl: Fix CONTROL_DSIPHY register fields"
        ARM: OMAP1: Amstrad Delta: Fix wrong IRQ base in FIQ handler
      7ee94d97
    • L
      Merge tag 'regmap-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 22b6dd78
      Linus Torvalds 提交于
      Pull last minute regman bug fix from Mark Brown:
       "This is a last minute bug fix that was only just noticed since the
        code path that's being exercised here is one that is fairly rarely
        used.  The changelog for the change itself is extremely clear and the
        code itself is obvious to inspection so should be pretty safe."
      
      * tag 'regmap-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: fix possible memory corruption in regmap_bulk_read()
      22b6dd78
    • L
      Merge git://git.kernel.org/pub/scm/virt/kvm/kvm · 63f4711a
      Linus Torvalds 提交于
      Pull KVM fixes from Avi Kivity:
       "Two asynchronous page fault fixes (one guest, one host), a powerpc
        page refcount fix, and an ia64 build fix."
      
      * git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: ia64: fix build due to typo
        KVM: PPC: Book3S HV: Fix refcounting of hugepages
        KVM: Do not take reference to mm during async #PF
        KVM: ensure async PF event wakes up vcpu from halt
      63f4711a