From: Jason Wang <jasowang@redhat.com> To: Mike Christie <michael.christie@oracle.com>, martin.petersen@oracle.com, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, mst@redhat.com, pbonzini@redhat.com, stefanha@redhat.com, virtualization@lists.linux-foundation.org Subject: Re: [PATCH 03/17] vhost net: use goto error handling in open Date: Mon, 26 Oct 2020 03:34:45 +0000 Message-ID: <8a3779da-74e6-7eff-28c4-5bfd2c981728@redhat.com> (raw) In-Reply-To: <1603326903-27052-4-git-send-email-michael.christie@oracle.com> On 2020/10/22 上午8:34, Mike Christie wrote: > In the next patches vhost_dev_init will be able to fail. This patch has > vhost_net_open use goto error handling like is done in the other vhost > code to make handling vhost_dev_init failures easier to handle and > extend in the future. > > Signed-off-by: Mike Christie <michael.christie@oracle.com> Acked-by: Jason Wang <jasowang@redhat.com> > --- > drivers/vhost/net.c | 29 ++++++++++++++--------------- > 1 file changed, 14 insertions(+), 15 deletions(-) > > diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c > index 531a00d..831d824 100644 > --- a/drivers/vhost/net.c > +++ b/drivers/vhost/net.c > @@ -1286,27 +1286,18 @@ static int vhost_net_open(struct inode *inode, struct file *f) > if (!n) > return -ENOMEM; > vqs = kmalloc_array(VHOST_NET_VQ_MAX, sizeof(*vqs), GFP_KERNEL); > - if (!vqs) { > - kvfree(n); > - return -ENOMEM; > - } > + if (!vqs) > + goto err_vqs; > > queue = kmalloc_array(VHOST_NET_BATCH, sizeof(void *), > GFP_KERNEL); > - if (!queue) { > - kfree(vqs); > - kvfree(n); > - return -ENOMEM; > - } > + if (!queue) > + goto err_queue; > n->vqs[VHOST_NET_VQ_RX].rxq.queue = queue; > > xdp = kmalloc_array(VHOST_NET_BATCH, sizeof(*xdp), GFP_KERNEL); > - if (!xdp) { > - kfree(vqs); > - kvfree(n); > - kfree(queue); > - return -ENOMEM; > - } > + if (!xdp) > + goto err_xdp; > n->vqs[VHOST_NET_VQ_TX].xdp = xdp; > > dev = &n->dev; > @@ -1338,6 +1329,14 @@ static int vhost_net_open(struct inode *inode, struct file *f) > n->refcnt_bias = 0; > > return 0; > + > +err_xdp: > + kfree(queue); > +err_queue: > + kfree(vqs); > +err_vqs: > + kvfree(n); > + return -ENOMEM; > } > > static struct socket *vhost_net_stop_vq(struct vhost_net *n,
next prev parent reply index Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-22 0:34 [PATCH 00/17 V3] vhost: fix scsi cmd handling and cgroup support Mike Christie 2020-10-22 0:34 ` [PATCH 01/17] vhost scsi: add lun parser helper Mike Christie 2020-10-26 3:33 ` Jason Wang 2020-10-22 0:34 ` [PATCH 02/17] vhost: remove work arg from vhost_work_flush Mike Christie 2020-10-22 0:51 ` Chaitanya Kulkarni 2020-10-22 0:34 ` [PATCH 03/17] vhost net: use goto error handling in open Mike Christie 2020-10-22 0:45 ` Chaitanya Kulkarni 2020-10-26 3:34 ` Jason Wang [this message] 2020-10-22 0:34 ` [PATCH 04/17] vhost: prep vhost_dev_init users to handle failures Mike Christie 2020-10-22 5:22 ` kernel test robot 2020-10-23 16:15 ` Mike Christie 2020-11-02 5:57 ` Jason Wang 2020-11-03 10:04 ` Dan Carpenter 2020-10-22 0:34 ` [PATCH 05/17] vhost: move vq iovec allocation to dev init time Mike Christie 2020-10-22 0:34 ` [PATCH 06/17] vhost: support delayed vq creation Mike Christie 2020-10-22 0:34 ` [PATCH 07/17] vhost scsi: support delayed IO " Mike Christie 2020-10-26 3:51 ` Jason Wang 2020-10-27 5:47 ` Mike Christie 2020-10-28 1:55 ` Jason Wang 2020-10-30 8:47 ` Michael S. Tsirkin 2020-10-30 16:30 ` Mike Christie 2020-10-30 17:26 ` Mike Christie 2020-11-01 22:06 ` Mike Christie 2020-11-02 6:36 ` Jason Wang 2020-11-02 6:49 ` Jason Wang 2020-11-02 16:19 ` Mike Christie 2020-10-22 0:34 ` [PATCH 08/17] vhost scsi: alloc cmds per vq instead of session Mike Christie 2020-10-22 0:34 ` [PATCH 09/17] vhost scsi: fix cmd completion race Mike Christie 2020-10-27 13:07 ` Maurizio Lombardi 2020-10-30 8:51 ` Michael S. Tsirkin 2020-10-30 16:04 ` Paolo Bonzini 2020-10-22 0:34 ` [PATCH 10/17] vhost scsi: Add support for LUN resets Mike Christie 2020-10-22 0:34 ` [PATCH 11/17] vhost scsi: remove extra flushes Mike Christie 2020-10-22 0:34 ` [PATCH 12/17] vhost poll: fix coding style Mike Christie 2020-10-22 0:39 ` Chaitanya Kulkarni 2020-10-22 0:34 ` [PATCH 13/17] vhost: support multiple worker threads Mike Christie 2020-10-22 0:35 ` [PATCH 14/17] vhost: poll support support multiple workers Mike Christie 2020-10-22 0:35 ` [PATCH 15/17] host: support delayed vq creation Mike Christie 2020-10-22 0:50 ` Mike Christie 2020-10-22 0:35 ` [PATCH 16/17] vhost scsi: multiple worker support Mike Christie 2020-10-22 0:35 ` [PATCH 17/17] vhost scsi: drop submission workqueue Mike Christie 2020-10-29 21:47 ` [PATCH 00/17 V3] vhost: fix scsi cmd handling and cgroup support Michael S. Tsirkin 2020-10-29 22:19 ` Mike Christie
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8a3779da-74e6-7eff-28c4-5bfd2c981728@redhat.com \ --to=jasowang@redhat.com \ --cc=linux-scsi@vger.kernel.org \ --cc=martin.petersen@oracle.com \ --cc=michael.christie@oracle.com \ --cc=mst@redhat.com \ --cc=pbonzini@redhat.com \ --cc=stefanha@redhat.com \ --cc=target-devel@vger.kernel.org \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Target-devel archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/target-devel/0 target-devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 target-devel target-devel/ https://lore.kernel.org/target-devel \ target-devel@vger.kernel.org public-inbox-index target-devel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.target-devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git