1. 12 Mar, 2021 1 commit
    • Jens Axboe's avatar
      Merge tag 'nvme-5.12-2021-03-12' of git://git.infradead.org/nvme into block-5.12 · d4b64fd7
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for 5.12:
      
       - one more quirk (Dmitry Monakhov)
       - fix max_zone_append_sectors initialization (Chaitanya Kulkarni)
       - nvme-fc reset/create race fix (James Smart)
       - fix status code on aborts/resets (Hannes Reinecke)
       - fix the CSS check for ZNS namespaces (Chaitanya Kulkarni)
       - fix a use after free in a debug printk in nvme-rdma (Lv Yunlong)"
      
      * tag 'nvme-5.12-2021-03-12' of git://git.infradead.org/nvme:
        nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a
        nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done
        nvme-core: check ctrl css before setting up zns
        nvme-fc: fix racing controller reset and create association
        nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted
        nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange()
        nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
        nvme: simplify error logic in nvme_validate_ns()
        nvme: set max_zone_append_sectors nvme_revalidate_zones
      d4b64fd7
  2. 11 Mar, 2021 12 commits
  3. 10 Mar, 2021 2 commits
  4. 09 Mar, 2021 1 commit
  5. 05 Mar, 2021 11 commits
    • Xunlei Pang's avatar
      blk-cgroup: Fix the recursive blkg rwstat · 4f44657d
      Xunlei Pang authored
      The current blkio.throttle.io_service_bytes_recursive doesn't
      work correctly.
      
      As an example, for the following blkcg hierarchy:
       (Made 1GB READ in test1, 512MB READ in test2)
           test
          /    \
       test1   test2
      
      $ head -n 1 test/test1/blkio.throttle.io_service_bytes_recursive
      8:0 Read 1073684480
      $ head -n 1 test/test2/blkio.throttle.io_service_bytes_recursive
      8:0 Read 537448448
      $ head -n 1 test/blkio.throttle.io_service_bytes_recursive
      8:0 Read 537448448
      
      Clearly, above data of "test" reflects "test2" not "test1"+"test2".
      
      Do the correct summary in blkg_rwstat_recursive_sum().
      Signed-off-by: default avatarXunlei Pang <xlpang@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4f44657d
    • Stefan Haberland's avatar
      s390/dasd: fix hanging IO request during DASD driver unbind · 66f669a2
      Stefan Haberland authored
      Prevent that an IO request is build during device shutdown initiated by
      a driver unbind. This request will never be able to be processed or
      canceled and will hang forever. This will lead also to a hanging unbind.
      
      Fix by checking not only if the device is in READY state but also check
      that there is no device offline initiated before building a new IO request.
      
      Fixes: e443343e ("s390/dasd: blk-mq conversion")
      
      Cc: <stable@vger.kernel.org> # v4.14+
      Signed-off-by: default avatarStefan Haberland <sth@linux.ibm.com>
      Tested-by: default avatarBjoern Walk <bwalk@linux.ibm.com>
      Reviewed-by: default avatarJan Hoeppner <hoeppner@linux.ibm.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      66f669a2
    • Stefan Haberland's avatar
      s390/dasd: fix hanging DASD driver unbind · 7d365bd0
      Stefan Haberland authored
      In case of an unbind of the DASD device driver the function
      dasd_generic_remove() is called which shuts down the device.
      Among others this functions removes the int_handler from the cdev.
      During shutdown the device cancels all outstanding IO requests and waits
      for completion of the clear request.
      Unfortunately the clear interrupt will never be received when there is no
      interrupt handler connected.
      
      Fix by moving the int_handler removal after the call to the state machine
      where no request or interrupt is outstanding.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarStefan Haberland <sth@linux.ibm.com>
      Tested-by: default avatarBjoern Walk <bwalk@linux.ibm.com>
      Reviewed-by: default avatarJan Hoeppner <hoeppner@linux.ibm.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      7d365bd0
    • Jan Kara's avatar
      block: Try to handle busy underlying device on discard · 56887cff
      Jan Kara authored
      Commit 384d87ef ("block: Do not discard buffers under a mounted
      filesystem") made paths issuing discard or zeroout requests to the
      underlying device try to grab block device in exclusive mode. If that
      failed we returned EBUSY to userspace. This however caused unexpected
      fallout in userspace where e.g. FUSE filesystems issue discard requests
      from userspace daemons although the device is open exclusively by the
      kernel. Also shrinking of logical volume by LVM issues discard requests
      to a device which may be claimed exclusively because there's another LV
      on the same PV. So to avoid these userspace regressions, fall back to
      invalidate_inode_pages2_range() instead of returning EBUSY to userspace
      and return EBUSY only of that call fails as well (meaning that there's
      indeed someone using the particular device range we are trying to
      discard).
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=211167
      Fixes: 384d87ef ("block: Do not discard buffers under a mounted filesystem")
      CC: stable@vger.kernel.org
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      56887cff
    • Jens Axboe's avatar
      Merge tag 'nvme-5.12-2021-03-05' of git://git.infradead.org/nvme into block-5.12 · a2b658e4
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for 5.12:
      
       - more device quirks (Julian Einwag, Zoltán Böszörményi, Pascal Terjan)
       - fix a hwmon error return (Daniel Wagner)
       - fix the keep alive timeout initialization (Martin George)
       - ensure the model_number can't be changed on a used subsystem
         (Max Gurtovoy)"
      
      * tag 'nvme-5.12-2021-03-05' of git://git.infradead.org/nvme:
        nvmet: model_number must be immutable once set
        nvme-fabrics: fix kato initialization
        nvme-hwmon: Return error code when registration fails
        nvme-pci: add quirks for Lexar 256GB SSD
        nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
        nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
      a2b658e4
    • Max Gurtovoy's avatar
      nvmet: model_number must be immutable once set · d9f273b7
      Max Gurtovoy authored
      In case we have already established connection to nvmf target, it
      shouldn't be allowed to change the model_number. E.g. if someone will
      identify ctrl and get model_number of "my_model" later on will change
      the model_numbel via configfs to "my_new_model" this will break the NVMe
      specification for "Get Log Page – Persistent Event Log" that refers to
      Model Number as: "This field contains the same value as reported in the
      Model Number field of the Identify Controller data structure, bytes
      63:24."
      
      Although it doesn't mentioned explicitly that this field can't be
      changed, we can assume it.
      
      So allow setting this field only once: using configfs or in the first
      identify ctrl operation.
      Signed-off-by: default avatarMax Gurtovoy <mgurtovoy@nvidia.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      d9f273b7
    • Martin George's avatar
      nvme-fabrics: fix kato initialization · 32feb6de
      Martin George authored
      Currently kato is initialized to NVME_DEFAULT_KATO for both
      discovery & i/o controllers. This is a problem specifically
      for non-persistent discovery controllers since it always ends
      up with a non-zero kato value. Fix this by initializing kato
      to zero instead, and ensuring various controllers are assigned
      appropriate kato values as follows:
      
      non-persistent controllers  - kato set to zero
      persistent controllers      - kato set to NVMF_DEV_DISC_TMO
                                    (or any positive int via nvme-cli)
      i/o controllers             - kato set to NVME_DEFAULT_KATO
                                    (or any positive int via nvme-cli)
      Signed-off-by: default avatarMartin George <marting@netapp.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      32feb6de
    • Daniel Wagner's avatar
      nvme-hwmon: Return error code when registration fails · 78570f88
      Daniel Wagner authored
      The hwmon pointer wont be NULL if the registration fails. Though the
      exit code path will assign it to ctrl->hwmon_device. Later
      nvme_hwmon_exit() will try to free the invalid pointer. Avoid this by
      returning the error code from hwmon_device_register_with_info().
      
      Fixes: ed7770f6 ("nvme/hwmon: rework to avoid devm allocation")
      Signed-off-by: default avatarDaniel Wagner <dwagner@suse.de>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      78570f88
    • Pascal Terjan's avatar
      nvme-pci: add quirks for Lexar 256GB SSD · 6e6a6828
      Pascal Terjan authored
      Add the NVME_QUIRK_NO_NS_DESC_LIST and NVME_QUIRK_IGNORE_DEV_SUBNQN
      quirks for this buggy device.
      
      Reported and tested in https://bugs.mageia.org/show_bug.cgi?id=28417Signed-off-by: default avatarPascal Terjan <pterjan@google.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      6e6a6828
    • Zoltán Böszörményi's avatar
      nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state · dc22c1c0
      Zoltán Böszörményi authored
      My 2TB SKC2000 showed the exact same symptoms that were provided
      in 538e4a8c ("nvme-pci: avoid the deepest sleep state on
      Kingston A2000 SSDs"), i.e. a complete NVME lockup that needed
      cold boot to get it back.
      
      According to some sources, the A2000 is simply a rebadged
      SKC2000 with a slightly optimized firmware.
      
      Adding the SKC2000 PCI ID to the quirk list with the same workaround
      as the A2000 made my laptop survive a 5 hours long Yocto bootstrap
      buildfest which reliably triggered the SSD lockup previously.
      Signed-off-by: default avatarZoltán Böszörményi <zboszor@gmail.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      dc22c1c0
    • Julian Einwag's avatar
      nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST. · 5e112d3f
      Julian Einwag authored
      The kernel fails to fully detect these SSDs, only the character devices
      are present:
      
      [   10.785605] nvme nvme0: pci function 0000:04:00.0
      [   10.876787] nvme nvme1: pci function 0000:81:00.0
      [   13.198614] nvme nvme0: missing or invalid SUBNQN field.
      [   13.198658] nvme nvme1: missing or invalid SUBNQN field.
      [   13.206896] nvme nvme0: Shutdown timeout set to 20 seconds
      [   13.215035] nvme nvme1: Shutdown timeout set to 20 seconds
      [   13.225407] nvme nvme0: 16/0/0 default/read/poll queues
      [   13.233602] nvme nvme1: 16/0/0 default/read/poll queues
      [   13.239627] nvme nvme0: Identify Descriptors failed (8194)
      [   13.246315] nvme nvme1: Identify Descriptors failed (8194)
      
      Adding the NVME_QUIRK_NO_NS_DESC_LIST fixes this problem.
      
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205679Signed-off-by: default avatarJulian Einwag <jeinwag-nvme@marcapo.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarKeith Busch <kbusch@kernel.org>
      5e112d3f
  6. 03 Mar, 2021 1 commit
  7. 02 Mar, 2021 2 commits
  8. 01 Mar, 2021 3 commits
  9. 28 Feb, 2021 7 commits
    • Linus Torvalds's avatar
      Merge tag 'ide-5.11-2021-02-28' of git://git.kernel.dk/linux-block · d346da4a
      Linus Torvalds authored
      Pull ide fix from Jens Axboe:
       "This is a leftover fix from 5.11, where I forgot to ship it your way"
      
      * tag 'ide-5.11-2021-02-28' of git://git.kernel.dk/linux-block:
        ide/falconide: Fix module unload
      d346da4a
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.12' of... · 06d5d309
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Fix UNUSED_KSYMS_WHITELIST for Clang LTO
      
       - Make -s builds really silent irrespective of V= option
      
       - Fix build error when SUBLEVEL or PATCHLEVEL is empty
      
      * tag 'kbuild-fixes-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: Fix <linux/version.h> for empty SUBLEVEL or PATCHLEVEL again
        kbuild: make -s option take precedence over V=1
        ia64: remove redundant READELF from arch/ia64/Makefile
        kbuild: do not include include/config/auto.conf from adjust_autoksyms.sh
        kbuild: fix UNUSED_KSYMS_WHITELIST for Clang LTO
        kbuild: lto: add _mcount to list of used symbols
      06d5d309
    • Linus Torvalds's avatar
      Merge tag 'csky-for-linus-5.12-rc1' of git://github.com/c-sky/csky-linux · cd278456
      Linus Torvalds authored
      Pull arch/csky updates from Guo Ren:
       "Features:
         - add new memory layout 2.5G(user):1.5G(kernel)
         - add kmemleak support
         - reconstruct VDSO framework: add VDSO with GENERIC_GETTIMEOFDAY,
           GENERIC_TIME_VSYSCALL, HAVE_GENERIC_VDSO
         - add faulthandler_disabled() check
         - support (fix) swapon
         - add (fix) _PAGE_ACCESSED for default pgprot
         - abort uaccess retries upon fatal signal (from arm)
      
        Fixes and optimizations:
         - fix perf probe failure
         - fix show_regs doesn't contain regs->usp
         - remove custom asm/atomic.h implementation
         - fix barrier design
         - fix futex SMP implementation
         - fix asm/cmpxchg.h with correct ordering barrier
         - cleanup asm/spinlock.h
         - fix PTE global for 2.5:1.5 virtual memory
         - remove prologue of page fault handler in entry.S
         - fix TLB maintenance synchronization problem
         - add show_tlb for CPU_CK860 debug
         - fix FAULT_FLAG_XXX param for handle_mm_fault
         - fix update_mmu_cache called with user io mapping
         - fix do_page_fault parent irq status
         - fix a size determination in gpr_get()
         - pgtable.h: Coding convention
         - kprobe: Fix code in simulate without 'long'
         - fix pfn_valid error with wrong max_mapnr
         - use free_initmem_default() in free_initmem()
         - fix compile error"
      
      * tag 'csky-for-linus-5.12-rc1' of git://github.com/c-sky/csky-linux: (30 commits)
        csky: Fixup compile error
        csky: use free_initmem_default() in free_initmem()
        csky: Fixup pfn_valid error with wrong max_mapnr
        csky: Add VDSO with GENERIC_GETTIMEOFDAY, GENERIC_TIME_VSYSCALL, HAVE_GENERIC_VDSO
        csky: kprobe: Fixup code in simulate without 'long'
        csky: Fixup swapon
        csky: pgtable.h: Coding convention
        csky: Fixup _PAGE_ACCESSED for default pgprot
        csky: remove unused including <linux/version.h>
        csky: Fix a size determination in gpr_get()
        csky: Reconstruct VDSO framework
        csky: mm: abort uaccess retries upon fatal signal
        csky: Sync riscv mm/fault.c for easy maintenance
        csky: Fixup do_page_fault parent irq status
        csky: Add faulthandler_disabled() check
        csky: Fixup update_mmu_cache called with user io mapping
        csky: Fixup FAULT_FLAG_XXX param for handle_mm_fault
        csky: Add show_tlb for CPU_CK860 debug
        csky: Fix TLB maintenance synchronization problem
        csky: Add kmemleak support
        ...
      cd278456
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.12-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 7d19ea5e
      Linus Torvalds authored
      Pull more RISC-V updates from Palmer Dabbelt:
       "A pair of patches that slipped through the cracks:
      
         - enable CPU hotplug in the defconfigs
      
         - some cleanups to setup_bootmem
      
        There's also a single fix for some randconfig build failures:
      
         - make NUMA depend on SMP"
      
      * tag 'riscv-for-linus-5.12-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: Cleanup setup_bootmem()
        RISC-V: Enable CPU Hotplug in defconfigs
        RISC-V: Make NUMA depend on SMP
      7d19ea5e
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 0b311e34
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is a few driver updates (iscsi, mpt3sas) that were still in the
        staging queue when the merge window opened (all committed on or before
        8 Feb) and some small bug fixes which came in during the merge window
        (all committed on 22 Feb)"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (30 commits)
        scsi: hpsa: Correct dev cmds outstanding for retried cmds
        scsi: sd: Fix Opal support
        scsi: target: tcmu: Fix memory leak caused by wrong uio usage
        scsi: target: tcmu: Move some functions without code change
        scsi: sd: sd_zbc: Don't pass GFP_NOIO to kvcalloc
        scsi: aic7xxx: Remove unused function pointer typedef ahc_bus_suspend/resume_t
        scsi: bnx2fc: Fix Kconfig warning & CNIC build errors
        scsi: ufs: Fix a duplicate dev quirk number
        scsi: aic79xx: Fix spelling of version
        scsi: target: core: Prevent underflow for service actions
        scsi: target: core: Add cmd length set before cmd complete
        scsi: iscsi: Drop session lock in iscsi_session_chkready()
        scsi: qla4xxx: Use iscsi_is_session_online()
        scsi: libiscsi: Reset max/exp cmdsn during recovery
        scsi: iscsi_tcp: Fix shost can_queue initialization
        scsi: libiscsi: Add helper to calculate max SCSI cmds per session
        scsi: libiscsi: Fix iSCSI host workq destruction
        scsi: libiscsi: Fix iscsi_task use after free()
        scsi: libiscsi: Drop taskqueuelock
        scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling
        ...
      0b311e34
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.12-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 03dc748b
      Linus Torvalds authored
      Pull more xfs updates from Darrick Wong:
       "The most notable fix here prevents premature reuse of freed metadata
        blocks, and adding the ability to detect accidental nested
        transactions, which are not allowed here.
      
         - Restore a disused sysctl control knob that was inadvertently
           dropped during the merge window to avoid fstests regressions.
      
         - Don't speculatively release freed blocks from the busy list until
           we're actually allocating them, which fixes a rare log recovery
           regression.
      
         - Don't nest transactions when scanning for free space.
      
         - Add an idiot^Wmaintainer light to detect nested transactions. ;)"
      
      * tag 'xfs-5.12-merge-6' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: use current->journal_info for detecting transaction recursion
        xfs: don't nest transactions when scanning for eofblocks
        xfs: don't reuse busy extents on extent trim
        xfs: restore speculative_cow_prealloc_lifetime sysctl
      03dc748b
    • Linus Torvalds's avatar
      Merge tag 'block-5.12-2021-02-27' of git://git.kernel.dk/linux-block · 3ab6608e
      Linus Torvalds authored
      Pull more block updates from Jens Axboe:
       "A few stragglers (and one due to me missing it originally), and fixes
        for changes in this merge window mostly. In particular:
      
         - blktrace cleanups (Chaitanya, Greg)
      
         - Kill dead blk_pm_* functions (Bart)
      
         - Fixes for the bio alloc changes (Christoph)
      
         - Fix for the partition changes (Christoph, Ming)
      
         - Fix for turning off iopoll with polled IO inflight (Jeffle)
      
         - nbd disconnect fix (Josef)
      
         - loop fsync error fix (Mauricio)
      
         - kyber update depth fix (Yang)
      
         - max_sectors alignment fix (Mikulas)
      
         - Add bio_max_segs helper (Matthew)"
      
      * tag 'block-5.12-2021-02-27' of git://git.kernel.dk/linux-block: (21 commits)
        block: Add bio_max_segs
        blktrace: fix documentation for blk_fill_rw()
        block: memory allocations in bounce_clone_bio must not fail
        block: remove the gfp_mask argument to bounce_clone_bio
        block: fix bounce_clone_bio for passthrough bios
        block-crypto-fallback: use a bio_set for splitting bios
        block: fix logging on capacity change
        blk-settings: align max_sectors on "logical_block_size" boundary
        block: reopen the device in blkdev_reread_part
        block: don't skip empty device in in disk_uevent
        blktrace: remove debugfs file dentries from struct blk_trace
        nbd: handle device refs for DESTROY_ON_DISCONNECT properly
        kyber: introduce kyber_depth_updated()
        loop: fix I/O error on fsync() in detached loop devices
        block: fix potential IO hang when turning off io_poll
        block: get rid of the trace rq insert wrapper
        blktrace: fix blk_rq_merge documentation
        blktrace: fix blk_rq_issue documentation
        blktrace: add blk_fill_rwbs documentation comment
        block: remove superfluous param in blk_fill_rwbs()
        ...
      3ab6608e