RE: [PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix rpmsg_create_channel memory leak
Hi Suman, > -Original Message- > From: Suman Anna > Sent: Thursday, July 26, 2018 12:37 AM > To: Loic PALLARDY ; bjorn.anders...@linaro.org; > o...@wizery.com > Cc: linux-remotep...@vger.kernel.org; linux-kernel@vger.kernel.org; > Arnaud POULIQUEN ; > benjamin.gaign...@linaro.org > Subject: Re: [PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix > rpmsg_create_channel memory leak > > Hi Loic, > > On 07/25/2018 04:08 PM, Loic Pallardy wrote: > > In case of rpmsg_register_device() failure, vch previously > > allocated must be free. > > > > Isn't this already handled through the virtio_rpmsg_release_device() > callback as part of the put_device() in rpmsg_register_device() failure. Yes you're right, put_device() is doing the job. Please forget this patch. Regards, Loic > > regards > Suman > > > fixes: 6eed598a0491 ("rpmsg: Split off generic tail of create_channel()") > > > > Signed-off-by: Loic Pallardy > > --- > > drivers/rpmsg/virtio_rpmsg_bus.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c > b/drivers/rpmsg/virtio_rpmsg_bus.c > > index 664f957..10f927e 100644 > > --- a/drivers/rpmsg/virtio_rpmsg_bus.c > > +++ b/drivers/rpmsg/virtio_rpmsg_bus.c > > @@ -431,8 +431,10 @@ static struct rpmsg_device > *rpmsg_create_channel(struct virtproc_info *vrp, > > rpdev->dev.parent = >vdev->dev; > > rpdev->dev.release = virtio_rpmsg_release_device; > > ret = rpmsg_register_device(rpdev); > > - if (ret) > > + if (ret) { > > + kfree(vch); > > return NULL; > > + } > > > > return rpdev; > > } > >
RE: [PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix rpmsg_create_channel memory leak
Hi Suman, > -Original Message- > From: Suman Anna > Sent: Thursday, July 26, 2018 12:37 AM > To: Loic PALLARDY ; bjorn.anders...@linaro.org; > o...@wizery.com > Cc: linux-remotep...@vger.kernel.org; linux-kernel@vger.kernel.org; > Arnaud POULIQUEN ; > benjamin.gaign...@linaro.org > Subject: Re: [PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix > rpmsg_create_channel memory leak > > Hi Loic, > > On 07/25/2018 04:08 PM, Loic Pallardy wrote: > > In case of rpmsg_register_device() failure, vch previously > > allocated must be free. > > > > Isn't this already handled through the virtio_rpmsg_release_device() > callback as part of the put_device() in rpmsg_register_device() failure. Yes you're right, put_device() is doing the job. Please forget this patch. Regards, Loic > > regards > Suman > > > fixes: 6eed598a0491 ("rpmsg: Split off generic tail of create_channel()") > > > > Signed-off-by: Loic Pallardy > > --- > > drivers/rpmsg/virtio_rpmsg_bus.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c > b/drivers/rpmsg/virtio_rpmsg_bus.c > > index 664f957..10f927e 100644 > > --- a/drivers/rpmsg/virtio_rpmsg_bus.c > > +++ b/drivers/rpmsg/virtio_rpmsg_bus.c > > @@ -431,8 +431,10 @@ static struct rpmsg_device > *rpmsg_create_channel(struct virtproc_info *vrp, > > rpdev->dev.parent = >vdev->dev; > > rpdev->dev.release = virtio_rpmsg_release_device; > > ret = rpmsg_register_device(rpdev); > > - if (ret) > > + if (ret) { > > + kfree(vch); > > return NULL; > > + } > > > > return rpdev; > > } > >
Re: [PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix rpmsg_create_channel memory leak
Hi Loic, On 07/25/2018 04:08 PM, Loic Pallardy wrote: > In case of rpmsg_register_device() failure, vch previously > allocated must be free. > Isn't this already handled through the virtio_rpmsg_release_device() callback as part of the put_device() in rpmsg_register_device() failure. regards Suman > fixes: 6eed598a0491 ("rpmsg: Split off generic tail of create_channel()") > > Signed-off-by: Loic Pallardy > --- > drivers/rpmsg/virtio_rpmsg_bus.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c > b/drivers/rpmsg/virtio_rpmsg_bus.c > index 664f957..10f927e 100644 > --- a/drivers/rpmsg/virtio_rpmsg_bus.c > +++ b/drivers/rpmsg/virtio_rpmsg_bus.c > @@ -431,8 +431,10 @@ static struct rpmsg_device *rpmsg_create_channel(struct > virtproc_info *vrp, > rpdev->dev.parent = >vdev->dev; > rpdev->dev.release = virtio_rpmsg_release_device; > ret = rpmsg_register_device(rpdev); > - if (ret) > + if (ret) { > + kfree(vch); > return NULL; > + } > > return rpdev; > } >
Re: [PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix rpmsg_create_channel memory leak
Hi Loic, On 07/25/2018 04:08 PM, Loic Pallardy wrote: > In case of rpmsg_register_device() failure, vch previously > allocated must be free. > Isn't this already handled through the virtio_rpmsg_release_device() callback as part of the put_device() in rpmsg_register_device() failure. regards Suman > fixes: 6eed598a0491 ("rpmsg: Split off generic tail of create_channel()") > > Signed-off-by: Loic Pallardy > --- > drivers/rpmsg/virtio_rpmsg_bus.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c > b/drivers/rpmsg/virtio_rpmsg_bus.c > index 664f957..10f927e 100644 > --- a/drivers/rpmsg/virtio_rpmsg_bus.c > +++ b/drivers/rpmsg/virtio_rpmsg_bus.c > @@ -431,8 +431,10 @@ static struct rpmsg_device *rpmsg_create_channel(struct > virtproc_info *vrp, > rpdev->dev.parent = >vdev->dev; > rpdev->dev.release = virtio_rpmsg_release_device; > ret = rpmsg_register_device(rpdev); > - if (ret) > + if (ret) { > + kfree(vch); > return NULL; > + } > > return rpdev; > } >
[PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix rpmsg_create_channel memory leak
In case of rpmsg_register_device() failure, vch previously allocated must be free. fixes: 6eed598a0491 ("rpmsg: Split off generic tail of create_channel()") Signed-off-by: Loic Pallardy --- drivers/rpmsg/virtio_rpmsg_bus.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c index 664f957..10f927e 100644 --- a/drivers/rpmsg/virtio_rpmsg_bus.c +++ b/drivers/rpmsg/virtio_rpmsg_bus.c @@ -431,8 +431,10 @@ static struct rpmsg_device *rpmsg_create_channel(struct virtproc_info *vrp, rpdev->dev.parent = >vdev->dev; rpdev->dev.release = virtio_rpmsg_release_device; ret = rpmsg_register_device(rpdev); - if (ret) + if (ret) { + kfree(vch); return NULL; + } return rpdev; } -- 1.9.1
[PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix rpmsg_create_channel memory leak
In case of rpmsg_register_device() failure, vch previously allocated must be free. fixes: 6eed598a0491 ("rpmsg: Split off generic tail of create_channel()") Signed-off-by: Loic Pallardy --- drivers/rpmsg/virtio_rpmsg_bus.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c index 664f957..10f927e 100644 --- a/drivers/rpmsg/virtio_rpmsg_bus.c +++ b/drivers/rpmsg/virtio_rpmsg_bus.c @@ -431,8 +431,10 @@ static struct rpmsg_device *rpmsg_create_channel(struct virtproc_info *vrp, rpdev->dev.parent = >vdev->dev; rpdev->dev.release = virtio_rpmsg_release_device; ret = rpmsg_register_device(rpdev); - if (ret) + if (ret) { + kfree(vch); return NULL; + } return rpdev; } -- 1.9.1