Commit 09102704 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull virtio updates from Michael Tsirkin:

 - virtio-mem: paravirtualized memory hotplug

 - support doorbell mapping for vdpa

 - config interrupt support in ifc

 - fixes all over the place

* tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (40 commits)
  vhost/test: fix up after API change
  virtio_mem: convert device block size into 64bit
  virtio-mem: drop unnecessary initialization
  ifcvf: implement config interrupt in IFCVF
  vhost: replace -1 with VHOST_FILE_UNBIND in ioctls
  vhost_vdpa: Support config interrupt in vdpa
  ifcvf: ignore continuous setting same status value
  virtio-mem: Don't rely on implicit compiler padding for requests
  virtio-mem: Try to unplug the complete online memory block first
  virtio-mem: Use -ETXTBSY as error code if the device is busy
  virtio-mem: Unplug subblocks right-to-left
  virtio-mem: Drop manual check for already present memory
  virtio-mem: Add parent resource for all added "System RAM"
  virtio-mem: Better retry handling
  virtio-mem: Offline and remove completely unplugged memory blocks
  mm/memory_hotplug: Introduce offline_and_remove_memory()
  virtio-mem: Allow to offline partially unplugged memory blocks
  mm: Allow to offline unmovable PageOffline() pages via MEM_GOING_OFFLINE
  virtio-mem: Paravirtualized memory hotunplug part 2
  virtio-mem: Paravirtualized memory hotunplug part 1
  ...
parents 84fc461d 044e4b09
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -18114,9 +18114,18 @@ F: drivers/virtio/
F:	include/linux/vdpa.h
F:	include/linux/virtio*.h
F:	include/uapi/linux/virtio_*.h
F:	mm/balloon_compaction.c
F:	tools/virtio/
VIRTIO BALLOON
M:	"Michael S. Tsirkin" <mst@redhat.com>
M:	David Hildenbrand <david@redhat.com>
L:	virtualization@lists.linux-foundation.org
S:	Maintained
F:	drivers/virtio/virtio_balloon.c
F:	include/uapi/linux/virtio_balloon.h
F:	include/linux/balloon_compaction.h
F:	mm/balloon_compaction.c
VIRTIO CRYPTO DRIVER
M:	Gonglei <arei.gonglei@huawei.com>
L:	virtualization@lists.linux-foundation.org
@@ -18182,6 +18191,13 @@ S: Maintained
F:	drivers/iommu/virtio-iommu.c
F:	include/uapi/linux/virtio_iommu.h
VIRTIO MEM DRIVER
M:	David Hildenbrand <david@redhat.com>
L:	virtualization@lists.linux-foundation.org
S:	Maintained
F:	drivers/virtio/virtio_mem.c
F:	include/uapi/linux/virtio_mem.h
VIRTUAL BOX GUEST DEVICE DRIVER
M:	Hans de Goede <hdegoede@redhat.com>
M:	Arnd Bergmann <arnd@arndb.de>
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ int pxm_to_node(int pxm)
		return NUMA_NO_NODE;
	return pxm_to_node_map[pxm];
}
EXPORT_SYMBOL(pxm_to_node);

int node_to_pxm(int node)
{
+14 −7
Original line number Diff line number Diff line
@@ -350,13 +350,18 @@ __virtio_crypto_skcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req,
	int err;
	unsigned long flags;
	struct scatterlist outhdr, iv_sg, status_sg, **sgs;
	int i;
	u64 dst_len;
	unsigned int num_out = 0, num_in = 0;
	int sg_total;
	uint8_t *iv;
	struct scatterlist *sg;

	src_nents = sg_nents_for_len(req->src, req->cryptlen);
	if (src_nents < 0) {
		pr_err("Invalid number of src SG.\n");
		return src_nents;
	}

	dst_nents = sg_nents(req->dst);

	pr_debug("virtio_crypto: Number of sgs (src_nents: %d, dst_nents: %d)\n",
@@ -402,6 +407,7 @@ __virtio_crypto_skcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req,
		goto free;
	}

	dst_len = min_t(unsigned int, req->cryptlen, dst_len);
	pr_debug("virtio_crypto: src_len: %u, dst_len: %llu\n",
			req->cryptlen, dst_len);

@@ -442,12 +448,12 @@ __virtio_crypto_skcipher_do_req(struct virtio_crypto_sym_request *vc_sym_req,
	vc_sym_req->iv = iv;

	/* Source data */
	for (i = 0; i < src_nents; i++)
		sgs[num_out++] = &req->src[i];
	for (sg = req->src; src_nents; sg = sg_next(sg), src_nents--)
		sgs[num_out++] = sg;

	/* Destination data */
	for (i = 0; i < dst_nents; i++)
		sgs[num_out + num_in++] = &req->dst[i];
	for (sg = req->dst; sg; sg = sg_next(sg))
		sgs[num_out + num_in++] = sg;

	/* Status */
	sg_init_one(&status_sg, &vc_req->status, sizeof(vc_req->status));
@@ -577,10 +583,11 @@ static void virtio_crypto_skcipher_finalize_req(
		scatterwalk_map_and_copy(req->iv, req->dst,
					 req->cryptlen - AES_BLOCK_SIZE,
					 AES_BLOCK_SIZE, 0);
	crypto_finalize_skcipher_request(vc_sym_req->base.dataq->engine,
					   req, err);
	kzfree(vc_sym_req->iv);
	virtcrypto_clear_request(&vc_sym_req->base);

	crypto_finalize_skcipher_request(vc_sym_req->base.dataq->engine,
					   req, err);
}

static struct virtio_crypto_algo virtio_crypto_algs[] = { {
+1 −1
Original line number Diff line number Diff line
@@ -116,7 +116,7 @@ config MIC_COSM

config VOP
	tristate "VOP Driver"
	depends on VOP_BUS && VHOST_DPN
	depends on VOP_BUS
	select VHOST_RING
	select VIRTIO
	help
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ config CAIF_HSI

config CAIF_VIRTIO
	tristate "CAIF virtio transport driver"
	depends on CAIF && HAS_DMA && VHOST_DPN
	depends on CAIF && HAS_DMA
	select VHOST_RING
	select VIRTIO
	select GENERIC_ALLOCATOR
Loading