1. 09 Sep, 2022 1 commit
  2. 08 Sep, 2022 1 commit
    • Jens Axboe's avatar
      Merge tag 'nvme-6.0-2022-09-08' of git://git.infradead.org/nvme into block-6.0 · 75c523ac
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for Linux 6.1
      
       - fix a use after free in nvmet (Bart Van Assche)
       - fix a use after free when detecting digest errors (Sagi Grimberg)
       - fix regression that causes sporadic TCP requests to time out
         (Sagi Grimberg)
       - fix two off by ones errors in the nvmet ZNS support
         (Dennis Maisenbacher)
       - requeue aen after firmware activation (Keith Busch)"
      
      * tag 'nvme-6.0-2022-09-08' of git://git.infradead.org/nvme:
        nvme: requeue aen after firmware activation
        nvmet: fix mar and mor off-by-one errors
        nvme-tcp: fix regression that causes sporadic requests to time out
        nvme-tcp: fix UAF when detecting digest errors
        nvmet: fix a use-after-free
      75c523ac
  3. 07 Sep, 2022 2 commits
  4. 06 Sep, 2022 2 commits
    • Sagi Grimberg's avatar
      nvme-tcp: fix regression that causes sporadic requests to time out · 3770a42b
      Sagi Grimberg authored
      When we queue requests, we strive to batch as much as possible and also
      signal the network stack that more data is about to be sent over a socket
      with MSG_SENDPAGE_NOTLAST. This flag looks at the pending requests queued
      as well as queue->more_requests that is derived from the block layer
      last-in-batch indication.
      
      We set more_request=true when we flush the request directly from
      .queue_rq submission context (in nvme_tcp_send_all), however this is
      wrongly assuming that no other requests may be queued during the
      execution of nvme_tcp_send_all.
      
      Due to this, a race condition may happen where:
      
       1. request X is queued as !last-in-batch
       2. request X submission context calls nvme_tcp_send_all directly
       3. nvme_tcp_send_all is preempted and schedules to a different cpu
       4. request Y is queued as last-in-batch
       5. nvme_tcp_send_all context sends request X+Y, however signals for
          both MSG_SENDPAGE_NOTLAST because queue->more_requests=true.
      
      ==> none of the requests is pushed down to the wire as the network
      stack is waiting for more data, both requests timeout.
      
      To fix this, we eliminate queue->more_requests and only rely on
      the queue req_list and send_list to be not-empty.
      
      Fixes: 122e5b9f ("nvme-tcp: optimize network stack with setting msg flags according to batch size")
      Reported-by: default avatarJonathan Nicklin <jnicklin@blockbridge.com>
      Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Tested-by: default avatarJonathan Nicklin <jnicklin@blockbridge.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      3770a42b
    • Sagi Grimberg's avatar
      nvme-tcp: fix UAF when detecting digest errors · 160f3549
      Sagi Grimberg authored
      We should also bail from the io_work loop when we set rd_enabled to true,
      so we don't attempt to read data from the socket when the TCP stream is
      already out-of-sync or corrupted.
      
      Fixes: 3f2304f8 ("nvme-tcp: add NVMe over TCP host driver")
      Reported-by: default avatarDaniel Wagner <dwagner@suse.de>
      Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Reviewed-by: default avatarDaniel Wagner <dwagner@suse.de>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      160f3549
  5. 05 Sep, 2022 1 commit
    • Bart Van Assche's avatar
      nvmet: fix a use-after-free · 6a02a61e
      Bart Van Assche authored
      Fix the following use-after-free complaint triggered by blktests nvme/004:
      
      BUG: KASAN: user-memory-access in blk_mq_complete_request_remote+0xac/0x350
      Read of size 4 at addr 0000607bd1835943 by task kworker/13:1/460
      Workqueue: nvmet-wq nvme_loop_execute_work [nvme_loop]
      Call Trace:
       show_stack+0x52/0x58
       dump_stack_lvl+0x49/0x5e
       print_report.cold+0x36/0x1e2
       kasan_report+0xb9/0xf0
       __asan_load4+0x6b/0x80
       blk_mq_complete_request_remote+0xac/0x350
       nvme_loop_queue_response+0x1df/0x275 [nvme_loop]
       __nvmet_req_complete+0x132/0x4f0 [nvmet]
       nvmet_req_complete+0x15/0x40 [nvmet]
       nvmet_execute_io_connect+0x18a/0x1f0 [nvmet]
       nvme_loop_execute_work+0x20/0x30 [nvme_loop]
       process_one_work+0x56e/0xa70
       worker_thread+0x2d1/0x640
       kthread+0x183/0x1c0
       ret_from_fork+0x1f/0x30
      
      Cc: stable@vger.kernel.org
      Fixes: a07b4970 ("nvmet: add a generic NVMe target")
      Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      6a02a61e
  6. 03 Sep, 2022 1 commit
  7. 02 Sep, 2022 1 commit
  8. 01 Sep, 2022 1 commit
    • Jens Axboe's avatar
      Merge tag 'nvme-6.0-2022-09-01' of git://git.infradead.org/nvme into block-6.0 · 25657798
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for Linux 6.0
      
       - error handling fix for the new auth code (Hannes Reinecke)
       - fix unhandled tcp states in nvmet_tcp_state_change (Maurizio Lombardi)
       - add NVME_QUIRK_BOGUS_NID for Lexar NM610 (Shyamin Ayesh)"
      
      * tag 'nvme-6.0-2022-09-01' of git://git.infradead.org/nvme:
        nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
        nvmet-auth: add missing goto in nvmet_setup_auth()
        nvme-pci: add NVME_QUIRK_BOGUS_NID for Lexar NM610
      25657798
  9. 31 Aug, 2022 3 commits
  10. 24 Aug, 2022 6 commits
  11. 19 Aug, 2022 1 commit
    • Yu Kuai's avatar
      blk-mq: fix io hung due to missing commit_rqs · 65fac0d5
      Yu Kuai authored
      Currently, in virtio_scsi, if 'bd->last' is not set to true while
      dispatching request, such io will stay in driver's queue, and driver
      will wait for block layer to dispatch more rqs. However, if block
      layer failed to dispatch more rq, it should trigger commit_rqs to
      inform driver.
      
      There is a problem in blk_mq_try_issue_list_directly() that commit_rqs
      won't be called:
      
      // assume that queue_depth is set to 1, list contains two rq
      blk_mq_try_issue_list_directly
       blk_mq_request_issue_directly
       // dispatch first rq
       // last is false
        __blk_mq_try_issue_directly
         blk_mq_get_dispatch_budget
         // succeed to get first budget
         __blk_mq_issue_directly
          scsi_queue_rq
           cmd->flags |= SCMD_LAST
            virtscsi_queuecommand
             kick = (sc->flags & SCMD_LAST) != 0
             // kick is false, first rq won't issue to disk
       queued++
      
       blk_mq_request_issue_directly
       // dispatch second rq
        __blk_mq_try_issue_directly
         blk_mq_get_dispatch_budget
         // failed to get second budget
       ret == BLK_STS_RESOURCE
        blk_mq_request_bypass_insert
       // errors is still 0
      
       if (!list_empty(list) || errors && ...)
        // won't pass, commit_rqs won't be called
      
      In this situation, first rq relied on second rq to dispatch, while
      second rq relied on first rq to complete, thus they will both hung.
      
      Fix the problem by also treat 'BLK_STS_*RESOURCE' as 'errors' since
      it means that request is not queued successfully.
      
      Same problem exists in blk_mq_dispatch_rq_list(), 'BLK_STS_*RESOURCE'
      can't be treated as 'errors' here, fix the problem by calling
      commit_rqs if queue_rq return 'BLK_STS_*RESOURCE'.
      
      Fixes: d666ba98 ("blk-mq: add mq_ops->commit_rqs()")
      Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
      Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
      Link: https://lore.kernel.org/r/20220726122224.1790882-1-yukuai1@huaweicloud.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      65fac0d5
  12. 18 Aug, 2022 2 commits
  13. 16 Aug, 2022 3 commits
  14. 13 Aug, 2022 1 commit
  15. 12 Aug, 2022 1 commit
    • Rafael Mendonca's avatar
      block: Do not call blk_put_queue() if gendisk allocation fails · aa0c680c
      Rafael Mendonca authored
      Commit 6f8191fd ("block: simplify disk shutdown") removed the call
      to blk_get_queue() during gendisk allocation but missed to remove the
      corresponding cleanup code blk_put_queue() for it. Thus, if the gendisk
      allocation fails, the request_queue refcount gets decremented and
      reaches 0, causing blk_mq_release() to be called with a hctx still
      alive. That triggers a WARNING report, as found by syzkaller:
      
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 23016 at block/blk-mq.c:3881
      blk_mq_release+0xf8/0x3e0 block/blk-mq.c:3881
      [...] stripped
      RIP: 0010:blk_mq_release+0xf8/0x3e0 block/blk-mq.c:3881
      [...] stripped
      Call Trace:
       <TASK>
       blk_release_queue+0x153/0x270 block/blk-sysfs.c:780
       kobject_cleanup lib/kobject.c:673 [inline]
       kobject_release lib/kobject.c:704 [inline]
       kref_put include/linux/kref.h:65 [inline]
       kobject_put+0x1c8/0x540 lib/kobject.c:721
       __alloc_disk_node+0x4f7/0x610 block/genhd.c:1388
       __blk_mq_alloc_disk+0x13b/0x1f0 block/blk-mq.c:3961
       loop_add+0x3e2/0xaf0 drivers/block/loop.c:1978
       loop_control_ioctl+0x133/0x620 drivers/block/loop.c:2150
       vfs_ioctl fs/ioctl.c:51 [inline]
       __do_sys_ioctl fs/ioctl.c:870 [inline]
       __se_sys_ioctl fs/ioctl.c:856 [inline]
       __x64_sys_ioctl+0x193/0x200 fs/ioctl.c:856
       do_syscall_x64 arch/x86/entry/common.c:50 [inline]
       do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
       entry_SYSCALL_64_after_hwframe+0x63/0xcd
      [...] stripped
      
      Fixes: 6f8191fd ("block: simplify disk shutdown")
      Reported-by: syzbot+31c9594f6e43b9289b25@syzkaller.appspotmail.com
      Suggested-by: default avatarHillf Danton <hdanton@sina.com>
      Signed-off-by: default avatarRafael Mendonca <rafaelmendsr@gmail.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Link: https://lore.kernel.org/r/20220811232338.254673-1-rafaelmendsr@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      aa0c680c
  16. 11 Aug, 2022 2 commits
    • Jens Axboe's avatar
      Merge tag 'nvme-6.0-2022-08-11' of git://git.infradead.org/nvme into block-6.0 · cd83cd55
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for Linux 6.0
      
       - print nvme connect Linux error codes properly (Amit Engel)
       - fix the fc_appid_store return value (Christoph Hellwig)
       - fix a typo in an error message (Christophe JAILLET)
       - add another non-unique identifier quirk (Dennis P. Kliem)
       - check if the queue is allocated before stopping it in nvme-tcp
         (Maurizio Lombardi)
       - restart admin queue if the caller needs to restart queue in nvme-fc
         (Ming Lei)
       - use kmemdup instead of kmalloc + memcpy in nvme-auth (Zhang Xiaoxu)"
      
      * tag 'nvme-6.0-2022-08-11' of git://git.infradead.org/nvme:
        nvme-pci: add NVME_QUIRK_BOGUS_NID for ADATA XPG GAMMIX S70
        nvme-tcp: check if the queue is allocated before stopping it
        nvme-fabrics: Fix a typo in an error message
        nvme-fabrics: parse nvme connect Linux error codes
        nvmet-auth: use kmemdup instead of kmalloc + memcpy
        nvme-fc: fix the fc_appid_store return value
        nvme-fc: restart admin queue if the caller needs to restart queue
      cd83cd55
    • Dennis P. Kliem's avatar
      nvme-pci: add NVME_QUIRK_BOGUS_NID for ADATA XPG GAMMIX S70 · f37527a0
      Dennis P. Kliem authored
      ADATA XPG GAMMIX S70 reports bogus eui64 values that appear to be the same
      across all drives. Quirk them out so they are not marked as "non globally
      unique" duplicates.
      Signed-off-by: default avatarDennis P. Kliem <dpkliem@gmail.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      f37527a0
  17. 10 Aug, 2022 6 commits
  18. 05 Aug, 2022 5 commits
    • Linus Torvalds's avatar
      Merge tag 'for-5.20/block-2022-08-04' of git://git.kernel.dk/linux-block · fa9db655
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
      
       - NVMe pull requests via Christoph:
            - add support for In-Band authentication (Hannes Reinecke)
            - handle the persistent internal error AER (Michael Kelley)
            - use in-capsule data for TCP I/O queue connect (Caleb Sander)
            - remove timeout for getting RDMA-CM established event (Israel
              Rukshin)
            - misc cleanups (Joel Granados, Sagi Grimberg, Chaitanya Kulkarni,
              Guixin Liu, Xiang wangx)
            - use command_id instead of req->tag in trace_nvme_complete_rq()
              (Bean Huo)
            - various fixes for the new authentication code (Lukas Bulwahn,
              Dan Carpenter, Colin Ian King, Chaitanya Kulkarni, Hannes
              Reinecke)
            - small cleanups (Liu Song, Christoph Hellwig)
            - restore compat_ioctl support (Nick Bowler)
            - make a nvmet-tcp workqueue lockdep-safe (Sagi Grimberg)
            - enable generic interface (/dev/ngXnY) for unknown command sets
              (Joel Granados, Christoph Hellwig)
            - don't always build constants.o (Christoph Hellwig)
            - print the command name of aborted commands (Christoph Hellwig)
      
       - MD pull requests via Song:
            - Improve raid5 lock contention, by Logan Gunthorpe.
            - Misc fixes to raid5, by Logan Gunthorpe.
            - Fix race condition with md_reap_sync_thread(), by Guoqing Jiang.
            - Fix potential deadlock with raid5_quiesce and
              raid5_get_active_stripe, by Logan Gunthorpe.
            - Refactoring md_alloc(), by Christoph"
            - Fix md disk_name lifetime problems, by Christoph Hellwig
            - Convert prepare_to_wait() to wait_woken() api, by Logan
              Gunthorpe;
            - Fix sectors_to_do bitmap issue, by Logan Gunthorpe.
      
       - Work on unifying the null_blk module parameters and configfs API
         (Vincent)
      
       - drbd bitmap IO error fix (Lars)
      
       - Set of rnbd fixes (Guoqing, Md Haris)
      
       - Remove experimental marker on bcache async device registration (Coly)
      
       - Series from cleaning up the bio splitting (Christoph)
      
       - Removal of the sx8 block driver. This hardware never really
         widespread, and it didn't receive a lot of attention after the
         initial merge of it back in 2005 (Christoph)
      
       - A few fixes for s390 dasd (Eric, Jiang)
      
       - Followup set of fixes for ublk (Ming)
      
       - Support for UBLK_IO_NEED_GET_DATA for ublk (ZiyangZhang)
      
       - Fixes for the dio dma alignment (Keith)
      
       - Misc fixes and cleanups (Ming, Yu, Dan, Christophe
      
      * tag 'for-5.20/block-2022-08-04' of git://git.kernel.dk/linux-block: (136 commits)
        s390/dasd: Establish DMA alignment
        s390/dasd: drop unexpected word 'for' in comments
        ublk_drv: add support for UBLK_IO_NEED_GET_DATA
        ublk_cmd.h: add one new ublk command: UBLK_IO_NEED_GET_DATA
        ublk_drv: cleanup ublksrv_ctrl_dev_info
        ublk_drv: add SET_PARAMS/GET_PARAMS control command
        ublk_drv: fix ublk device leak in case that add_disk fails
        ublk_drv: cancel device even though disk isn't up
        block: fix leaking page ref on truncated direct io
        block: ensure bio_iov_add_page can't fail
        block: ensure iov_iter advances for added pages
        drivers:md:fix a potential use-after-free bug
        md/raid5: Ensure batch_last is released before sleeping for quiesce
        md/raid5: Move stripe_request_ctx up
        md/raid5: Drop unnecessary call to r5c_check_stripe_cache_usage()
        md/raid5: Make is_inactive_blocked() helper
        md/raid5: Refactor raid5_get_active_stripe()
        block: pass struct queue_limits to the bio splitting helpers
        block: move bio_allowed_max_sectors to blk-merge.c
        block: move the call to get_max_io_size out of blk_bio_segment_split
        ...
      fa9db655
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · e4952747
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This cycle we got a new RDMA driver "ERDMA" for the Alibaba cloud
        environment. Otherwise the changes are dominated by rxe fixes.
      
        There is another RDMA driver on the list that might get merged next
        cycle, 'MANA' for the Azure cloud environment.
      
        Summary:
      
         - Bug fixes and small features for irdma, hns, siw, qedr, hfi1, mlx5
      
         - General spelling/grammer fixes
      
         - rdma cm can follow changes in neighbours for control packets
      
         - Significant amounts of rxe fixes and spec compliance changes
      
         - Use the modern NAPI API
      
         - Use the bitmap API instead of open coding
      
         - Performance improvements for rtrs
      
         - Add the ERDMA driver for Alibaba cloud
      
         - Fix a use after free bug in SRP"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (99 commits)
        RDMA/ib_srpt: Unify checking rdma_cm_id condition in srpt_cm_req_recv()
        RDMA/rxe: Fix error unwind in rxe_create_qp()
        RDMA/mlx5: Add missing check for return value in get namespace flow
        RDMA/rxe: Split qp state for requester and completer
        RDMA/rxe: Generate error completion for error requester QP state
        RDMA/rxe: Update wqe_index for each wqe error completion
        RDMA/srpt: Fix a use-after-free
        RDMA/srpt: Introduce a reference count in struct srpt_device
        RDMA/srpt: Duplicate port name members
        IB/qib: Fix repeated "in" within comments
        RDMA/erdma: Add driver to kernel build environment
        RDMA/erdma: Add the ABI definitions
        RDMA/erdma: Add the erdma module
        RDMA/erdma: Add connection management (CM) support
        RDMA/erdma: Add verbs implementation
        RDMA/erdma: Add verbs header file
        RDMA/erdma: Add event queue implementation
        RDMA/erdma: Add cmdq implementation
        RDMA/erdma: Add main include file
        RDMA/erdma: Add the hardware related definitions
        ...
      e4952747
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 746fc76b
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "Updates to the usual drivers (ufs, qla2xx, target, lpfc, smartpqi,
        mpi3mr).
      
        The main driver change that might cause issues on down the road is the
        conversion of some of our oldest surviving drivers to the DMA API
        (should only affect m68k).
      
        The only major core change is the rework of async resume; the rest are
        either completely trivial or for updating deprecated APIs"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (195 commits)
        scsi: target: Remove XDWRITEREAD emulated support
        scsi: megaraid: Remove the static variable initialisation
        scsi: ch: Do not initialise statics to 0
        scsi: ufs: core: Fix spelling mistake "Cannnot" -> "Cannot"
        scsi: target: iscsi: Do not require target authentication
        scsi: target: iscsi: Allow AuthMethod=None
        scsi: target: iscsi: Support base64 in CHAP
        scsi: target: iscsi: Add support for extended CDB AHS
        scsi: ufs: dt-bindings: Add SC8280XP binding
        scsi: target: iscsi: Fix clang -Wformat warnings
        scsi: ufs: core: Read device property for ref clock
        scsi: libsas: Resume SAS host for phy reset or enable via sysfs
        scsi: hisi_sas: Modify v3 HW SATA completion error processing
        scsi: hisi_sas: Relocate DMA unmap of SMP task
        scsi: hisi_sas: Remove unnecessary variable to hold DMA map elements
        scsi: hisi_sas: Call hisi_sas_slave_configure() from slave_configure_v3_hw()
        scsi: mpi3mr: Delete a stray tab
        scsi: mpi3mr: Unlock on error path
        scsi: mpi3mr: Reduce VD queue depth on detecting throttling
        scsi: mpi3mr: Resource Based Metering
        ...
      746fc76b
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 328141e5
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Add support for the asynchronous SDIO wakeup interrupts
         - Skip redundant evaluation of eMMC HS400 caps when no-MMC-cap
         - Add support to store error stats from host drivers
         - Extend debugfs to show error stats from host drivers
         - Add single I/O read support in the recovery path for 4k sector cards
      
        MMC host:
         - dw_mmc-exynos: Convert corresponding DT bindings to the dtschema
         - dw_mmc-rockchip: Add support for the Rockchip RV1126 variant
         - mmc_spi: Convert corresponding DT bindings to the dtschema
         - mtk-sd: Extend support for interrupts/pinctrls for SDIO low-power mode
         - mtk-sd: Add support for SDIO wake irqs
         - mtk-sd: Add support for the Mediatek MT8188 variant
         - renesas_sdhi: Drop redundant manual tap correction for newer SoCs
         - renesas_sdhi: Add support for the R-Car S4-8 and generic Gen4 variants
         - sdhci/cqhci: Add support to capture stats from host errors
         - sdhci-brcmstb: Add ability to increase max clock rate for SDIO on 72116b0
         - sdhci-msm: Add support for the MSM8998 and SM8450 variant
         - sdhci-of-at91: Fixup UHS-I mode by rewriting of MC1R
         - sdhci-of-dwcmshc: Add support for the Rockchip rk3588 variant
         - sdhci-of-dwcmshc: Enable reset support for the Rockchip variants
         - sdhci-pci-gli: Improve I/O read/write performance for GL9763E
         - sdhci-s3c: Convert corresponding DT bindings to the dtschema
         - tmio: Avoid glitches when resetting
      
        MEMSTICK core:
         - A couple of minor fixes and cleanups"
      
      * tag 'mmc-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (61 commits)
        mmc: mediatek: add support for SDIO eint wakup IRQ
        mmc: core: Add support for SDIO wakeup interrupt
        dt-bindings: mmc: mtk-sd: extend interrupts and pinctrls properties
        dt-bindings: mmc: rockchip-dw-mshc: Document Rockchip RV1126
        mmc: renesas_sdhi: newer SoCs don't need manual tap correction
        mmc: cavium-thunderx: Add of_node_put() when breaking out of loop
        mmc: cavium-octeon: Add of_node_put() when breaking out of loop
        mmc: core: quirks: Add of_node_put() when breaking out of loop
        mmc: sdhci-brcmstb: use clk_get_rate(base_clk) in PM resume
        dt-bindings: mmc: sdhci-msm: Document the SM8450 compatible
        mmc: sdhci-msm: drop redundant of_device_id entries
        dt-bindings: mmc: sdhci-msm: add MSM8998
        mmc: block: Add single read for 4k sector cards
        mmc: mxcmmc: Use mmc_card_sdio macro
        mmc: core: Use mmc_card_* macro and add a new for the sd_combo type
        dt-bindings: mmc: sdhci-msm: constrain reg-names per variants
        dt-bindings: mmc: sdhci-msm: fix reg-names entries
        dt-bindings: mmc: Add compatible for MediaTek MT8188
        dt-bindings: mmc: sdhci-msm: document resets
        mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R
        ...
      328141e5
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · eff0cb3d
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Enumeration:
      
         - Consolidate duplicated 'next function' scanning and extend to allow
           'isolated functions' on s390, similar to existing hypervisors
           (Niklas Schnelle)
      
        Resource management:
         - Implement pci_iobar_pfn() for sparc, which allows us to remove the
           sparc-specific pci_mmap_page_range() and pci_mmap_resource_range().
      
           This removes the ability to map the entire PCI I/O space using
           /proc/bus/pci, but we believe that's already been broken since
           v2.6.28 (Arnd Bergmann)
      
         - Move common PCI definitions to asm-generic/pci.h and rework others
           to be be more specific and more encapsulated in arches that need
           them (Stafford Horne)
      
        Power management:
      
         - Convert drivers to new *_PM_OPS macros to avoid need for '#ifdef
           CONFIG_PM_SLEEP' or '__maybe_unused' (Bjorn Helgaas)
      
        Virtualization:
      
         - Add ACS quirk for Broadcom BCM5750x multifunction NICs that isolate
           the functions but don't advertise an ACS capability (Pavan Chebbi)
      
        Error handling:
      
         - Clear PCI Status register during enumeration in case firmware left
           errors logged (Kai-Heng Feng)
      
         - When we have native control of AER, enable error reporting for all
           devices that support AER. Previously only a few drivers enabled
           this (Stefan Roese)
      
         - Keep AER error reporting enabled for switches. Previously we
           enabled this during enumeration but immediately disabled it (Stefan
           Roese)
      
         - Iterate over error counters instead of error strings to avoid
           printing junk in AER sysfs counters (Mohamed Khalfella)
      
        ASPM:
      
         - Remove pcie_aspm_pm_state_change() so ASPM config changes, e.g.,
           via sysfs, are not lost across power state changes (Kai-Heng Feng)
      
        Endpoint framework:
      
         - Don't stop an EPC when unbinding an EPF from it (Shunsuke Mie)
      
        Endpoint embedded DMA controller driver:
      
         - Simplify and clean up support for the DesignWare embedded DMA
           (eDMA) controller (Frank Li, Serge Semin)
      
        Broadcom STB PCIe controller driver:
      
         - Avoid config space accesses when link is down because we can't
           recover from the CPU aborts these cause (Jim Quinlan)
      
         - Look for power regulators described under Root Ports in DT and
           enable them before scanning the secondary bus (Jim Quinlan)
      
         - Disable/enable regulators in suspend/resume (Jim Quinlan)
      
        Freescale i.MX6 PCIe controller driver:
      
         - Simplify and clean up clock and PHY management (Richard Zhu)
      
         - Disable/enable regulators in suspend/resume (Richard Zhu)
      
         - Set PCIE_DBI_RO_WR_EN before writing DBI registers (Richard Zhu)
      
         - Allow speeds faster than Gen2 (Richard Zhu)
      
         - Make link being down a non-fatal error so controller probe doesn't
           fail if there are no Endpoints connected (Richard Zhu)
      
        Loongson PCIe controller driver:
      
         - Add ACPI and MCFG support for Loongson LS7A (Huacai Chen)
      
         - Avoid config reads to non-existent LS2K/LS7A devices because a
           hardware defect causes machine hangs (Huacai Chen)
      
         - Work around LS7A integrated devices that report incorrect Interrupt
           Pin values (Jianmin Lv)
      
        Marvell Aardvark PCIe controller driver:
      
         - Add support for AER and Slot capability on emulated bridge (Pali
           Rohár)
      
        MediaTek PCIe controller driver:
      
         - Add Airoha EN7532 to DT binding (John Crispin)
      
         - Allow building of driver for ARCH_AIROHA (Felix Fietkau)
      
        MediaTek PCIe Gen3 controller driver:
      
         - Print decoded LTSSM state when the link doesn't come up (Jianjun
           Wang)
      
        NVIDIA Tegra194 PCIe controller driver:
      
         - Convert DT binding to json-schema (Vidya Sagar)
      
         - Add DT bindings and driver support for Tegra234 Root Port and
           Endpoint mode (Vidya Sagar)
      
         - Fix some Root Port interrupt handling issues (Vidya Sagar)
      
         - Set default Max Payload Size to 256 bytes (Vidya Sagar)
      
         - Fix Data Link Feature capability programming (Vidya Sagar)
      
         - Extend Endpoint mode support to devices beyond Controller-5 (Vidya
           Sagar)
      
        Qualcomm PCIe controller driver:
      
         - Rework clock, reset, PHY power-on ordering to avoid hangs and
           improve consistency (Robert Marko, Christian Marangi)
      
         - Move pipe_clk handling to PHY drivers (Dmitry Baryshkov)
      
         - Add IPQ60xx support (Selvam Sathappan Periakaruppan)
      
         - Allow ASPM L1 and substates for 2.7.0 (Krishna chaitanya chundru)
      
         - Add support for more than 32 MSI interrupts (Dmitry Baryshkov)
      
        Renesas R-Car PCIe controller driver:
      
         - Convert DT binding to json-schema (Herve Codina)
      
         - Add Renesas RZ/N1D (R9A06G032) to rcar-gen2 DT binding and driver
           (Herve Codina)
      
        Samsung Exynos PCIe controller driver:
      
         - Fix phy-exynos-pcie driver so it follows the 'phy_init() before
           phy_power_on()' PHY programming model (Marek Szyprowski)
      
        Synopsys DesignWare PCIe controller driver:
      
         - Simplify and clean up the DWC core extensively (Serge Semin)
      
         - Fix an issue with programming the ATU for regions that cross a 4GB
           boundary (Serge Semin)
      
         - Enable the CDM check if 'snps,enable-cdm-check' exists; previously
           we skipped it if 'num-lanes' was absent (Serge Semin)
      
         - Allocate a 32-bit DMA-able page to be MSI target instead of using a
           driver data structure that may not be addressable with 32-bit
           address (Will McVicker)
      
         - Add DWC core support for more than 32 MSI interrupts (Dmitry
           Baryshkov)
      
        Xilinx Versal CPM PCIe controller driver:
      
         - Add DT binding and driver support for Versal CPM5 Gen5 Root Port
           (Bharat Kumar Gogada)"
      
      * tag 'pci-v5.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (150 commits)
        PCI: imx6: Support more than Gen2 speed link mode
        PCI: imx6: Set PCIE_DBI_RO_WR_EN before writing DBI registers
        PCI: imx6: Reformat suspend callback to keep symmetric with resume
        PCI: imx6: Move the imx6_pcie_ltssm_disable() earlier
        PCI: imx6: Disable clocks in reverse order of enable
        PCI: imx6: Do not hide PHY driver callbacks and refine the error handling
        PCI: imx6: Reduce resume time by only starting link if it was up before suspend
        PCI: imx6: Mark the link down as non-fatal error
        PCI: imx6: Move regulator enable out of imx6_pcie_deassert_core_reset()
        PCI: imx6: Turn off regulator when system is in suspend mode
        PCI: imx6: Call host init function directly in resume
        PCI: imx6: Disable i.MX6QDL clock when disabling ref clocks
        PCI: imx6: Propagate .host_init() errors to caller
        PCI: imx6: Collect clock enables in imx6_pcie_clk_enable()
        PCI: imx6: Factor out ref clock disable to match enable
        PCI: imx6: Move imx6_pcie_clk_disable() earlier
        PCI: imx6: Move imx6_pcie_enable_ref_clk() earlier
        PCI: imx6: Move PHY management functions together
        PCI: imx6: Move imx6_pcie_grp_offset(), imx6_pcie_configure_type() earlier
        PCI: imx6: Convert to NOIRQ_SYSTEM_SLEEP_PM_OPS()
        ...
      eff0cb3d