1. 23 Oct, 2020 6 commits
    • Mauro Carvalho Chehab's avatar
      block: blk-mq: fix a kernel-doc markup · 24f7bb88
      Mauro Carvalho Chehab authored
      Fix a typo:
      	blk_mq_run_hw_queue -> blk_mq_run_hw_queues
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      24f7bb88
    • Jens Axboe's avatar
      Merge tag 'nvme-5.10-2020-10-23' of git://git.infradead.org/nvme into block-5.10 · ddc62910
      Jens Axboe authored
      Pull NVMe fixes from Christoph:
      
      "nvme fixes for 5.10
      
       - rdma error handling fixes (Chao Leng)
       - fc error handling and reconnect fixes (James Smart)
       - fix the qid displace when tracing ioctl command (Keith Busch)
       - don't use BLK_MQ_REQ_NOWAIT for passthru (Chaitanya Kulkarni)
       - fix MTDT for passthru (Logan Gunthorpe)
       - blacklist Write Same on more devices (Kai-Heng Feng)
       - fix an uninitialized work struct (zhenwei pi)"
      
      * tag 'nvme-5.10-2020-10-23' of git://git.infradead.org/nvme:
        nvme-fc: shorten reconnect delay if possible for FC
        nvme-fc: wait for queues to freeze before calling update_hr_hw_queues
        nvme-fc: fix error loop in create_hw_io_queues
        nvme-fc: fix io timeout to abort I/O
        nvmet: don't use BLK_MQ_REQ_NOWAIT for passthru
        nvmet: cleanup nvmet_passthru_map_sg()
        nvmet: limit passthru MTDS by BIO_MAX_PAGES
        nvmet: fix uninitialized work for zero kato
        nvme-pci: disable Write Zeroes on Sandisk Skyhawk
        nvme: use queuedata for nvme_req_qid
        nvme-rdma: fix crash due to incorrect cqe
        nvme-rdma: fix crash when connect rejected
      ddc62910
    • James Smart's avatar
      nvme-fc: shorten reconnect delay if possible for FC · f673714a
      James Smart authored
      We've had several complaints about a 10s reconnect delay (the default)
      when there was an error while there is connectivity to a subsystem.
      The max_reconnects and reconnect_delay are set in common code prior to
      calling the transport to create the controller.
      
      This change checks if the default reconnect delay is being used, and if
      so, it adjusts it to a shorter period (2s) for the nvme-fc transport.
      It does so by calculating the controller loss tmo window, changing the
      value of the reconnect delay, and then recalculating the maximum number
      of reconnect attempts allowed.
      Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
      Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      f673714a
    • James Smart's avatar
      nvme-fc: wait for queues to freeze before calling update_hr_hw_queues · 88e837ed
      James Smart authored
      On reconnect, the code currently does not freeze the controller before
      possibly updating the number hw queues for the controller.
      
      Add the freeze before updating the number of hw queues.  Note: the queues
      are already started and remain started through the reconnect.
      Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
      Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      88e837ed
    • James Smart's avatar
      nvme-fc: fix error loop in create_hw_io_queues · 514a6dc9
      James Smart authored
      The loop that backs out of hw io queue creation continues through index
      0, which corresponds to the admin queue as well.
      
      Fix the loop so it only proceeds through indexes 1..n which correspond to
      I/O queues.
      Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
      Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      514a6dc9
    • James Smart's avatar
      nvme-fc: fix io timeout to abort I/O · 52793d62
      James Smart authored
      Currently, an I/O timeout unconditionally invokes
      nvme_fc_error_recovery() which checks for LIVE or CONNECTING state.  If
      live, the routine resets the controller which initiates a reconnect -
      which is valid.  If CONNECTING, err_work is scheduled.  Err_work then
      calls the terminate_io routine, which also checks for CONNECTING and
      noops any further action on outstanding I/O.  The result is nothing
      happened to the timed out io.  As such, if the command was dropped on
      the wire, it will never timeout / complete, and the connect process
      will hang.
      
      Change the behavior of the io timeout routine to unconditionally abort
      the I/O.  I/O completion handling will note that an io failed due to an
      abort and will terminate the connection / association as needed.  If the
      abort was unable to happen, continue with a call to
      nvme_fc_error_recovery(). To ensure something different happens in
      nvme_fc_error_recovery() rework it so at it will abort all I/Os on the
      association to force a failure.
      
      As I/O aborts now may occur outside of delete_association, counting for
      completion must be wary and only count those aborted during
      delete_association when TERMIO is set on the controller.
      Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      52793d62
  2. 22 Oct, 2020 9 commits
    • Keith Busch's avatar
      null_blk: use zone status for max active/open · fd78874b
      Keith Busch authored
      The block layer provides special status codes when requests go beyond
      the zone resource limits. Use these codes instead of the generic IOERR
      for requests that exceed the max active or open limits the null_blk
      device was configured with so that applications know how these special
      conditions should be handled.
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      Reviewed-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
      Cc: Damien Le Moal <damien.lemoal@wdc.com>
      Cc: Niklas Cassel <niklas.cassel@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      fd78874b
    • Chaitanya Kulkarni's avatar
      nvmet: don't use BLK_MQ_REQ_NOWAIT for passthru · 150dfb6c
      Chaitanya Kulkarni authored
      By default, we set the passthru request allocation flag such that it
      returns the error in the following code path and we fail the I/O when
      BLK_MQ_REQ_NOWAIT is used for request allocation :-
      
      nvme_alloc_request()
       blk_mq_alloc_request()
        blk_mq_queue_enter()
         if (flag & BLK_MQ_REQ_NOWAIT)
              return -EBUSY; <-- return if busy.
      
      On some controllers using BLK_MQ_REQ_NOWAIT ends up in I/O error where
      the controller is perfectly healthy and not in a degraded state.
      
      Block layer request allocation does allow us to wait instead of
      immediately returning the error when we BLK_MQ_REQ_NOWAIT flag is not
      used. This has shown to fix the I/O error problem reported under
      heavy random write workload.
      
      Remove the BLK_MQ_REQ_NOWAIT parameter for passthru request allocation
      which resolves this issue.
      Signed-off-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Reviewed-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      150dfb6c
    • Logan Gunthorpe's avatar
      nvmet: cleanup nvmet_passthru_map_sg() · 5e063101
      Logan Gunthorpe authored
      Clean up some confusing elements of nvmet_passthru_map_sg() by returning
      early if the request is greater than the maximum bio size. This allows
      us to drop the sg_cnt variable.
      
      This should not result in any functional change but makes the code
      clearer and more understandable. The original code allocated a truncated
      bio then would return EINVAL when bio_add_pc_page() filled that bio. The
      new code just returns EINVAL early if this would happen.
      
      Fixes: c1fef73f ("nvmet: add passthru code to process commands")
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Suggested-by: default avatarDouglas Gilbert <dgilbert@interlog.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      5e063101
    • Logan Gunthorpe's avatar
      nvmet: limit passthru MTDS by BIO_MAX_PAGES · df06047d
      Logan Gunthorpe authored
      nvmet_passthru_map_sg() only supports mapping a single BIO, not a chain
      so the effective maximum transfer should also be limitted by
      BIO_MAX_PAGES (presently this works out to 1MB).
      
      For PCI passthru devices the max_sectors would typically be more
      limitting than BIO_MAX_PAGES, but this may not be true for all passthru
      devices.
      
      Fixes: c1fef73f ("nvmet: add passthru code to process commands")
      Suggested-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Sagi Grimberg <sagi@grimberg.me>
      Cc: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      df06047d
    • zhenwei pi's avatar
      nvmet: fix uninitialized work for zero kato · 85bd23f3
      zhenwei pi authored
      When connecting a controller with a zero kato value using the following
      command line
      
         nvme connect -t tcp -n NQN -a ADDR -s PORT --keep-alive-tmo=0
      
      the warning below can be reproduced:
      
      WARNING: CPU: 1 PID: 241 at kernel/workqueue.c:1627 __queue_delayed_work+0x6d/0x90
      with trace:
        mod_delayed_work_on+0x59/0x90
        nvmet_update_cc+0xee/0x100 [nvmet]
        nvmet_execute_prop_set+0x72/0x80 [nvmet]
        nvmet_tcp_try_recv_pdu+0x2f7/0x770 [nvmet_tcp]
        nvmet_tcp_io_work+0x63f/0xb2d [nvmet_tcp]
        ...
      
      This is caused by queuing up an uninitialized work.  Althrough the
      keep-alive timer is disabled during allocating the controller (fixed in
      0d3b6a8d), ka_work still has a chance to run (called by
      nvmet_start_ctrl).
      
      Fixes: 0d3b6a8d ("nvmet: Disable keep-alive timer when kato is cleared to 0h")
      Signed-off-by: default avatarzhenwei pi <pizhenwei@bytedance.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      85bd23f3
    • Kai-Heng Feng's avatar
      nvme-pci: disable Write Zeroes on Sandisk Skyhawk · 02ca079c
      Kai-Heng Feng authored
      Like commit 5611ec2b ("nvme-pci: prevent SK hynix PC400 from using
      Write Zeroes command"), Sandisk Skyhawk has the same issue:
      [ 6305.633887] blk_update_request: operation not supported error, dev nvme0n1, sector 340812032 op 0x9:(WRITE_ZEROES) flags 0x0 phys_seg 0 prio class 0
      
      So also disable Write Zeroes command on Sandisk Skyhawk.
      
      BugLink: https://bugs.launchpad.net/bugs/1899503Signed-off-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
      Reviewed-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      02ca079c
    • Keith Busch's avatar
      nvme: use queuedata for nvme_req_qid · 643c476d
      Keith Busch authored
      The request's rq_disk isn't set for passthrough IO commands, so tracing
      uses qid 0 for these which incorrectly decodes as an admin command. Use
      the request_queue's queuedata instead since that value is always set for
      the IO queues, and never set for the admin queue.
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      643c476d
    • Chao Leng's avatar
      nvme-rdma: fix crash due to incorrect cqe · a87da50f
      Chao Leng authored
      A crash happened due to injecting error test.
      When a CQE has incorrect command id due do an error injection, the host
      may find a request which is already freed.  Dereferencing req->mr->rkey
      causes a crash in nvme_rdma_process_nvme_rsp because the mr is already
      freed.
      
      Add a check for the mr to fix it.
      Signed-off-by: default avatarChao Leng <lengchao@huawei.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      a87da50f
    • Chao Leng's avatar
      nvme-rdma: fix crash when connect rejected · 43efdb8e
      Chao Leng authored
      A crash can happened when a connect is rejected.   The host establishes
      the connection after received ConnectReply, and then continues to send
      the fabrics Connect command.  If the controller does not receive the
      ReadyToUse capsule, host may receive a ConnectReject reply.
      
      Call nvme_rdma_destroy_queue_ib after the host received the
      RDMA_CM_EVENT_REJECTED event.  Then when the fabrics Connect command
      times out, nvme_rdma_timeout calls nvme_rdma_complete_rq to fail the
      request.  A crash happenes due to use after free in
      nvme_rdma_complete_rq.
      
      nvme_rdma_destroy_queue_ib is redundant when handling the
      RDMA_CM_EVENT_REJECTED event as nvme_rdma_destroy_queue_ib is already
      called in connection failure handler.
      Signed-off-by: default avatarChao Leng <lengchao@huawei.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      43efdb8e
  3. 20 Oct, 2020 2 commits
    • Yufen Yu's avatar
      block: remove unused members for io_context · cb3a92da
      Yufen Yu authored
      After removing blk-sq code, there is no user of nr_batch_requests
      and last_waited in kernel.
      Signed-off-by: default avatarYufen Yu <yuyufen@huawei.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      cb3a92da
    • Xianting Tian's avatar
      blk-mq: remove the calling of local_memory_node() · 576e85c5
      Xianting Tian authored
      We don't need to check whether the node is memoryless numa node before
      calling allocator interface. SLUB(and SLAB,SLOB) relies on the page
      allocator to pick a node. Page allocator should deal with memoryless
      nodes just fine. It has zonelists constructed for each possible nodes.
      And it will automatically fall back into a node which is closest to the
      requested node. As long as __GFP_THISNODE is not enforced of course.
      
      The code comments of kmem_cache_alloc_node() of SLAB also showed this:
       * Fallback to other node is possible if __GFP_THISNODE is not set.
      
      blk-mq code doesn't set __GFP_THISNODE, so we can remove the calling
      of local_memory_node().
      Signed-off-by: default avatarXianting Tian <tian.xianting@h3c.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      576e85c5
  4. 19 Oct, 2020 1 commit
  5. 17 Oct, 2020 1 commit
  6. 16 Oct, 2020 2 commits
  7. 14 Oct, 2020 1 commit
  8. 13 Oct, 2020 18 commits
    • Damien Le Moal's avatar
      scsi: handle zone resources errors · d8f53b0a
      Damien Le Moal authored
      ZBC or ZAC disks that have a limit on the number of open zones may fail
      a zone open command or a write to a zone that is not already implicitly
      or explicitly open if the total number of open zones is already at the
      maximum allowed.
      
      For these operations, instead of returning the generic BLK_STS_IOERR,
      return BLK_STS_ZONE_OPEN_RESOURCE which is returned as -ETOOMANYREFS to
      the I/O issuer, allowing the device user to act appropriately on these
      relatively benign zone resource errors.
      Acked-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d8f53b0a
    • Keith Busch's avatar
      nvme: translate zone resource errors · afaf5c6c
      Keith Busch authored
      Translate zoned resource errors to the appropriate blk_status_t.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      afaf5c6c
    • Keith Busch's avatar
      block: add zone specific block statuses · 3b481d91
      Keith Busch authored
      A zoned device with limited resources to open or activate zones may
      return an error when the host exceeds those limits. The same command may
      be successful if retried later, but the host needs to wait for specific
      zone states before it should expect a retry to succeed. Have the block
      layer provide an appropriate status for these conditions so applications
      can distinuguish this error for special handling.
      
      Cc: linux-api@vger.kernel.org
      Cc: Niklas Cassel <niklas.cassel@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      3b481d91
    • Gioh Kim's avatar
      block/rnbd-clt: send_msg_close if any error occurs after send_msg_open · 47be77c2
      Gioh Kim authored
      After send_msg_open is done, send_msg_close should be done
      if any error occurs and it is necessary to recover
      what has been done.
      Signed-off-by: default avatarGioh Kim <gi-oh.kim@cloud.ionos.com>
      Signed-off-by: default avatarJack Wang <jinpu.wang@cloud.ionos.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      47be77c2
    • Jack Wang's avatar
      block/rnbd-clt: do not cap max_hw_sectors & max_segments with remote device · 050b654b
      Jack Wang authored
      The max_hw_secotrs is only limited by the transport, not remote device,
      block layer on server side will split to the device limit if it's too
      big.
      
      The max_segments, similar, and rtrs server will submit single buffer, so
      no need to cap.
      Signed-off-by: default avatarJack Wang <jinpu.wang@cloud.ionos.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      050b654b
    • Guoqing Jiang's avatar
      block/rnbd-clt: remove nr argument from send_usr_msg · 46a99e0c
      Guoqing Jiang authored
      The argument is not needed since all callers pass 1 for it.
      Signed-off-by: default avatarGuoqing Jiang <guoqing.jiang@cloud.ionos.com>
      Signed-off-by: default avatarJack Wang <jinpu.wang@cloud.ionos.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      46a99e0c
    • Linus Torvalds's avatar
      Merge tag 'x86_asm_for_v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 029f56db
      Linus Torvalds authored
      Pull x86 asm updates from Borislav Petkov:
       "Two asm wrapper fixes:
      
         - Use XORL instead of XORQ to avoid a REX prefix and save some bytes
           in the .fixup section, by Uros Bizjak.
      
         - Replace __force_order dummy variable with a memory clobber to fix
           LLVM requiring a definition for former and to prevent memory
           accesses from still being cached/reordered, by Arvind Sankar"
      
      * tag 'x86_asm_for_v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm: Replace __force_order with a memory clobber
        x86/uaccess: Use XORL %0,%0 in __get_user_asm()
      029f56db
    • Linus Torvalds's avatar
      Merge tag 'drivers-5.10-2020-10-12' of git://git.kernel.dk/linux-block · 7cd4ecd9
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
       "Here are the driver updates for 5.10.
      
        A few SCSI updates in here too, in coordination with Martin as they
        depend on core block changes for the shared tag bitmap.
      
        This contains:
      
         - NVMe pull requests via Christoph:
            - fix keep alive timer modification (Amit Engel)
            - order the PCI ID list more sensibly (Andy Shevchenko)
            - cleanup the open by controller helper (Chaitanya Kulkarni)
            - use an xarray for the CSE log lookup (Chaitanya Kulkarni)
            - support ZNS in nvmet passthrough mode (Chaitanya Kulkarni)
            - fix nvme_ns_report_zones (Christoph Hellwig)
            - add a sanity check to nvmet-fc (James Smart)
            - fix interrupt allocation when too many polled queues are
              specified (Jeffle Xu)
            - small nvmet-tcp optimization (Mark Wunderlich)
            - fix a controller refcount leak on init failure (Chaitanya
              Kulkarni)
            - misc cleanups (Chaitanya Kulkarni)
            - major refactoring of the scanning code (Christoph Hellwig)
      
         - MD updates via Song:
            - Bug fixes in bitmap code, from Zhao Heming
            - Fix a work queue check, from Guoqing Jiang
            - Fix raid5 oops with reshape, from Song Liu
            - Clean up unused code, from Jason Yan
            - Discard improvements, from Xiao Ni
            - raid5/6 page offset support, from Yufen Yu
      
         - Shared tag bitmap for SCSI/hisi_sas/null_blk (John, Kashyap,
           Hannes)
      
         - null_blk open/active zone limit support (Niklas)
      
         - Set of bcache updates (Coly, Dongsheng, Qinglang)"
      
      * tag 'drivers-5.10-2020-10-12' of git://git.kernel.dk/linux-block: (78 commits)
        md/raid5: fix oops during stripe resizing
        md/bitmap: fix memory leak of temporary bitmap
        md: fix the checking of wrong work queue
        md/bitmap: md_bitmap_get_counter returns wrong blocks
        md/bitmap: md_bitmap_read_sb uses wrong bitmap blocks
        md/raid0: remove unused function is_io_in_chunk_boundary()
        nvme-core: remove extra condition for vwc
        nvme-core: remove extra variable
        nvme: remove nvme_identify_ns_list
        nvme: refactor nvme_validate_ns
        nvme: move nvme_validate_ns
        nvme: query namespace identifiers before adding the namespace
        nvme: revalidate zone bitmaps in nvme_update_ns_info
        nvme: remove nvme_update_formats
        nvme: update the known admin effects
        nvme: set the queue limits in nvme_update_ns_info
        nvme: remove the 0 lba_shift check in nvme_update_ns_info
        nvme: clean up the check for too large logic block sizes
        nvme: freeze the queue over ->lba_shift updates
        nvme: factor out a nvme_configure_metadata helper
        ...
      7cd4ecd9
    • Linus Torvalds's avatar
      Merge tag 'libata-5.10-2020-10-12' of git://git.kernel.dk/linux-block · 79ec6d9c
      Linus Torvalds authored
      Pull libata updates from Jens Axboe:
       "Nothing major in here, just fixes or improvements collected over the
        last few months"
      
      * tag 'libata-5.10-2020-10-12' of git://git.kernel.dk/linux-block:
        ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
        MAINTAINERS: remove LIBATA PATA DRIVERS entry
        pata_cmd64x: Use fallthrough pseudo-keyword
        ahci: qoriq: enable acpi support in qoriq ahci driver
        sata, highbank: simplify the return expression of ahci_highbank_suspend
        ahci: Add Intel Rocket Lake PCH-H RAID PCI IDs
      79ec6d9c
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.10-2020-10-12' of git://git.kernel.dk/linux-block · 6ad4bf6e
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - Add blkcg accounting for io-wq offload (Dennis)
      
       - A use-after-free fix for io-wq (Hillf)
      
       - Cancelation fixes and improvements
      
       - Use proper files_struct references for offload
      
       - Cleanup of io_uring_get_socket() since that can now go into our own
         header
      
       - SQPOLL fixes and cleanups, and support for sharing the thread
      
       - Improvement to how page accounting is done for registered buffers and
         huge pages, accounting the real pinned state
      
       - Series cleaning up the xarray code (Willy)
      
       - Various cleanups, refactoring, and improvements (Pavel)
      
       - Use raw spinlock for io-wq (Sebastian)
      
       - Add support for ring restrictions (Stefano)
      
      * tag 'io_uring-5.10-2020-10-12' of git://git.kernel.dk/linux-block: (62 commits)
        io_uring: keep a pointer ref_node in file_data
        io_uring: refactor *files_register()'s error paths
        io_uring: clean file_data access in files_register
        io_uring: don't delay io_init_req() error check
        io_uring: clean leftovers after splitting issue
        io_uring: remove timeout.list after hrtimer cancel
        io_uring: use a separate struct for timeout_remove
        io_uring: improve submit_state.ios_left accounting
        io_uring: simplify io_file_get()
        io_uring: kill extra check in fixed io_file_get()
        io_uring: clean up ->files grabbing
        io_uring: don't io_prep_async_work() linked reqs
        io_uring: Convert advanced XArray uses to the normal API
        io_uring: Fix XArray usage in io_uring_add_task_file
        io_uring: Fix use of XArray in __io_uring_files_cancel
        io_uring: fix break condition for __io_uring_register() waiting
        io_uring: no need to call xa_destroy() on empty xarray
        io_uring: batch account ->req_issue and task struct references
        io_uring: kill callback_head argument for io_req_task_work_add()
        io_uring: move req preps out of io_issue_sqe()
        ...
      6ad4bf6e
    • Linus Torvalds's avatar
      Merge tag 'block-5.10-2020-10-12' of git://git.kernel.dk/linux-block · 3ad11d7a
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - Series of merge handling cleanups (Baolin, Christoph)
      
       - Series of blk-throttle fixes and cleanups (Baolin)
      
       - Series cleaning up BDI, seperating the block device from the
         backing_dev_info (Christoph)
      
       - Removal of bdget() as a generic API (Christoph)
      
       - Removal of blkdev_get() as a generic API (Christoph)
      
       - Cleanup of is-partition checks (Christoph)
      
       - Series reworking disk revalidation (Christoph)
      
       - Series cleaning up bio flags (Christoph)
      
       - bio crypt fixes (Eric)
      
       - IO stats inflight tweak (Gabriel)
      
       - blk-mq tags fixes (Hannes)
      
       - Buffer invalidation fixes (Jan)
      
       - Allow soft limits for zone append (Johannes)
      
       - Shared tag set improvements (John, Kashyap)
      
       - Allow IOPRIO_CLASS_RT for CAP_SYS_NICE (Khazhismel)
      
       - DM no-wait support (Mike, Konstantin)
      
       - Request allocation improvements (Ming)
      
       - Allow md/dm/bcache to use IO stat helpers (Song)
      
       - Series improving blk-iocost (Tejun)
      
       - Various cleanups (Geert, Damien, Danny, Julia, Tetsuo, Tian, Wang,
         Xianting, Yang, Yufen, yangerkun)
      
      * tag 'block-5.10-2020-10-12' of git://git.kernel.dk/linux-block: (191 commits)
        block: fix uapi blkzoned.h comments
        blk-mq: move cancel of hctx->run_work to the front of blk_exit_queue
        blk-mq: get rid of the dead flush handle code path
        block: get rid of unnecessary local variable
        block: fix comment and add lockdep assert
        blk-mq: use helper function to test hw stopped
        block: use helper function to test queue register
        block: remove redundant mq check
        block: invoke blk_mq_exit_sched no matter whether have .exit_sched
        percpu_ref: don't refer to ref->data if it isn't allocated
        block: ratelimit handle_bad_sector() message
        blk-throttle: Re-use the throtl_set_slice_end()
        blk-throttle: Open code __throtl_de/enqueue_tg()
        blk-throttle: Move service tree validation out of the throtl_rb_first()
        blk-throttle: Move the list operation after list validation
        blk-throttle: Fix IO hang for a corner case
        blk-throttle: Avoid tracking latency if low limit is invalid
        blk-throttle: Avoid getting the current time if tg->last_finish_time is 0
        blk-throttle: Remove a meaningless parameter for throtl_downgrade_state()
        block: Remove redundant 'return' statement
        ...
      3ad11d7a
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 857d6448
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Fix the #DE oops message string format which confused tools parsing
         crash information (Thomas Gleixner)
      
       - Remove an unused variable in the UV5 code which was triggering a
         build warning with clang (Mike Travis)
      
      * tag 'x86_urgent_for_v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/uv: Remove unused variable in UV5 NMI handler
        x86/traps: Fix #DE Oops message regression
      857d6448
    • Mike Travis's avatar
    • Thomas Gleixner's avatar
      x86/traps: Fix #DE Oops message regression · 5f1ec1fd
      Thomas Gleixner authored
      The conversion of #DE to the idtentry mechanism introduced a change in the
      Ooops message which confuses tools which parse crash information in dmesg.
      
      Remove the underscore from 'divide_error' to restore previous behaviour.
      
      Fixes: 9d06c402 ("x86/entry: Convert Divide Error to IDTENTRY")
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/CACT4Y+bTZFkuZd7+bPArowOv-7Die+WZpfOWnEO_Wgs3U59+oA@mail.gmail.com
      5f1ec1fd
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · c4439713
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New driver and chip support:
         - Moortec MR75203 PVT controller
         - MPS Multi-phase mp2975 controller
         - ADM1266
         - Zen3 CPUs
         - Intel MAX 10 BMC
      
        Enhancements:
         - Support for rated attributes in hwmon core
         - MAX20730:
            - Device monitoring via debugfs
            - VOUT readin adjustment vie devicetree bindings
         - LM75:
            - Devicetree support
            - Regulator support
         - Improved accumulationm logic in amd_energy driver
         - Added fan sensor to gsc-hwmon driver
         - Support for simplified I2C probing
      
        Various other minor fixes and improvements"
      
      * tag 'hwmon-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (64 commits)
        hwmon: (pmbus/max20730) adjust the vout reading given voltage divider
        dt-bindings: hwmon: max20730: adding device tree doc for max20730
        hwmon: Add hardware monitoring driver for Moortec MR75203 PVT controller
        hwmon: Add DT bindings schema for PVT controller
        dt-bindings: hwmon: Add the +vs supply to the lm75 bindings
        dt-bindings: hwmon: Convert lm75 bindings to yaml
        docs: hwmon: (ltc2945) update datasheet link
        hwmon: (mlxreg-fan) Fix double "Mellanox"
        hwmon: (pmbus/max20730) add device monitoring via debugfs
        hwmon: (pmbus/max34440) Fix OC fault limits
        hwmon: (bt1-pvt) Wait for the completion with timeout
        hwmon: (bt1-pvt) Cache current update timeout
        hwmon: (bt1-pvt) Test sensor power supply on probe
        hwmon: (lm75) Add regulator support
        hwmon: Add hwmon driver for Intel MAX 10 BMC
        dt-bindings: Add MP2975 voltage regulator device
        hwmon: (pmbus) Add support for MPS Multi-phase mp2975 controller
        hwmon: (tmp513) fix spelling typo in comments
        hwmon: (amd_energy) Update driver documentation
        hwmon: (amd_energy) Improve the accumulation logic
        ...
      c4439713
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 0486beaf
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This time very little driver changes but lots of core changes.
      
        We have some interesting cooperative work for ARM and Intel alike,
        making the GPIO subsystem more and more suitable for industrial
        systems and the like, in addition to the in-kernel users.
      
        We touch driver core (device properties) and lib/* by adding one
        simple string array free function, these are authored by Andy
        Shevchenko who is a well known and recognized core helpers maintainers
        so this should be fine.
      
        We also see some Android GKI-related modularization in the MXC
        drivers.
      
        Core changes:
      
         - The big core change is the updated (v2) userspace character device
           API.
      
           This corrects badly designed 64-bit alignment around the line
           events. We also add the debounce request feature. This echoes the
           often quotes passage from Frederick Brooks "The mythical man-month"
           to always throw one away, which we have seen before in things such
           as V4L2. So we put in a new one and deprecate and obsolete the old
           one.
      
         - All example tools in tools/gpio/* are migrated to the new API to
           set a good example. The libgpiod userspace library has been
           augmented to use this new API pretty much from day 1.
      
         - Some misc API hardening by using strn* function calls has been
           added as well.
      
         - Use the simpler IDA interface for GPIO chip instance enumeration.
      
         - Add device core function for counting string arrays in device
           properties.
      
         - Provide a generic library function kfree_strarray() that can be
           used throughout the kernel.
      
        Driver enhancements:
      
         - The DesignWare dwapb-gpio driver has been enhanced and now uses the
           IRQ handling in the gpiolib core.
      
         - The mockup and aggregator drivers have seen some substantial code
           clean-up and now use more of the core kernel inftrastructure.
      
         - Misc cleanups using dev_err_probe().
      
         - The MXC drivers (Freescale/NXP) can now be built modularized, which
           makes modularized GKI Android kernels happy"
      
      * tag 'gpio-v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (73 commits)
        gpiolib: Update header block in gpiolib-cdev.h
        gpiolib: cdev: switch from kstrdup() to kstrndup()
        docs: gpio: add a new document to its index.rst
        gpio: pca953x: Add support for the NXP PCAL9554B/C
        tools: gpio: add debounce support to gpio-event-mon
        tools: gpio: add multi-line monitoring to gpio-event-mon
        tools: gpio: port gpio-event-mon to v2 uAPI
        tools: gpio: port gpio-hammer to v2 uAPI
        tools: gpio: rename nlines to num_lines
        tools: gpio: port gpio-watch to v2 uAPI
        tools: gpio: port lsgpio to v2 uAPI
        gpio: uapi: document uAPI v1 as deprecated
        gpiolib: cdev: support setting debounce
        gpiolib: cdev: support GPIO_V2_LINE_SET_VALUES_IOCTL
        gpiolib: cdev: support GPIO_V2_LINE_SET_CONFIG_IOCTL
        gpiolib: cdev: support edge detection for uAPI v2
        gpiolib: cdev: support GPIO_V2_GET_LINEINFO_IOCTL and GPIO_V2_GET_LINEINFO_WATCH_IOCTL
        gpiolib: cdev: support GPIO_V2_GET_LINE_IOCTL and GPIO_V2_LINE_GET_VALUES_IOCTL
        gpiolib: add build option for CDEV v1 ABI
        gpiolib: make cdev a build option
        ...
      0486beaf
    • Linus Torvalds's avatar
      Merge tag 'spi-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · a996b9c6
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "There's quite a lot of changes for SPI in this release but none in the
        core, they're all mostly small driver updates and additions. Some of
        the more notable changes include:
      
         - A huge set of cleanups, optimizations and improvements for the
           DesignWare driver from Serge Semin finishing up the work started
           last release.
      
         - Conversion of the Zynq gqspi driver to spi-mem.
      
         - Support for Baikal T1, Broadcom BCMSTB 7445, and Renesas R8A7742"
      
      * tag 'spi-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (137 commits)
        spi: cadence: Add SPI transfer delays
        spi: dw: Add Baikal-T1 SPI Controller bindings
        spi: dw: Add Baikal-T1 SPI Controller glue driver
        spi: dw: Add poll-based SPI transfers support
        spi: dw: Introduce max mem-ops SPI bus frequency setting
        spi: dw: Add memory operations support
        spi: dw: Add generic DW SSI status-check method
        spi: dw: Move num-of retries parameter to the header file
        spi: dw: Explicitly de-assert CS on SPI transfer completion
        spi: dw: De-assert chip-select on reset
        spi: dw: Discard chip enabling on DMA setup error
        spi: dw: Unmask IRQs after enabling the chip
        spi: dw: Perform IRQ setup in a dedicated function
        spi: dw: Refactor IRQ-based SPI transfer procedure
        spi: dw: Refactor data IO procedure
        spi: dw: Add DW SPI controller config structure
        spi: dw: Update Rx sample delay in the config function
        spi: dw: Simplify the SPI bus speed config procedure
        spi: dw: Update SPI bus speed in a config function
        spi: dw: Detach SPI device specific CR0 config method
        ...
      a996b9c6
    • Linus Torvalds's avatar
      Merge tag 'regulator-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 1724e02e
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "This is a fairly small release for the regulator API, there's quite a
        few new devices supported and some important improvements around
        coupled regulators in the core but mostly just small fixes and
        improvements otherwise.
      
        Summary:
      
         - Fixes and cleanups around the handling of coupled regulators.
      
         - A special driver for some Raspberry Pi panels with some unusually
           custom stuff around them.
      
         - Support for Qualcomm PM660/PM660L, PM8950 and PM8953, Richtek
           RT4801 and RTMV20, Rohm BD9576MUF and BD9573MUF"
      
      * tag 'regulator-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (89 commits)
        regulator: bd9576: Fix print
        regulator: bd9576: fix regulator binfdings dt node names
        dt-bindings: regulator: document pm8950 and pm8953 smd regulators
        regulator: qcom_smd: add pm8953 regulators
        regulator: Make constraint debug processing conditional on DEBUG
        regulator: qcom: labibb: Constify static structs
        regulator: dt-bindings: Document the PM660/PM660L PMICs entries
        regulator: qcom_smd: Add PM660/PM660L regulator support
        regulator: dt-bindings: Document the PM660/660L SPMI PMIC entries
        regulator: qcom_spmi: Add PM660/PM660L regulators
        regulator: qcom_spmi: Add support for new regulator types
        regulator: core: Enlarge max OF property name length to 64 chars
        regulator: tps65910: use regmap accessors
        regulator: rtmv20: Add missing regcache cache only before marked as dirty
        regulator: rtmv20: Update DT binding document and property name parsing
        regulator: rtmv20: Add DT-binding document for Richtek RTMV20
        regulator: rtmv20: Adds support for Richtek RTMV20 load switch regulator
        regulator: resolve supply after creating regulator
        regulator: print symbolic errors in kernel messages
        regulator: print state at boot
        ...
      1724e02e