Commit ce8a79d5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-6.2/block-2022-12-08' of git://git.kernel.dk/linux

Pull block updates from Jens Axboe:

 - NVMe pull requests via Christoph:
      - Support some passthrough commands without CAP_SYS_ADMIN (Kanchan
        Joshi)
      - Refactor PCIe probing and reset (Christoph Hellwig)
      - Various fabrics authentication fixes and improvements (Sagi
        Grimberg)
      - Avoid fallback to sequential scan due to transient issues (Uday
        Shankar)
      - Implement support for the DEAC bit in Write Zeroes (Christoph
        Hellwig)
      - Allow overriding the IEEE OUI and firmware revision in configfs
        for nvmet (Aleksandr Miloserdov)
      - Force reconnect when number of queue changes in nvmet (Daniel
        Wagner)
      - Minor fixes and improvements (Uros Bizjak, Joel Granados, Sagi
        Grimberg, Christoph Hellwig, Christophe JAILLET)
      - Fix and cleanup nvme-fc req allocation (Chaitanya Kulkarni)
      - Use the common tagset helpers in nvme-pci driver (Christoph
        Hellwig)
      - Cleanup the nvme-pci removal path (Christoph Hellwig)
      - Use kstrtobool() instead of strtobool (Christophe JAILLET)
      - Allow unprivileged passthrough of Identify Controller (Joel
        Granados)
      - Support io stats on the mpath device (Sagi Grimberg)
      - Minor nvmet cleanup (Sagi Grimberg)

 - MD pull requests via Song:
      - Code cleanups (Christoph)
      - Various fixes

 - Floppy pull request from Denis:
      - Fix a memory leak in the init error path (Yuan)

 - Series fixing some batch wakeup issues with sbitmap (Gabriel)

 - Removal of the pktcdvd driver that was deprecated more than 5 years
   ago, and subsequent removal of the devnode callback in struct
   block_device_operations as no users are now left (Greg)

 - Fix for partition read on an exclusively opened bdev (Jan)

 - Series of elevator API cleanups (Jinlong, Christoph)

 - Series of fixes and cleanups for blk-iocost (Kemeng)

 - Series of fixes and cleanups for blk-throttle (Kemeng)

 - Series adding concurrent support for sync queues in BFQ (Yu)

 - Series bringing drbd a bit closer to the out-of-tree maintained
   version (Christian, Joel, Lars, Philipp)

 - Misc drbd fixes (Wang)

 - blk-wbt fixes and tweaks for enable/disable (Yu)

 - Fixes for mq-deadline for zoned devices (Damien)

 - Add support for read-only and offline zones for null_blk
   (Shin'ichiro)

 - Series fixing the delayed holder tracking, as used by DM (Yu,
   Christoph)

 - Series enabling bio alloc caching for IRQ based IO (Pavel)

 - Series enabling userspace peer-to-peer DMA (Logan)

 - BFQ waker fixes (Khazhismel)

 - Series fixing elevator refcount issues (Christoph, Jinlong)

 - Series cleaning up references around queue destruction (Christoph)

 - Series doing quiesce by tagset, enabling cleanups in drivers
   (Christoph, Chao)

 - Series untangling the queue kobject and queue references (Christoph)

 - Misc fixes and cleanups (Bart, David, Dawei, Jinlong, Kemeng, Ye,
   Yang, Waiman, Shin'ichiro, Randy, Pankaj, Christoph)

* tag 'for-6.2/block-2022-12-08' of git://git.kernel.dk/linux: (247 commits)
  blktrace: Fix output non-blktrace event when blk_classic option enabled
  block: sed-opal: Don't include <linux/kernel.h>
  sed-opal: allow using IOC_OPAL_SAVE for locking too
  blk-cgroup: Fix typo in comment
  block: remove bio_set_op_attrs
  nvmet: don't open-code NVME_NS_ATTR_RO enumeration
  nvme-pci: use the tagset alloc/free helpers
  nvme: add the Apple shared tag workaround to nvme_alloc_io_tag_set
  nvme: only set reserved_tags in nvme_alloc_io_tag_set for fabrics controllers
  nvme: consolidate setting the tagset flags
  nvme: pass nr_maps explicitly to nvme_alloc_io_tag_set
  block: bio_copy_data_iter
  nvme-pci: split out a nvme_pci_ctrl_is_dead helper
  nvme-pci: return early on ctrl state mismatch in nvme_reset_work
  nvme-pci: rename nvme_disable_io_queues
  nvme-pci: cleanup nvme_suspend_queue
  nvme-pci: remove nvme_pci_disable
  nvme-pci: remove nvme_disable_admin_queue
  nvme: merge nvme_shutdown_ctrl into nvme_disable_ctrl
  nvme: use nvme_wait_ready in nvme_shutdown_ctrl
  ...
parents 96f7e448 f596da3e
Loading
Loading
Loading
Loading
+0 −18
Original line number Diff line number Diff line
What:           /sys/kernel/debug/pktcdvd/pktcdvd[0-7]
Date:           Oct. 2006
KernelVersion:  2.6.20
Contact:        Thomas Maier <balagi@justmail.de>
Description:

The pktcdvd module (packet writing driver) creates
these files in debugfs:

/sys/kernel/debug/pktcdvd/pktcdvd[0-7]/

    ====            ====== ====================================
    info            0444   Lots of driver statistics and infos.
    ====            ====== ====================================

Example::

    cat /sys/kernel/debug/pktcdvd/pktcdvd0/info
+10 −0
Original line number Diff line number Diff line
@@ -407,6 +407,16 @@ Description:
	        file contains a '1' if the memory has been published for
		use outside the driver that owns the device.

What:		/sys/bus/pci/devices/.../p2pmem/allocate
Date:		August 2022
Contact:	Logan Gunthorpe <logang@deltatee.com>
Description:
		This file allows mapping p2pmem into userspace. For each
		mmap() call on this file, the kernel will allocate a chunk
		of Peer-to-Peer memory for use in Peer-to-Peer transactions.
		This memory can be used in O_DIRECT calls to NVMe backed
		files for Peer-to-Peer copies.

What:		/sys/bus/pci/devices/.../link/clkpm
		/sys/bus/pci/devices/.../link/l0s_aspm
		/sys/bus/pci/devices/.../link/l1_aspm
+0 −97
Original line number Diff line number Diff line
sysfs interface
---------------
The pktcdvd module (packet writing driver) creates the following files in the
sysfs: (<devid> is in the format major:minor)

What:		/sys/class/pktcdvd/add
What:		/sys/class/pktcdvd/remove
What:		/sys/class/pktcdvd/device_map
Date:		Oct. 2006
KernelVersion:	2.6.20
Contact:	Thomas Maier <balagi@justmail.de>
Description:

		==========	==============================================
		add		(WO) Write a block device id (major:minor) to
				create a new pktcdvd device and map it to the
				block device.

		remove		(WO) Write the pktcdvd device id (major:minor)
				to remove the pktcdvd device.

		device_map	(RO) Shows the device mapping in format:
				pktcdvd[0-7] <pktdevid> <blkdevid>
		==========	==============================================


What:		/sys/class/pktcdvd/pktcdvd[0-7]/dev
What:		/sys/class/pktcdvd/pktcdvd[0-7]/uevent
Date:		Oct. 2006
KernelVersion:	2.6.20
Contact:	Thomas Maier <balagi@justmail.de>
Description:
		dev:	(RO) Device id

		uevent:	(WO) To send a uevent


What:		/sys/class/pktcdvd/pktcdvd[0-7]/stat/packets_started
What:		/sys/class/pktcdvd/pktcdvd[0-7]/stat/packets_finished
What:		/sys/class/pktcdvd/pktcdvd[0-7]/stat/kb_written
What:		/sys/class/pktcdvd/pktcdvd[0-7]/stat/kb_read
What:		/sys/class/pktcdvd/pktcdvd[0-7]/stat/kb_read_gather
What:		/sys/class/pktcdvd/pktcdvd[0-7]/stat/reset
Date:		Oct. 2006
KernelVersion:	2.6.20
Contact:	Thomas Maier <balagi@justmail.de>
Description:
		packets_started:	(RO) Number of started packets.

		packets_finished:	(RO) Number of finished packets.

		kb_written:		(RO) kBytes written.

		kb_read:		(RO) kBytes read.

		kb_read_gather:		(RO) kBytes read to fill write packets.

		reset:			(WO) Write any value to it to reset
					pktcdvd device statistic values, like
					bytes read/written.


What:		/sys/class/pktcdvd/pktcdvd[0-7]/write_queue/size
What:		/sys/class/pktcdvd/pktcdvd[0-7]/write_queue/congestion_off
What:		/sys/class/pktcdvd/pktcdvd[0-7]/write_queue/congestion_on
Date:		Oct. 2006
KernelVersion:	2.6.20
Contact:	Thomas Maier <balagi@justmail.de>
Description:
		==============	================================================
		size		(RO) Contains the size of the bio write queue.

		congestion_off	(RW) If bio write queue size is below this mark,
				accept new bio requests from the block layer.

		congestion_on	(RW) If bio write queue size is higher as this
				mark, do no longer accept bio write requests
				from the block layer and wait till the pktcdvd
				device has processed enough bio's so that bio
				write queue size is below congestion off mark.
				A value of <= 0 disables congestion control.
		==============	================================================


Example:
--------
To use the pktcdvd sysfs interface directly, you can do::

    # create a new pktcdvd device mapped to /dev/hdc
    echo "22:0" >/sys/class/pktcdvd/add
    cat /sys/class/pktcdvd/device_map
    # assuming device pktcdvd0 was created, look at stat's
    cat /sys/class/pktcdvd/pktcdvd0/stat/kb_written
    # print the device id of the mapped block device
    fgrep pktcdvd0 /sys/class/pktcdvd/device_map
    # remove device, using pktcdvd0 device id   253:0
    echo "253:0" >/sys/class/pktcdvd/remove
+6 −6
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@ Therefore, we also introduce *blk-crypto-fallback*, which is an implementation
of inline encryption using the kernel crypto API.  blk-crypto-fallback is built
into the block layer, so it works on any block device without any special setup.
Essentially, when a bio with an encryption context is submitted to a
request_queue that doesn't support that encryption context, the block layer will
block_device that doesn't support that encryption context, the block layer will
handle en/decryption of the bio using blk-crypto-fallback.

For encryption, the data cannot be encrypted in-place, as callers usually rely
@@ -187,7 +187,7 @@ API presented to users of the block layer

``blk_crypto_config_supported()`` allows users to check ahead of time whether
inline encryption with particular crypto settings will work on a particular
request_queue -- either via hardware or via blk-crypto-fallback.  This function
block_device -- either via hardware or via blk-crypto-fallback.  This function
takes in a ``struct blk_crypto_config`` which is like blk_crypto_key, but omits
the actual bytes of the key and instead just contains the algorithm, data unit
size, etc.  This function can be useful if blk-crypto-fallback is disabled.
@@ -195,7 +195,7 @@ size, etc. This function can be useful if blk-crypto-fallback is disabled.
``blk_crypto_init_key()`` allows users to initialize a blk_crypto_key.

Users must call ``blk_crypto_start_using_key()`` before actually starting to use
a blk_crypto_key on a request_queue (even if ``blk_crypto_config_supported()``
a blk_crypto_key on a block_device (even if ``blk_crypto_config_supported()``
was called earlier).  This is needed to initialize blk-crypto-fallback if it
will be needed.  This must not be called from the data path, as this may have to
allocate resources, which may deadlock in that case.
@@ -207,7 +207,7 @@ for en/decryption. Users don't need to worry about freeing the bio_crypt_ctx
later, as that happens automatically when the bio is freed or reset.

Finally, when done using inline encryption with a blk_crypto_key on a
request_queue, users must call ``blk_crypto_evict_key()``.  This ensures that
block_device, users must call ``blk_crypto_evict_key()``.  This ensures that
the key is evicted from all keyslots it may be programmed into and unlinked from
any kernel data structures it may be linked into.

@@ -221,9 +221,9 @@ as follows:
5. ``blk_crypto_evict_key()`` (after all I/O has completed)
6. Zeroize the blk_crypto_key (this has no dedicated function)

If a blk_crypto_key is being used on multiple request_queues, then
If a blk_crypto_key is being used on multiple block_devices, then
``blk_crypto_config_supported()`` (if used), ``blk_crypto_start_using_key()``,
and ``blk_crypto_evict_key()`` must be called on each request_queue.
and ``blk_crypto_evict_key()`` must be called on each block_device.

API presented to device drivers
===============================
+0 −7
Original line number Diff line number Diff line
@@ -16430,13 +16430,6 @@ S: Supported
F:	Documentation/devicetree/bindings/input/pine64,pinephone-keyboard.yaml
F:	drivers/input/keyboard/pinephone-keyboard.c
PKTCDVD DRIVER
M:	linux-block@vger.kernel.org
S:	Orphan
F:	drivers/block/pktcdvd.c
F:	include/linux/pktcdvd.h
F:	include/uapi/linux/pktcdvd.h
PLANTOWER PMS7003 AIR POLLUTION SENSOR DRIVER
M:	Tomasz Duszynski <tduszyns@gmail.com>
S:	Maintained
Loading