1. 26 Sep, 2014 4 commits
    • Peter Feiner's avatar
      mm: softdirty: addresses before VMAs in PTE holes aren't softdirty · 87e6d49a
      Peter Feiner authored
      In PTE holes that contain VM_SOFTDIRTY VMAs, unmapped addresses before
      VM_SOFTDIRTY VMAs are reported as softdirty by /proc/pid/pagemap.  This
      bug was introduced in commit 68b5a652 ("mm: softdirty: respect
      VM_SOFTDIRTY in PTE holes").  That commit made /proc/pid/pagemap look at
      VM_SOFTDIRTY in PTE holes but neglected to observe the start of VMAs
      returned by find_vma.
      
      Tested:
        Wrote a selftest that creates a PMD-sized VMA then unmaps the first
        page and asserts that the page is not softdirty. I'm going to send the
        pagemap selftest in a later commit.
      Signed-off-by: default avatarPeter Feiner <pfeiner@google.com>
      Cc: Cyrill Gorcunov <gorcunov@openvz.org>
      Cc: Pavel Emelyanov <xemul@parallels.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
      Cc: Jamie Liu <jamieliu@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      87e6d49a
    • Joseph Qi's avatar
      ocfs2/dlm: do not get resource spinlock if lockres is new · 5760a97c
      Joseph Qi authored
      There is a deadlock case which reported by Guozhonghua:
        https://oss.oracle.com/pipermail/ocfs2-devel/2014-September/010079.html
      
      This case is caused by &res->spinlock and &dlm->master_lock
      misordering in different threads.
      
      It was introduced by commit 8d400b81 ("ocfs2/dlm: Clean up refmap
      helpers").  Since lockres is new, it doesn't not require the
      &res->spinlock.  So remove it.
      
      Fixes: 8d400b81 ("ocfs2/dlm: Clean up refmap helpers")
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Reviewed-by: default avatarjoyce.xue <xuejiufei@huawei.com>
      Reported-by: default avatarGuozhonghua <guozhonghua@h3c.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5760a97c
    • Andreas Rohner's avatar
      nilfs2: fix data loss with mmap() · 56d7acc7
      Andreas Rohner authored
      This bug leads to reproducible silent data loss, despite the use of
      msync(), sync() and a clean unmount of the file system.  It is easily
      reproducible with the following script:
      
        ----------------[BEGIN SCRIPT]--------------------
        mkfs.nilfs2 -f /dev/sdb
        mount /dev/sdb /mnt
      
        dd if=/dev/zero bs=1M count=30 of=/mnt/testfile
      
        umount /mnt
        mount /dev/sdb /mnt
        CHECKSUM_BEFORE="$(md5sum /mnt/testfile)"
      
        /root/mmaptest/mmaptest /mnt/testfile 30 10 5
      
        sync
        CHECKSUM_AFTER="$(md5sum /mnt/testfile)"
        umount /mnt
        mount /dev/sdb /mnt
        CHECKSUM_AFTER_REMOUNT="$(md5sum /mnt/testfile)"
        umount /mnt
      
        echo "BEFORE MMAP:\t$CHECKSUM_BEFORE"
        echo "AFTER MMAP:\t$CHECKSUM_AFTER"
        echo "AFTER REMOUNT:\t$CHECKSUM_AFTER_REMOUNT"
        ----------------[END SCRIPT]--------------------
      
      The mmaptest tool looks something like this (very simplified, with
      error checking removed):
      
        ----------------[BEGIN mmaptest]--------------------
        data = mmap(NULL, file_size - file_offset, PROT_READ | PROT_WRITE,
                    MAP_SHARED, fd, file_offset);
      
        for (i = 0; i < write_count; ++i) {
              memcpy(data + i * 4096, buf, sizeof(buf));
              msync(data, file_size - file_offset, MS_SYNC))
        }
        ----------------[END mmaptest]--------------------
      
      The output of the script looks something like this:
      
        BEFORE MMAP:    281ed1d5ae50e8419f9b978aab16de83  /mnt/testfile
        AFTER MMAP:     6604a1c31f10780331a6850371b3a313  /mnt/testfile
        AFTER REMOUNT:  281ed1d5ae50e8419f9b978aab16de83  /mnt/testfile
      
      So it is clear, that the changes done using mmap() do not survive a
      remount.  This can be reproduced a 100% of the time.  The problem was
      introduced in commit 136e8770 ("nilfs2: fix issue of
      nilfs_set_page_dirty() for page at EOF boundary").
      
      If the page was read with mpage_readpage() or mpage_readpages() for
      example, then it has no buffers attached to it.  In that case
      page_has_buffers(page) in nilfs_set_page_dirty() will be false.
      Therefore nilfs_set_file_dirty() is never called and the pages are never
      collected and never written to disk.
      
      This patch fixes the problem by also calling nilfs_set_file_dirty() if the
      page has no buffers attached to it.
      
      [akpm@linux-foundation.org: s/PAGE_SHIFT/PAGE_CACHE_SHIFT/]
      Signed-off-by: default avatarAndreas Rohner <andreas.rohner@gmx.net>
      Tested-by: default avatarAndreas Rohner <andreas.rohner@gmx.net>
      Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56d7acc7
    • Joseph Qi's avatar
      ocfs2: free vol_label in ocfs2_delete_osb() · f13a568e
      Joseph Qi authored
      osb->vol_label is malloced in ocfs2_initialize_super but not freed if
      error occurs or during umount, thus causing a memory leak.
      Signed-off-by: default avatarJoseph Qi <joseph.qi@huawei.com>
      Reviewed-by: default avatarjoyce.xue <xuejiufei@huawei.com>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f13a568e
  2. 24 Sep, 2014 23 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 005f8005
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Some final radeon and i915 fixes, black screens mostly"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon/cik: use a separate counter for CP init timeout
        drm/i915/hdmi: fix hdmi audio state readout
        drm/i915: Don't leak command parser tables on suspend/resume
        drm/radeon: add PX quirk for asus K53TK
        drm/radeon: add a backlight quirk for Amilo Xi 2550
        drm/radeon: add a module parameter for backlight control (v2)
        drm/radeon: Update IH_RB_RPTR register after each processed interrupt
        drm/radeon: Make IH ring overflow debugging output more useful
        drm/radeon: Clear RB_OVERFLOW bit earlier
      005f8005
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-3.17' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 67f33f30
      Dave Airlie authored
      - fix a backlight regression resulting in dark screen
      - add a PX quirk to avoid a hang with runtime pm
      - fix an init issue on the CIK compute rings
      - fix IH ring buffer overflows gracefully
      
      * 'drm-fixes-3.17' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon/cik: use a separate counter for CP init timeout
        drm/radeon: add PX quirk for asus K53TK
        drm/radeon: add a backlight quirk for Amilo Xi 2550
        drm/radeon: add a module parameter for backlight control (v2)
        drm/radeon: Update IH_RB_RPTR register after each processed interrupt
        drm/radeon: Make IH ring overflow debugging output more useful
        drm/radeon: Clear RB_OVERFLOW bit earlier
      67f33f30
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2014-09-24' of git://anongit.freedesktop.org/drm-intel into drm-fixes · 65e7e5d8
      Dave Airlie authored
      a couple of small fixes for 3.17 still.
      
      * tag 'drm-intel-fixes-2014-09-24' of git://anongit.freedesktop.org/drm-intel:
        drm/i915/hdmi: fix hdmi audio state readout
        drm/i915: Don't leak command parser tables on suspend/resume
      65e7e5d8
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · b94d525e
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "Here is a quick pull request primarily meant to address the deconfig
        fallout from changing SCSI_NETLINK from being used via 'select' to
        being used via 'depends'.
      
        I applied a set of 5 patches written by Michal Marek, and then I
        carefully audited all of the remaining config files, basically:
      
         1) I scanned every arch config file, and if it mentioned CONFIG_INET
            or CONFIG_UNIX, I made sure it had CONFIG_NET=y
      
         2) After that, I scanned every arch config file, and if it did not
            have CONFIG_NET=y I made sure it did not reference any networking
            config options.
      
        Finally, we have some late breaking wireless fixes in here from John
        Linville and co"
      
      [ And there's a sparc bpf fix snuck in too ]
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        sparc: bpf_jit: fix loads from negative offsets
        parisc: Update defconfigs which were missing CONFIG_NET.
        powerpc: Update defconfigs which were missing CONFIG_NET.
        s390: Update defconfigs which were missing CONFIG_NET.
        mips: Update some more defconfigs which were missing CONFIG_NET.
        sparc: Set CONFIG_NET=y in defconfigs
        sh: Set CONFIG_NET=y in defconfigs
        powerpc: Set CONFIG_NET=y in defconfigs
        parisc: Set CONFIG_NET=y in defconfigs
        mips: Set CONFIG_NET=y in defconfigs
        brcmfmac: Fix off by one bug in brcmf_count_20mhz_channels()
        ath9k: Fix NULL pointer dereference on early irq
        net: rfkill: gpio: Fix clock status
        NFC: st21nfca: Fix potential depmod dependency cycle
        NFC: st21nfcb: Fix depmod dependency cycle
        NFC: microread: Potential overflows in microread_target_discovered()
      b94d525e
    • Alexei Starovoitov's avatar
      sparc: bpf_jit: fix loads from negative offsets · 35607b02
      Alexei Starovoitov authored
      - fix BPF_LD|ABS|IND from negative offsets:
        make sure to sign extend lower 32 bits in 64-bit register
        before calling C helpers from JITed code, otherwise 'int k'
        argument of bpf_internal_load_pointer_neg_helper() function
        will be added as large unsigned integer, causing packet size
        check to trigger and abort the program.
      
        It's worth noting that JITed code for 'A = A op K' will affect
        upper 32 bits differently depending whether K is simm13 or not.
        Since small constants are sign extended, whereas large constants
        are stored in temp register and zero extended.
        That is ok and we don't have to pay a penalty of sign extension
        for every sethi, since all classic BPF instructions have 32-bit
        semantics and we only need to set correct upper bits when
        transitioning from JITed code into C.
      
      - though instructions 'A &= 0' and 'A *= 0' are odd, JIT compiler
        should not optimize them out
      Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      35607b02
    • David S. Miller's avatar
      Merge tag 'master-2014-09-23' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless · 543a2dff
      David S. Miller authored
      John W. Linville says:
      
      ====================
      pull request: wireless 2014-09-23
      
      Please consider pulling this one last batch of fixes intended for the 3.17 stream!
      
      For the NFC bits, Samuel says:
      
      "Hopefully not too late for a handful of NFC fixes:
      
      - 2 potential build failures for ST21NFCA and ST21NFCB, triggered by a
        depmod dependenyc cycle.
      - One potential buffer overflow in the microread driver."
      
      On top of that...
      
      Emil Goode provides a fix for a brcmfmac off-by-one regression which
      was introduced in the 3.17 cycle.
      
      Loic Poulain fixes a polarity mismatch for a variable assignment
      inside of rfkill-gpio.
      
      Wojciech Dubowik prevents a NULL pointer dereference in ath9k.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      543a2dff
    • David S. Miller's avatar
      parisc: Update defconfigs which were missing CONFIG_NET. · c899c3f3
      David S. Miller authored
      Commit df568d8e ("scsi: Use 'depends' with LIBFC instead of
      'select'.")  removed what happened to be the only instance of 'select
      NET'. Defconfigs that were relying on the select now lack networking
      support.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c899c3f3
    • David S. Miller's avatar
      powerpc: Update defconfigs which were missing CONFIG_NET. · 95d77997
      David S. Miller authored
      Commit df568d8e ("scsi: Use 'depends' with LIBFC instead of
      'select'.")  removed what happened to be the only instance of 'select
      NET'. Defconfigs that were relying on the select now lack networking
      support.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      95d77997
    • David S. Miller's avatar
      s390: Update defconfigs which were missing CONFIG_NET. · ff408ba1
      David S. Miller authored
      Commit df568d8e ("scsi: Use 'depends' with LIBFC instead of
      'select'.")  removed what happened to be the only instance of 'select
      NET'. Defconfigs that were relying on the select now lack networking
      support.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ff408ba1
    • David S. Miller's avatar
      mips: Update some more defconfigs which were missing CONFIG_NET. · af4de1b5
      David S. Miller authored
      Commit df568d8e ("scsi: Use 'depends' with LIBFC instead of
      'select'.")  removed what happened to be the only instance of 'select
      NET'. Defconfigs that were relying on the select now lack networking
      support.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      af4de1b5
    • Michal Marek's avatar
      sparc: Set CONFIG_NET=y in defconfigs · 1ab0b8b2
      Michal Marek authored
      Commit 5d6be6a5 ("scsi_netlink : Make SCSI_NETLINK dependent on NET
      instead of selecting NET") removed what happened to be the only instance
      of 'select NET'. Defconfigs that were relying on the select now lack
      networking support.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: sparclinux@vger.kernel.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1ab0b8b2
    • Michal Marek's avatar
      sh: Set CONFIG_NET=y in defconfigs · 925f7fad
      Michal Marek authored
      Commit 5d6be6a5 ("scsi_netlink : Make SCSI_NETLINK dependent on NET
      instead of selecting NET") removed what happened to be the only instance
      of 'select NET'. Defconfigs that were relying on the select now lack
      networking support.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: linux-sh@vger.kernel.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      925f7fad
    • Michal Marek's avatar
      powerpc: Set CONFIG_NET=y in defconfigs · 853e3e1d
      Michal Marek authored
      Commit 5d6be6a5 ("scsi_netlink : Make SCSI_NETLINK dependent on NET
      instead of selecting NET") removed what happened to be the only instance
      of 'select NET'. Defconfigs that were relying on the select now lack
      networking support.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: linuxppc-dev@lists.ozlabs.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      853e3e1d
    • Michal Marek's avatar
      parisc: Set CONFIG_NET=y in defconfigs · 25fee47f
      Michal Marek authored
      Commit 5d6be6a5 ("scsi_netlink : Make SCSI_NETLINK dependent on NET
      instead of selecting NET") removed what happened to be the only instance
      of 'select NET'. Defconfigs that were relying on the select now lack
      networking support.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: linux-parisc@vger.kernel.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      25fee47f
    • Michal Marek's avatar
      mips: Set CONFIG_NET=y in defconfigs · d1630f9e
      Michal Marek authored
      Commit 5d6be6a5 ("scsi_netlink : Make SCSI_NETLINK dependent on NET
      instead of selecting NET") removed what happened to be the only instance
      of 'select NET'. Defconfigs that were relying on the select now lack
      networking support.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: linux-mips@linux-mips.org
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d1630f9e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 02f130a7
      Linus Torvalds authored
      Pull one last block fix from Jens Axboe:
       "We've had an issue with scsi-mq where probing takes forever.  This was
        bisected down to the percpu changes for blk_mq_queue_enter(), and the
        fact we now suffer an RCU grace period when killing a queue.  SCSI
        creates and destroys tons of queues, so this let to 10s of seconds of
        stalls at boot for some.
      
        Tejun has a real fix for this, but it's too involved for 3.17.  So
        this is a temporary workaround to expedite the queue killing until we
        can fold in the real fix for 3.18 when that merge window opens"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-mq, percpu_ref: implement a kludge for SCSI blk-mq stall during probe
      02f130a7
    • Linus Torvalds's avatar
      Merge tag 'pci-v3.17-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 2d7ed01e
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
       "Here are a few fixes that should be in v3.17.
      
         - Reverting "Don't scan random busses" covers up a CardBus regression
           having to do with allocating CardBus bus numbers.
      
         - Reverting "Make sure bus numbers stay within parents bounds" covers
           up an ACPI _CRS bug that makes us reconfigure a bridge, causing a
           broken device behind it to stop responding.
      
         - The pciehp timeout change fixes some code we added in v3.17.
           Without the fix, we can send a new hotplug command too early,
           before the timeout has expired.
      
        I hope for better fixes for the reverts, but those will have to come
        after v3.17"
      
      * tag 'pci-v3.17-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: pciehp: Fix pcie_wait_cmd() timeout
        Revert "PCI: Make sure bus number resources stay within their parents bounds"
        Revert "PCI: Don't scan random busses in pci_scan_bridge()"
      2d7ed01e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 2368a942
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes three issues:
      
         - if ccp is loaded on a machine without ccp, it will incorrectly
           activate causing all requests to fail.  Fixed by preventing ccp
           from loading if hardware isn't available.
      
         - not all IRQs were enabled for the qat driver, leading to potential
           stalls when it is used
      
         - disabled buggy AVX CTR implementation in aesni"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: aesni - disable "by8" AVX CTR optimization
        crypto: ccp - Check for CCP before registering crypto algs
        crypto: qat - Enable all 32 IRQs
      2368a942
    • Linus Torvalds's avatar
      Merge tag 'media/v3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · eb55a2a9
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       "For some last time fixes:
         - a regression detected on Kernel 3.16 related to VBI Teletext
           application breakage on drivers using videobuf2 (see
           https://bugzilla.kernel.org/show_bug.cgi?id=84401).  The bug was
           noticed on saa7134 (migrated to VB2 on 3.16), but also affects
           em28xx (migrated on 3.9 to VB2);
         - two additional sanity checks at videobuf2;
         - two fixups to restore proper VBI support at the em28xx driver;
         - two Kernel oops fixups (at cx24123 and cx2341x drivers);
         - a bug at adv7604 where an if was doing just the opposite as it
           would be expected;
         - some documentation fixups to match the behavior defined at the
           Kernel"
      
      * tag 'media/v3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] em28xx-v4l: get rid of field "users" in struct em28xx_v4l2"
        [media] em28xx: fix VBI handling logic
        [media] DocBook media: improve the poll() documentation
        [media] DocBook media: fix the poll() 'no QBUF' documentation
        [media] vb2: fix VBI/poll regression
        [media] cx2341x: fix kernel oops
        [media] cx24123: fix kernel oops due to missing parent pointer
        [media] adv7604: fix inverted condition
        [media] media/radio: fix radio-miropcm20.c build with io.h header file
        [media] vb2: fix plane index sanity check in vb2_plane_cookie()
        [media] DocBook media: update version number and V4L2 changes
        [media] DocBook media: fix fieldname in struct v4l2_subdev_selection
        [media] vb2: fix vb2 state check when start_streaming fails
        [media] videobuf2-core.h: fix comment
        [media] videobuf2-core: add comments before the WARN_ON
        [media] videobuf2-dma-sg: fix for wrong GFP mask to sg_alloc_table_from_pages
      eb55a2a9
    • Linus Torvalds's avatar
      Merge tag 'md/3.17-more-fixes' of git://git.neil.brown.name/md · a90e41e2
      Linus Torvalds authored
      Pull bugfixes for md/raid1 from Neil Brown:
       "It is amazing how much easier it is to find bugs when you know one is
        there.  Two bug reports resulted in finding 7 bugs!
      
        All are tagged for -stable.  Those that can't cause (rare) data
        corruption, cause lockups.
      
        Particularly, but not only, fixing new "resync" code"
      
      * tag 'md/3.17-more-fixes' of git://git.neil.brown.name/md:
        md/raid1: fix_read_error should act on all non-faulty devices.
        md/raid1: count resync requests in nr_pending.
        md/raid1: update next_resync under resync_lock.
        md/raid1: Don't use next_resync to determine how far resync has progressed
        md/raid1: make sure resync waits for conflicting writes to complete.
        md/raid1: clean up request counts properly in close_sync()
        md/raid1:  be more cautious where we read-balance during resync.
        md/raid1: intialise start_next_window for READ case to avoid hang
      a90e41e2
    • Tejun Heo's avatar
      blk-mq, percpu_ref: implement a kludge for SCSI blk-mq stall during probe · 0a30288d
      Tejun Heo authored
      blk-mq uses percpu_ref for its usage counter which tracks the number
      of in-flight commands and used to synchronously drain the queue on
      freeze.  percpu_ref shutdown takes measureable wallclock time as it
      involves a sched RCU grace period.  This means that draining a blk-mq
      takes measureable wallclock time.  One would think that this shouldn't
      matter as queue shutdown should be a rare event which takes place
      asynchronously w.r.t. userland.
      
      Unfortunately, SCSI probing involves synchronously setting up and then
      tearing down a lot of request_queues back-to-back for non-existent
      LUNs.  This means that SCSI probing may take more than ten seconds
      when scsi-mq is used.
      
      This will be properly fixed by implementing a mechanism to keep
      q->mq_usage_counter in atomic mode till genhd registration; however,
      that involves rather big updates to percpu_ref which is difficult to
      apply late in the devel cycle (v3.17-rc6 at the moment).  As a
      stop-gap measure till the proper fix can be implemented in the next
      cycle, this patch introduces __percpu_ref_kill_expedited() and makes
      blk_mq_freeze_queue() use it.  This is heavy-handed but should work
      for testing the experimental SCSI blk-mq implementation.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarChristoph Hellwig <hch@infradead.org>
      Link: http://lkml.kernel.org/g/20140919113815.GA10791@lst.de
      Fixes: add703fd ("blk-mq: use percpu_ref for mq usage count")
      Cc: Kent Overstreet <kmo@daterainc.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Tested-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      0a30288d
    • Mathias Krause's avatar
      crypto: aesni - disable "by8" AVX CTR optimization · 7da4b29d
      Mathias Krause authored
      The "by8" implementation introduced in commit 22cddcc7 ("crypto: aes
      - AES CTR x86_64 "by8" AVX optimization") is failing crypto tests as it
      handles counter block overflows differently. It only accounts the right
      most 32 bit as a counter -- not the whole block as all other
      implementations do. This makes it fail the cryptomgr test #4 that
      specifically tests this corner case.
      
      As we're quite late in the release cycle, just disable the "by8" variant
      for now.
      Reported-by: default avatarRomain Francoise <romain@orebokech.com>
      Signed-off-by: default avatarMathias Krause <minipli@googlemail.com>
      Cc: Chandramouli Narayanan <mouli@linux.intel.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      7da4b29d
    • Tom Lendacky's avatar
      crypto: ccp - Check for CCP before registering crypto algs · c9f21cb6
      Tom Lendacky authored
      If the ccp is built as a built-in module, then ccp-crypto (whether
      built as a module or a built-in module) will be able to load and
      it will register its crypto algorithms.  If the system does not have
      a CCP this will result in -ENODEV being returned whenever a command
      is attempted to be queued by the registered crypto algorithms.
      
      Add an API, ccp_present(), that checks for the presence of a CCP
      on the system.  The ccp-crypto module can use this to determine if it
      should register it's crypto alogorithms.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarScot Doyle <lkml14@scotdoyle.com>
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Tested-by: default avatarScot Doyle <lkml14@scotdoyle.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c9f21cb6
  3. 23 Sep, 2014 13 commits