Commit 3bf6a9e3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull virtio updates from Michael Tsirkin:
 "virtio,vdpa,qemu_fw_cfg: features, cleanups, and fixes.

   - partial support for < MAX_ORDER - 1 granularity for virtio-mem

   - driver_override for vdpa

   - sysfs ABI documentation for vdpa

   - multiqueue config support for mlx5 vdpa

   - and misc fixes, cleanups"

* tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (42 commits)
  vdpa/mlx5: Fix tracking of current number of VQs
  vdpa/mlx5: Fix is_index_valid() to refer to features
  vdpa: Protect vdpa reset with cf_mutex
  vdpa: Avoid taking cf_mutex lock on get status
  vdpa/vdpa_sim_net: Report max device capabilities
  vdpa: Use BIT_ULL for bit operations
  vdpa/vdpa_sim: Configure max supported virtqueues
  vdpa/mlx5: Report max device capabilities
  vdpa: Support reporting max device capabilities
  vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps()
  vdpa: Add support for returning device configuration information
  vdpa/mlx5: Support configuring max data virtqueue
  vdpa/mlx5: Fix config_attr_mask assignment
  vdpa: Allow to configure max data virtqueues
  vdpa: Read device configuration only if FEATURES_OK
  vdpa: Sync calls set/get config/status with cf_mutex
  vdpa/mlx5: Distribute RX virtqueues in RQT object
  vdpa: Provide interface to read driver features
  vdpa: clean up get_config_size ret value handling
  virtio_ring: mark ring unused on error
  ...
parents 46a10fc3 b03fc43e
Loading
Loading
Loading
Loading
+57 −0
Original line number Diff line number Diff line
What:		/sys/bus/vdpa/driver_autoprobe
Date:		March 2020
Contact:	virtualization@lists.linux-foundation.org
Description:
		This file determines whether new devices are immediately bound
		to a driver after the creation. It initially contains 1, which
		means the kernel automatically binds devices to a compatible
		driver immediately after they are created.

		Writing "0" to this file disable this feature, any other string
		enable it.

What:		/sys/bus/vdpa/driver_probe
Date:		March 2020
Contact:	virtualization@lists.linux-foundation.org
Description:
		Writing a device name to this file will cause the kernel binds
		devices to a compatible driver.

		This can be useful when /sys/bus/vdpa/driver_autoprobe is
		disabled.

What:		/sys/bus/vdpa/drivers/.../bind
Date:		March 2020
Contact:	virtualization@lists.linux-foundation.org
Description:
		Writing a device name to this file will cause the driver to
		attempt to bind to the device. This is useful for overriding
		default bindings.

What:		/sys/bus/vdpa/drivers/.../unbind
Date:		March 2020
Contact:	virtualization@lists.linux-foundation.org
Description:
		Writing a device name to this file will cause the driver to
		attempt to unbind from the device. This may be useful when
		overriding default bindings.

What:		/sys/bus/vdpa/devices/.../driver_override
Date:		November 2021
Contact:	virtualization@lists.linux-foundation.org
Description:
		This file allows the driver for a device to be specified.
		When specified, only a driver with a name matching the value
		written to driver_override will have an opportunity to bind to
		the device. The override is specified by writing a string to the
		driver_override file (echo vhost-vdpa > driver_override) and may
		be cleared with an empty string (echo > driver_override).
		This returns the device to standard matching rules binding.
		Writing to driver_override does not automatically unbind the
		device from its current driver or make any attempt to
		automatically load the specified driver. If no driver with a
		matching name is currently loaded in the kernel, the device will
		not bind to any driver. This also allows devices to opt-out of
		driver binding using a driver_override name such as "none".
		Only a single driver may be specified in the override, there is
		no support for parsing delimiters.
+1 −0
Original line number Diff line number Diff line
@@ -20377,6 +20377,7 @@ M: "Michael S. Tsirkin" <mst@redhat.com>
M:	Jason Wang <jasowang@redhat.com>
L:	virtualization@lists.linux-foundation.org
S:	Maintained
F:	Documentation/ABI/testing/sysfs-bus-vdpa
F:	Documentation/devicetree/bindings/virtio/
F:	drivers/block/virtio_blk.c
F:	drivers/crypto/virtio/
+1 −1
Original line number Diff line number Diff line
@@ -616,7 +616,7 @@ static void um_pci_virtio_remove(struct virtio_device *vdev)
	int i;

        /* Stop all virtqueues */
        vdev->config->reset(vdev);
        virtio_reset_device(vdev);
        vdev->config->del_vqs(vdev);

	device_set_wakeup_enable(&vdev->dev, false);
+2 −2
Original line number Diff line number Diff line
@@ -976,7 +976,7 @@ static void virtblk_remove(struct virtio_device *vdev)
	mutex_lock(&vblk->vdev_mutex);

	/* Stop all the virtqueues. */
	vdev->config->reset(vdev);
	virtio_reset_device(vdev);

	/* Virtqueues are stopped, nothing can use vblk->vdev anymore. */
	vblk->vdev = NULL;
@@ -995,7 +995,7 @@ static int virtblk_freeze(struct virtio_device *vdev)
	struct virtio_blk *vblk = vdev->priv;

	/* Ensure we don't receive any more interrupts */
	vdev->config->reset(vdev);
	virtio_reset_device(vdev);

	/* Make sure no work handler is accessing the device. */
	flush_work(&vblk->config_work);
+1 −1
Original line number Diff line number Diff line
@@ -367,7 +367,7 @@ static void virtbt_remove(struct virtio_device *vdev)
	struct hci_dev *hdev = vbt->hdev;

	hci_unregister_dev(hdev);
	vdev->config->reset(vdev);
	virtio_reset_device(vdev);

	hci_free_dev(hdev);
	vbt->hdev = NULL;
Loading