mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
virtio, vhost: features, fixes, cleanups
discard in virtio blk misc fixes and cleanups Signed-off-by: Michael S. Tsirkin <[email protected]> -----BEGIN PGP SIGNATURE----- iQEcBAABAgAGBQJcLSujAAoJECgfDbjSjVRpguUH/jHFcIR0egb9k0nEx2ETxoPw HKjV3zzWW+WKYu7NNXyF4qiIedlQvTLUt1gRNtNa/G0C+AFKKPl+ynBNmBFfM3Lt RCpt0ctAaJDpr8xABC4PRoAU2Vga9Glkt9SobZ7kBDCXcCl6PDYk3zLryG87N5Rf pQJeTOpYtE8OgQaO7w3+7u5YmfGWaCrsxMWuq43ry9mn0J6QaJ6FYrz5+V90uOcT o5NtauCyTzIj+wrsh75qg6KWG8zLFwrskCxX8CmYd+j7ZTDZc5U9eaYJRx3HdqOE //aXqXy17trgy5GGTw9IPKE30JOztEhER9HzQASNVkmjYTq7q8DTMlnVIMSLRF0= =NI+Y -----END PGP SIGNATURE----- Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio/vhost updates from Michael Tsirkin: "Features, fixes, cleanups: - discard in virtio blk - misc fixes and cleanups" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: vhost: correct the related warning message vhost: split structs into a separate header file virtio: remove deprecated VIRTIO_PCI_CONFIG() vhost/vsock: switch to a mutex for vhost_vsock_hash virtio_blk: add discard and write zeroes support
This commit is contained in:
commit
d548e65904
7 changed files with 279 additions and 125 deletions
|
|
@ -884,7 +884,7 @@ vhost_scsi_get_req(struct vhost_virtqueue *vq, struct vhost_scsi_ctx *vc,
|
|||
|
||||
if (unlikely(!copy_from_iter_full(vc->req, vc->req_size,
|
||||
&vc->out_iter))) {
|
||||
vq_err(vq, "Faulted on copy_from_iter\n");
|
||||
vq_err(vq, "Faulted on copy_from_iter_full\n");
|
||||
} else if (unlikely(*vc->lunp != 1)) {
|
||||
/* virtio-scsi spec requires byte 0 of the lun to be 1 */
|
||||
vq_err(vq, "Illegal virtio-scsi lun: %u\n", *vc->lunp);
|
||||
|
|
@ -1436,7 +1436,7 @@ vhost_scsi_set_endpoint(struct vhost_scsi *vs,
|
|||
se_tpg = &tpg->se_tpg;
|
||||
ret = target_depend_item(&se_tpg->tpg_group.cg_item);
|
||||
if (ret) {
|
||||
pr_warn("configfs_depend_item() failed: %d\n", ret);
|
||||
pr_warn("target_depend_item() failed: %d\n", ret);
|
||||
kfree(vs_tpg);
|
||||
mutex_unlock(&tpg->tv_tpg_mutex);
|
||||
goto out;
|
||||
|
|
|
|||
|
|
@ -27,14 +27,14 @@ enum {
|
|||
};
|
||||
|
||||
/* Used to track all the vhost_vsock instances on the system. */
|
||||
static DEFINE_SPINLOCK(vhost_vsock_lock);
|
||||
static DEFINE_MUTEX(vhost_vsock_mutex);
|
||||
static DEFINE_READ_MOSTLY_HASHTABLE(vhost_vsock_hash, 8);
|
||||
|
||||
struct vhost_vsock {
|
||||
struct vhost_dev dev;
|
||||
struct vhost_virtqueue vqs[2];
|
||||
|
||||
/* Link to global vhost_vsock_hash, writes use vhost_vsock_lock */
|
||||
/* Link to global vhost_vsock_hash, writes use vhost_vsock_mutex */
|
||||
struct hlist_node hash;
|
||||
|
||||
struct vhost_work send_pkt_work;
|
||||
|
|
@ -51,7 +51,7 @@ static u32 vhost_transport_get_local_cid(void)
|
|||
return VHOST_VSOCK_DEFAULT_HOST_CID;
|
||||
}
|
||||
|
||||
/* Callers that dereference the return value must hold vhost_vsock_lock or the
|
||||
/* Callers that dereference the return value must hold vhost_vsock_mutex or the
|
||||
* RCU read lock.
|
||||
*/
|
||||
static struct vhost_vsock *vhost_vsock_get(u32 guest_cid)
|
||||
|
|
@ -584,10 +584,10 @@ static int vhost_vsock_dev_release(struct inode *inode, struct file *file)
|
|||
{
|
||||
struct vhost_vsock *vsock = file->private_data;
|
||||
|
||||
spin_lock_bh(&vhost_vsock_lock);
|
||||
mutex_lock(&vhost_vsock_mutex);
|
||||
if (vsock->guest_cid)
|
||||
hash_del_rcu(&vsock->hash);
|
||||
spin_unlock_bh(&vhost_vsock_lock);
|
||||
mutex_unlock(&vhost_vsock_mutex);
|
||||
|
||||
/* Wait for other CPUs to finish using vsock */
|
||||
synchronize_rcu();
|
||||
|
|
@ -631,10 +631,10 @@ static int vhost_vsock_set_cid(struct vhost_vsock *vsock, u64 guest_cid)
|
|||
return -EINVAL;
|
||||
|
||||
/* Refuse if CID is already in use */
|
||||
spin_lock_bh(&vhost_vsock_lock);
|
||||
mutex_lock(&vhost_vsock_mutex);
|
||||
other = vhost_vsock_get(guest_cid);
|
||||
if (other && other != vsock) {
|
||||
spin_unlock_bh(&vhost_vsock_lock);
|
||||
mutex_unlock(&vhost_vsock_mutex);
|
||||
return -EADDRINUSE;
|
||||
}
|
||||
|
||||
|
|
@ -643,7 +643,7 @@ static int vhost_vsock_set_cid(struct vhost_vsock *vsock, u64 guest_cid)
|
|||
|
||||
vsock->guest_cid = guest_cid;
|
||||
hash_add_rcu(vhost_vsock_hash, &vsock->hash, guest_cid);
|
||||
spin_unlock_bh(&vhost_vsock_lock);
|
||||
mutex_unlock(&vhost_vsock_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue