On Thu, 24 May 2018 11:10:21 +0100 Jean-Philippe Brucker <jean-philippe.bruc...@arm.com> wrote:
> Currently when virtio_find_single_vq fails, we go through del_vqs which > throws a warning (Trying to free already-free IRQ). Skip del_vqs if vq > allocation failed. > > Signed-off-by: Jean-Philippe Brucker <jean-philippe.bruc...@arm.com> > --- Reviewed-by: Greg Kurz <gr...@kaod.org> > net/9p/trans_virtio.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c > index 4d0372263e5d..1c87eee522b7 100644 > --- a/net/9p/trans_virtio.c > +++ b/net/9p/trans_virtio.c > @@ -562,7 +562,7 @@ static int p9_virtio_probe(struct virtio_device *vdev) > chan->vq = virtio_find_single_vq(vdev, req_done, "requests"); > if (IS_ERR(chan->vq)) { > err = PTR_ERR(chan->vq); > - goto out_free_vq; > + goto out_free_chan; > } > chan->vq->vdev->priv = chan; > spin_lock_init(&chan->lock); > @@ -615,6 +615,7 @@ static int p9_virtio_probe(struct virtio_device *vdev) > kfree(tag); > out_free_vq: > vdev->config->del_vqs(vdev); > +out_free_chan: > kfree(chan); > fail: > return err;