RE: [PATCH] PCI: vmd: Use devm_kasprintf instead of simple kasprintf

From: Mohan, Subramanian
Date: Fri Jun 10 2022 - 02:57:36 EST


Hi Bjorn,


> -----Original Message-----
> From: Mohan, Subramanian
> Sent: Wednesday, June 1, 2022 4:45 PM
> To: Bjorn Helgaas <helgaas@xxxxxxxxxx>
> Cc: nirmal.patel@xxxxxxxxxxxxxxx; jonathan.derrick@xxxxxxxxx;
> lorenzo.pieralisi@xxxxxxx; robh@xxxxxxxxxx; kw@xxxxxxxxx;
> bhelgaas@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-
> pci@xxxxxxxxxxxxxxx; Sangannavar, Mallikarjunappa
> <mallikarjunappa.sangannavar@xxxxxxxxx>; Thokala, Srikanth
> <Srikanth.Thokala@xxxxxxxxx>
> Subject: RE: [PATCH] PCI: vmd: Use devm_kasprintf instead of simple kasprintf
>
>
>
> > -----Original Message-----
> > From: Bjorn Helgaas <helgaas@xxxxxxxxxx>
> > Sent: Wednesday, June 1, 2022 12:09 AM
> > To: Mohan, Subramanian <subramanian.mohan@xxxxxxxxx>
> > Cc: nirmal.patel@xxxxxxxxxxxxxxx; jonathan.derrick@xxxxxxxxx;
> > lorenzo.pieralisi@xxxxxxx; robh@xxxxxxxxxx; kw@xxxxxxxxx;
> > bhelgaas@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-
> > pci@xxxxxxxxxxxxxxx; Sangannavar, Mallikarjunappa
> > <mallikarjunappa.sangannavar@xxxxxxxxx>; Thokala, Srikanth
> > <srikanth.thokala@xxxxxxxxx>
> > Subject: Re: [PATCH] PCI: vmd: Use devm_kasprintf instead of simple
> > kasprintf
> >
> > On Tue, May 31, 2022 at 06:56:17PM +0530, subramanian.mohan@xxxxxxxxx
> > wrote:
> > > From: Subramanian Mohan <subramanian.mohan@xxxxxxxxx>
> > >
> > > Use devm_kasprintf instead of simple kasprintf to free the allocated
> > > memory automatically when the device is freed.
> >
> > I guess this is pure simplification, not a bug fix, since we *did*
> > free the buffer in the error path and in vmd_remove(), right?
> >
>
> Yes this is simplification and not bug fix.

Gentle reminder, kindly let me know any further comments.

>
> Thanks,
> Subbu
>
> > > Suggested-by: Srikanth Thokala <srikanth.thokala@xxxxxxxxx>
> > > Signed-off-by: Subramanian Mohan <subramanian.mohan@xxxxxxxxx>
> > > Acked-by: Nirmal Patel <nirmal.patel@xxxxxxxxxxxxxxx>
> > > ---
> > > drivers/pci/controller/vmd.c | 5 ++---
> > > 1 file changed, 2 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/pci/controller/vmd.c
> > > b/drivers/pci/controller/vmd.c index eb05cceab964..7a72948e001f
> > > 100644
> > > --- a/drivers/pci/controller/vmd.c
> > > +++ b/drivers/pci/controller/vmd.c
> > > @@ -897,7 +897,8 @@ static int vmd_probe(struct pci_dev *dev, const
> > struct pci_device_id *id)
> > > if (vmd->instance < 0)
> > > return vmd->instance;
> > >
> > > - vmd->name = kasprintf(GFP_KERNEL, "vmd%d", vmd->instance);
> > > + vmd->name = devm_kasprintf(&dev->dev, GFP_KERNEL, "vmd%d",
> > > + vmd->instance);
> > > if (!vmd->name) {
> > > err = -ENOMEM;
> > > goto out_release_instance;
> > > @@ -935,7 +936,6 @@ static int vmd_probe(struct pci_dev *dev, const
> > > struct pci_device_id *id)
> > >
> > > out_release_instance:
> > > ida_simple_remove(&vmd_instance_ida, vmd->instance);
> > > - kfree(vmd->name);
> > > return err;
> > > }
> > >
> > > @@ -958,7 +958,6 @@ static void vmd_remove(struct pci_dev *dev)
> > > vmd_detach_resources(vmd);
> > > vmd_remove_irq_domain(vmd);
> > > ida_simple_remove(&vmd_instance_ida, vmd->instance);
> > > - kfree(vmd->name);
> > > }
> > >
> > > #ifdef CONFIG_PM_SLEEP
> > > --
> > > 2.17.1
> > >