Skip to content
Snippets Groups Projects
  1. Feb 25, 2025
  2. Feb 24, 2025
    • Sagi Grimberg's avatar
      nvme-tcp: fix possible UAF in nvme_tcp_poll · 8c1624b6
      Sagi Grimberg authored
      
      nvme_tcp_poll() may race with the send path error handler because
      it may complete the request while it is actively being polled for
      completion, resulting in a UAF panic [1]:
      
      We should make sure to stop polling when we see an error when
      trying to read from the socket. Hence make sure to propagate the
      error so that the block layer breaks the polling cycle.
      
      [1]:
      --
      [35665.692310] nvme nvme2: failed to send request -13
      [35665.702265] nvme nvme2: unsupported pdu type (3)
      [35665.702272] BUG: kernel NULL pointer dereference, address: 0000000000000000
      [35665.702542] nvme nvme2: queue 1 receive failed:  -22
      [35665.703209] #PF: supervisor write access in kernel mode
      [35665.703213] #PF: error_code(0x0002) - not-present page
      [35665.703214] PGD 8000003801cce067 P4D 8000003801cce067 PUD 37e6f79067 PMD 0
      [35665.703220] Oops: 0002 [#1] SMP PTI
      [35665.703658] nvme nvme2: starting error recovery
      [35665.705809] Hardware name: Inspur aaabbb/YZMB-00882-104, BIOS 4.1.26 09/22/2022
      [35665.705812] Workqueue: kblockd blk_mq_requeue_work
      [35665.709172] RIP: 0010:_raw_spin_lock+0xc/0x30
      [35665.715788] Call Trace:
      [35665.716201]  <TASK>
      [35665.716613]  ? show_trace_log_lvl+0x1c1/0x2d9
      [35665.717049]  ? show_trace_log_lvl+0x1c1/0x2d9
      [35665.717457]  ? blk_mq_request_bypass_insert+0x2c/0xb0
      [35665.717950]  ? __die_body.cold+0x8/0xd
      [35665.718361]  ? page_fault_oops+0xac/0x140
      [35665.718749]  ? blk_mq_start_request+0x30/0xf0
      [35665.719144]  ? nvme_tcp_queue_rq+0xc7/0x170 [nvme_tcp]
      [35665.719547]  ? exc_page_fault+0x62/0x130
      [35665.719938]  ? asm_exc_page_fault+0x22/0x30
      [35665.720333]  ? _raw_spin_lock+0xc/0x30
      [35665.720723]  blk_mq_request_bypass_insert+0x2c/0xb0
      [35665.721101]  blk_mq_requeue_work+0xa5/0x180
      [35665.721451]  process_one_work+0x1e8/0x390
      [35665.721809]  worker_thread+0x53/0x3d0
      [35665.722159]  ? process_one_work+0x390/0x390
      [35665.722501]  kthread+0x124/0x150
      [35665.722849]  ? set_kthread_struct+0x50/0x50
      [35665.723182]  ret_from_fork+0x1f/0x30
      
      Reported-by: default avatarZhang Guanghui <zhang.guanghui@cestc.cn>
      Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      8c1624b6
  3. Feb 21, 2025
    • Jens Axboe's avatar
      Merge tag 'nvme-6.14-2025-02-20' of git://git.infradead.org/nvme into block-6.14 · 70550442
      Jens Axboe authored
      Pull NVMe fixes from Keith:
      
      "nvme fixes for Linux 6.14
      
       - FC controller state check fixes (Daniel)
       - PCI Endpoint fixes (Damien)
       - TCP connection failure fixe (Caleb)
       - TCP handling C2HTermReq PDU (Maurizio)
       - RDMA queue state check (Ruozhu)
       - Apple controller fixes (Hector)
       - Target crash on disbaled namespace (Hannes)"
      
      * tag 'nvme-6.14-2025-02-20' of git://git.infradead.org/nvme:
        nvme: only allow entering LIVE from CONNECTING state
        nvme-fc: rely on state transitions to handle connectivity loss
        apple-nvme: Support coprocessors left idle
        apple-nvme: Release power domains when probe fails
        nvmet: Use enum definitions instead of hardcoded values
        nvme: Cleanup the definition of the controller config register fields
        nvme/ioctl: add missing space in err message
        nvme-tcp: fix connect failure on receiving partial ICResp PDU
        nvme: tcp: Fix compilation warning with W=1
        nvmet: pci-epf: Avoid RCU stalls under heavy workload
        nvmet: pci-epf: Do not uselessly write the CSTS register
        nvmet: pci-epf: Correctly initialize CSTS when enabling the controller
        nvmet-rdma: recheck queue state is LIVE in state lock in recv done
        nvmet: Fix crash when a namespace is disabled
        nvme-tcp: add basic support for the C2HTermReq PDU
        nvme-pci: quirk Acer FA100 for non-uniqueue identifiers
      70550442
  4. Feb 20, 2025
  5. Feb 18, 2025
    • Hector Martin's avatar
      apple-nvme: Support coprocessors left idle · 3f22421f
      Hector Martin authored
      
      iBoot on at least some firmwares/machines leaves ANS2 running, requiring
      a wake command instead of a CPU boot (and if we reset ANS2 in that
      state, everything breaks).
      
      Only stop the CPU if RTKit was running, and only do the reset dance if
      the CPU is stopped.
      
      Normal shutdown handoff:
      - RTKit not yet running
      - CPU detected not running
      - Reset
      - CPU powerup
      - RTKit boot wait
      
      ANS2 left running/idle:
      - RTKit not yet running
      - CPU detected running
      - RTKit wake message
      
      Sleep/resume cycle:
      - RTKit shutdown
      - CPU stopped
      - (sleep here)
      - CPU detected not running
      - Reset
      - CPU powerup
      - RTKit boot wait
      
      Shutdown or device removal:
      - RTKit shutdown
      - CPU stopped
      
      Therefore, the CPU running bit serves as a consistent flag of whether
      the coprocessor is fully stopped or just idle.
      
      Signed-off-by: default avatarHector Martin <marcan@marcan.st>
      Reviewed-by: default avatarNeal Gompa <neal@gompa.dev>
      Reviewed-by: Sven Peter's avatarSven Peter <sven@svenpeter.dev>
      Signed-off-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      3f22421f
    • Hector Martin's avatar
    • Damien Le Moal's avatar
      nvmet: Use enum definitions instead of hardcoded values · 2ba8cf91
      Damien Le Moal authored
      
      Change the definition of the inline functions nvmet_cc_en(),
      nvmet_cc_css(), nvmet_cc_mps(), nvmet_cc_ams(), nvmet_cc_shn(),
      nvmet_cc_iosqes(), and nvmet_cc_iocqes() to use the enum difinitions in
      include/linux/nvme.h instead of hardcoded values.
      
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      2ba8cf91
    • Damien Le Moal's avatar
      nvme: Cleanup the definition of the controller config register fields · d422247d
      Damien Le Moal authored
      
      Reorganized the enum used to define the fields of the contrller
      configuration (CC) register in include/linux/nvme.h to:
      1) Group together all the values defined for each field.
      2) Add the missing field masks definitions.
      3) Add comments to describe the enum and each field.
      
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      d422247d
    • Caleb Sander Mateos's avatar
      nvme/ioctl: add missing space in err message · 487a3ea7
      Caleb Sander Mateos authored
      
      nvme_validate_passthru_nsid() logs an err message whose format string is
      split over 2 lines. There is a missing space between the two pieces,
      resulting in log lines like "... does not match nsid (1)of namespace".
      Add the missing space between ")" and "of". Also combine the format
      string pieces onto a single line to make the err message easier to grep.
      
      Fixes: e7d4b549 ("nvme: factor out a nvme_validate_passthru_nsid helper")
      Signed-off-by: default avatarCaleb Sander Mateos <csander@purestorage.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      487a3ea7
    • Caleb Sander Mateos's avatar
      nvme-tcp: fix connect failure on receiving partial ICResp PDU · 578539e0
      Caleb Sander Mateos authored
      
      nvme_tcp_init_connection() attempts to receive an ICResp PDU but only
      checks that the return value from recvmsg() is non-negative. If the
      sender closes the TCP connection or sends fewer than 128 bytes, this
      check will pass even though the full PDU wasn't received.
      
      Ensure the full ICResp PDU is received by checking that recvmsg()
      returns the expected 128 bytes.
      
      Additionally set the MSG_WAITALL flag for recvmsg(), as a sender could
      split the ICResp over multiple TCP frames. Without MSG_WAITALL,
      recvmsg() could return prematurely with only part of the PDU.
      
      Fixes: 3f2304f8 ("nvme-tcp: add NVMe over TCP host driver")
      Signed-off-by: default avatarCaleb Sander Mateos <csander@purestorage.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      578539e0
    • Damien Le Moal's avatar
      nvme: tcp: Fix compilation warning with W=1 · cd513e04
      Damien Le Moal authored
      
      When compiling with W=1, a warning result for the function
      nvme_tcp_set_queue_io_cpu():
      
      host/tcp.c:1578: warning: Function parameter or struct member 'queue'
      not described in 'nvme_tcp_set_queue_io_cpu'
      host/tcp.c:1578: warning: expecting prototype for Track the number of
      queues assigned to each cpu using a global per(). Prototype was for
      nvme_tcp_set_queue_io_cpu() instead
      
      Avoid this warning by using the regular comment format for the function
      nvme_tcp_set_queue_io_cpu() instead of the kdoc comment format.
      
      Fixes: 32193789 ("nvme-tcp: Fix I/O queue cpu spreading for multiple controllers")
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      cd513e04
    • Damien Le Moal's avatar
      nvmet: pci-epf: Avoid RCU stalls under heavy workload · 01ef7ff7
      Damien Le Moal authored
      
      The delayed work item function nvmet_pci_epf_poll_sqs_work() polls all
      submission queues and keeps running in a loop as long as commands are
      being submitted by the host. Depending on the preemption configuration
      of the kernel, under heavy command workload, this function can thus run
      for more than RCU_CPU_STALL_TIMEOUT seconds, leading to a RCU stall:
      
       rcu: INFO: rcu_sched self-detected stall on CPU
       rcu:   5-....: (20998 ticks this GP) idle=4244/1/0x4000000000000000 softirq=301/301 fqs=5132
       rcu:   (t=21000 jiffies g=-443 q=12 ncpus=8)
       CPU: 5 UID: 0 PID: 82 Comm: kworker/5:1 Not tainted 6.14.0-rc2 #1
       Hardware name: Radxa ROCK 5B (DT)
       Workqueue: events nvmet_pci_epf_poll_sqs_work [nvmet_pci_epf]
       pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
       pc : dw_edma_device_tx_status+0xb8/0x130
       lr : dw_edma_device_tx_status+0x9c/0x130
       sp : ffff800080b5bbb0
       x29: ffff800080b5bbb0 x28: ffff0331c5c78400 x27: ffff0331c1cd1960
       x26: ffff0331c0e39010 x25: ffff0331c20e4000 x24: ffff0331c20e4a90
       x23: 0000000000000000 x22: 0000000000000001 x21: 00000000005aca33
       x20: ffff800080b5bc30 x19: ffff0331c123e370 x18: 000000000ab29e62
       x17: ffffb2a878c9c118 x16: ffff0335bde82040 x15: 0000000000000000
       x14: 000000000000017b x13: 00000000ee601780 x12: 0000000000000018
       x11: 0000000000000000 x10: 0000000000000001 x9 : 0000000000000040
       x8 : 00000000ee601780 x7 : 0000000105c785c0 x6 : ffff0331c1027d80
       x5 : 0000000001ee7ad6 x4 : ffff0335bdea16c0 x3 : ffff0331c123e438
       x2 : 00000000005aca33 x1 : 0000000000000000 x0 : ffff0331c123e410
       Call trace:
        dw_edma_device_tx_status+0xb8/0x130 (P)
        dma_sync_wait+0x60/0xbc
        nvmet_pci_epf_dma_transfer+0x128/0x264 [nvmet_pci_epf]
        nvmet_pci_epf_poll_sqs_work+0x2a0/0x2e0 [nvmet_pci_epf]
        process_one_work+0x144/0x390
        worker_thread+0x27c/0x458
        kthread+0xe8/0x19c
        ret_from_fork+0x10/0x20
      
      The solution for this is simply to explicitly allow rescheduling using
      cond_resched(). However, since doing so for every loop of
      nvmet_pci_epf_poll_sqs_work() significantly degrades performance
      (for 4K random reads using 4 I/O queues, the maximum IOPS goes down from
      137 KIOPS to 110 KIOPS), call cond_resched() every second to avoid the
      RCU stalls.
      
      Fixes: 0faa0fe6 ("nvmet: New NVMe PCI endpoint function target driver")
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      01ef7ff7
    • Damien Le Moal's avatar
      nvmet: pci-epf: Do not uselessly write the CSTS register · ffa35567
      Damien Le Moal authored
      
      The function nvmet_pci_epf_poll_cc_work() will do nothing if there are
      no changes to the controller configuration (CC) register. However, even
      for such case, this function still calls nvmet_update_cc() and uselessly
      writes the CSTS register. Avoid this by simply rescheduling the poll_cc
      work if the CC register has not changed.
      
      Also reschedule the poll_cc work if the function
      nvmet_pci_epf_enable_ctrl() fails to allow the host the chance to try
      again enabling the controller.
      
      While at it, since there is no point in trying to handle the CC register
      as quickly as possible, change the poll_cc work scheduling interval to
      10 ms (from 5ms), to avoid excessive read accesses to that register.
      
      Fixes: 0faa0fe6 ("nvmet: New NVMe PCI endpoint function target driver")
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      ffa35567
    • Damien Le Moal's avatar
      nvmet: pci-epf: Correctly initialize CSTS when enabling the controller · 68a5c91f
      Damien Le Moal authored
      
      The function nvmet_pci_epf_poll_cc_work() sets the NVME_CSTS_RDY bit of
      the controller status register (CSTS) when nvmet_pci_epf_enable_ctrl()
      returns success. However, since this function can be called several
      times (e.g. if the host reboots), instead of setting the bit in
      ctrl->csts, initialize this field to only have NVME_CSTS_RDY set.
      Conversely, if nvmet_pci_epf_enable_ctrl() fails, make sure to clear all
      bits from ctrl->csts.
      
      To simplify nvmet_pci_epf_poll_cc_work(), initialize ctrl->csts to
      NVME_CSTS_RDY directly inside nvmet_pci_epf_enable_ctrl() and clear this
      field in that function as well in case of a failure. To be consistent,
      move clearing the NVME_CSTS_RDY bit from ctrl->csts when the controller
      is being disabled from nvmet_pci_epf_poll_cc_work() into
      nvmet_pci_epf_disable_ctrl().
      
      Fixes: 0faa0fe6 ("nvmet: New NVMe PCI endpoint function target driver")
      Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      68a5c91f
    • Ruozhu Li's avatar
      nvmet-rdma: recheck queue state is LIVE in state lock in recv done · 3988ac1c
      Ruozhu Li authored
      
      The queue state checking in nvmet_rdma_recv_done is not in queue state
      lock.Queue state can transfer to LIVE in cm establish handler between
      state checking and state lock here, cause a silent drop of nvme connect
      cmd.
      Recheck queue state whether in LIVE state in state lock to prevent this
      issue.
      
      Signed-off-by: default avatarRuozhu Li <david.li@jaguarmicro.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      3988ac1c
    • Hannes Reinecke's avatar
      nvmet: Fix crash when a namespace is disabled · 40823268
      Hannes Reinecke authored
      
      The namespace percpu counter protects pending I/O, and we can
      only safely diable the namespace once the counter drop to zero.
      Otherwise we end up with a crash when running blktests/nvme/058
      (eg for loop transport):
      
      [ 2352.930426] [  T53909] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] PREEMPT SMP KASAN PTI
      [ 2352.930431] [  T53909] KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f]
      [ 2352.930434] [  T53909] CPU: 3 UID: 0 PID: 53909 Comm: kworker/u16:5 Tainted: G        W          6.13.0-rc6 #232
      [ 2352.930438] [  T53909] Tainted: [W]=WARN
      [ 2352.930440] [  T53909] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014
      [ 2352.930443] [  T53909] Workqueue: nvmet-wq nvme_loop_execute_work [nvme_loop]
      [ 2352.930449] [  T53909] RIP: 0010:blkcg_set_ioprio+0x44/0x180
      
      as the queue is already torn down when calling submit_bio();
      
      So we need to init the percpu counter in nvmet_ns_enable(), and
      wait for it to drop to zero in nvmet_ns_disable() to avoid having
      I/O pending after the namespace has been disabled.
      
      Fixes: 74d16965 ("nvmet-loop: avoid using mutex in IO hotpath")
      
      Signed-off-by: default avatarHannes Reinecke <hare@kernel.org>
      Reviewed-by: default avatarNilay Shroff <nilay@linux.ibm.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Tested-by: default avatarShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      40823268
    • Maurizio Lombardi's avatar
      nvme-tcp: add basic support for the C2HTermReq PDU · 84e00904
      Maurizio Lombardi authored
      
      Previously, the NVMe/TCP host driver did not handle the C2HTermReq PDU,
      instead printing "unsupported pdu type (3)" when received. This patch adds
      support for processing the C2HTermReq PDU, allowing the driver
      to print the Fatal Error Status field.
      
      Example of output:
      nvme nvme4: Received C2HTermReq (FES = Invalid PDU Header Field)
      
      Signed-off-by: default avatarMaurizio Lombardi <mlombard@redhat.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      84e00904
    • Christopher Lentocha's avatar
      nvme-pci: quirk Acer FA100 for non-uniqueue identifiers · fcd87544
      Christopher Lentocha authored
      
      In order for two Acer FA100 SSDs to work in one PC (in the case of
      myself, a Lenovo Legion T5 28IMB05), and not show one drive and not
      the other, and sometimes mix up what drive shows up (randomly), these
      two lines of code need to be added, and then both of the SSDs will
      show up and not conflict when booting off of one of them. If you boot
      up your computer with both SSDs installed without this patch, you may
      also randomly get into a kernel panic (if the initrd is not set up) or
      stuck in the initrd "/init" process, it is set up, however, if you do
      apply this patch, there should not be problems with booting or seeing
      both contents of the drive. Tested with the btrfs filesystem with a
      RAID configuration of having the root drive '/' combined to make two
      256GB Acer FA100 SSDs become 512GB in total storage.
      
      Kernel Logs with patch applied (`dmesg -t | grep -i nvm`):
      
      ```
      ...
      nvme 0000:04:00.0: platform quirk: setting simple suspend
      nvme nvme0: pci function 0000:04:00.0
      nvme 0000:05:00.0: platform quirk: setting simple suspend
      nvme nvme1: pci function 0000:05:00.0
      nvme nvme1: missing or invalid SUBNQN field.
      nvme nvme1: allocated 64 MiB host memory buffer.
      nvme nvme0: missing or invalid SUBNQN field.
      nvme nvme0: allocated 64 MiB host memory buffer.
      nvme nvme1: 8/0/0 default/read/poll queues
      nvme nvme1: Ignoring bogus Namespace Identifiers
      nvme nvme0: 8/0/0 default/read/poll queues
      nvme nvme0: Ignoring bogus Namespace Identifiers
      nvme0n1: p1 p2
      ...
      ```
      
      Kernel Logs with patch not applied (`dmesg -t | grep -i nvm`):
      
      ```
      ...
      nvme 0000:04:00.0: platform quirk: setting simple suspend
      nvme nvme0: pci function 0000:04:00.0
      nvme 0000:05:00.0: platform quirk: setting simple suspend
      nvme nvme1: pci function 0000:05:00.0
      nvme nvme0: missing or invalid SUBNQN field.
      nvme nvme1: missing or invalid SUBNQN field.
      nvme nvme0: allocated 64 MiB host memory buffer.
      nvme nvme1: allocated 64 MiB host memory buffer.
      nvme nvme0: 8/0/0 default/read/poll queues
      nvme nvme1: 8/0/0 default/read/poll queues
      nvme nvme1: globally duplicate IDs for nsid 1
      nvme nvme1: VID:DID 1dbe:5216 model:Acer SSD FA100 256GB firmware:1.Z.J.2X
      nvme0n1: p1 p2
      ...
      ```
      
      Signed-off-by: default avatarChristopher Lentocha <christopherericlentocha@gmail.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
      fcd87544
  6. Feb 17, 2025
  7. Feb 14, 2025
  8. Feb 13, 2025
  9. Feb 07, 2025
  10. Feb 03, 2025
    • Jens Axboe's avatar
      Merge tag 'nvme-6.14-2025-01-31' of git://git.infradead.org/nvme into block-6.14 · 457bf496
      Jens Axboe authored
      Pull NVMe fixes from Keith:
      
      "nvme fixes for Linux 6.14
      
       - Connection fixes for fibre channel transport (Daniel)
       - Endian fixes (Keith, Christoph)
       - Cleanup fix for host memory buffer (Francis)
       - Platform specific power quirks (Georg)
       - Target memory leak (Sagi)
       - Use appropriate controller state accessor (Daniel)"
      
      * tag 'nvme-6.14-2025-01-31' of git://git.infradead.org/nvme:
        nvme-fc: use ctrl state getter
        nvme: make nvme_tls_attrs_group static
        nvmet: add a missing endianess conversion in nvmet_execute_admin_connect
        nvmet: the result field in nvmet_alloc_ctrl_args is little endian
        nvmet: fix a memory leak in controller identify
        nvme-fc: do not ignore connectivity loss during connecting
        nvme: handle connectivity loss in nvme_set_queue_count
        nvme-fc: go straight to connecting state when initializing
        nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk
        nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
        nvme-pci: remove redundant dma frees in hmb
        nvmet: fix rw control endian access
      457bf496
    • Stephen Rothwell's avatar
      drivers/block/sunvdc.c: update the correct AIP call · 64b48ec3
      Stephen Rothwell authored
      
      My sparc64 defconfig build failed like this:
      
      drivers/block/sunvdc.c: In function 'vdc_queue_drain':
      drivers/block/sunvdc.c:1130:9: error: too many arguments to function 'blk_mq_unquiesce_queue'
       1130 |         blk_mq_unquiesce_queue(q, memflags);
            |         ^~~~~~~~~~~~~~~~~~~~~~
      In file included from drivers/block/sunvdc.c:10:
      include/linux/blk-mq.h:895:6: note: declared here
        895 | void blk_mq_unquiesce_queue(struct request_queue *q);
            |      ^~~~~~~~~~~~~~~~~~~~~~
      drivers/block/sunvdc.c:1131:9: error: too few arguments to function 'blk_mq_unfreeze_queue'
       1131 |         blk_mq_unfreeze_queue(q);
            |         ^~~~~~~~~~~~~~~~~~~~~
      In file included from drivers/block/sunvdc.c:10:
      include/linux/blk-mq.h:914:1: note: declared here
        914 | blk_mq_unfreeze_queue(struct request_queue *q, unsigned int memflags)
            | ^~~~~~~~~~~~~~~~~~~~~
      
      Fixes: 1e1a9cec ("block: force noio scope in blk_mq_freeze_queue")
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      64b48ec3
  11. Jan 31, 2025
  12. Jan 29, 2025
  13. Jan 28, 2025
  14. Jan 27, 2025
  15. Jan 24, 2025
Loading