diff options
Diffstat (limited to 'drivers/vhost/net.c')
| -rw-r--r-- | drivers/vhost/net.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 7f886d3dba7d..440d959b6e24 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -240,7 +240,7 @@ vhost_net_ubuf_alloc(struct vhost_virtqueue *vq, bool zcopy) /* No zero copy backend? Nothing to count. */ if (!zcopy) return NULL; - ubufs = kmalloc(sizeof(*ubufs), GFP_KERNEL); + ubufs = kmalloc_obj(*ubufs, GFP_KERNEL); if (!ubufs) return ERR_PTR(-ENOMEM); atomic_set(&ubufs->refcount, 1); @@ -293,9 +293,8 @@ static int vhost_net_set_ubuf_info(struct vhost_net *n) if (!zcopy) continue; n->vqs[i].ubuf_info = - kmalloc_array(UIO_MAXIOV, - sizeof(*n->vqs[i].ubuf_info), - GFP_KERNEL); + kmalloc_objs(*n->vqs[i].ubuf_info, UIO_MAXIOV, + GFP_KERNEL); if (!n->vqs[i].ubuf_info) goto err; } @@ -1328,10 +1327,10 @@ static int vhost_net_open(struct inode *inode, struct file *f) struct xdp_buff *xdp; int i; - n = kvmalloc(sizeof *n, GFP_KERNEL | __GFP_RETRY_MAYFAIL); + n = kvmalloc_obj(*n, GFP_KERNEL | __GFP_RETRY_MAYFAIL); if (!n) return -ENOMEM; - vqs = kmalloc_array(VHOST_NET_VQ_MAX, sizeof(*vqs), GFP_KERNEL); + vqs = kmalloc_objs(*vqs, VHOST_NET_VQ_MAX, GFP_KERNEL); if (!vqs) { kvfree(n); return -ENOMEM; @@ -1346,7 +1345,7 @@ static int vhost_net_open(struct inode *inode, struct file *f) } n->vqs[VHOST_NET_VQ_RX].rxq.queue = queue; - xdp = kmalloc_array(VHOST_NET_BATCH, sizeof(*xdp), GFP_KERNEL); + xdp = kmalloc_objs(*xdp, VHOST_NET_BATCH, GFP_KERNEL); if (!xdp) { kfree(vqs); kvfree(n); |
