[Accel-config] Re: [PATCH v1 01/11] accel-config: Add mdev path to device context
Thomas, Ramesh <ramesh.thomas at intel.com>
| Newsgroups | dev.linux.lists.accel-config |
|---|---|
| Message-ID | <BYAPR11MB25359E5C482BAB885993C19FEDF10@BYAPR11MB2535.namprd11.prod.outlook.com> |
On Fri, Dec 04, 2020 at 03:36:29PM, Dave Jiang wrote:
>
>
> > -----Original Message-----
> > From: ramesh.thomas(a)intel.com <ramesh.thomas(a)intel.com>
> > Sent: Wednesday, December 2, 2020 12:31 PM
> > To: accel-config(a)lists.01.org
> > Cc: Thomas, Ramesh <ramesh.thomas(a)intel.com>; Luck, Tony
> > <tony.luck(a)intel.com>; Jiang, Dave <dave.jiang(a)intel.com>
> > Subject: [PATCH v1 01/11] accel-config: Add mdev path to device context
> >
> > From: Ramesh Thomas <ramesh.thomas(a)intel.com>
> >
> > /sys/class/mdev_bus/<bdf> is used often to access mdevs associated with
> > the device. Generate and store in device so it need not be constructed
> > everytime.
> >
> > Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
>
> Reviewed-by: Dave Jiang <dave.jiang(a)intel.com>
>
> Does private.h have a spacing issue? The diff looks rather odd.
Yes, it does. Maybe I will add a patch to clean it up.
>
>
> > ---
> > accfg/lib/libaccfg.c | 17 +++++++++++++++++ accfg/lib/private.h | 1 +
> > 2 files changed, 18 insertions(+)
> >
> > diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c index cd9da42..9b5615a
> > 100644
> > --- a/accfg/lib/libaccfg.c
> > +++ b/accfg/lib/libaccfg.c
> > @@ -194,6 +194,7 @@ static void free_device(struct accfg_device *device,
> > struct list_head *head)
> > list_del_from(head, &device->list);
> > free(device->device_path);
> > free(device->device_buf);
> > +free(device->mdev_path);
> > free(device);
> > }
> >
> > @@ -413,6 +414,7 @@ static void *add_device(void *parent, int id, const
> > char *ctl_base, char *dev_pr
> > char *path;
> > int dfd;
> > int rc;
> > +char *p;
> >
> > path = calloc(1, strlen(ctl_base) + MAX_PARAM_LEN);
> > if (!path) {
> > @@ -470,6 +472,20 @@ static void *add_device(void *parent, int id, const
> > char *ctl_base, char *dev_pr
> > goto err_dev_path;
> > }
> >
> > +device->mdev_path = strdup(device->device_path);
> > +if (!device->mdev_path) {
> > +err(ctx, "strdup of device_path failed\n");
> > +goto err_dev_path;
> > +}
> > +
> > +if (asprintf(&p, "%s/%s", MDEV_BUS,
> > +basename(dirname(device->mdev_path))) < 0) {
> > +err(ctx, "device mdev_path allocation failed\n");
> > +goto err_dev_path;
> > +}
> > +free(device->mdev_path);
> > +device->mdev_path = p;
> > +
> > device->device_buf = calloc(1, strlen(device->device_path) +
> > MAX_PARAM_LEN);
> > if (!device->device_buf) {
> > @@ -490,6 +506,7 @@ static void *add_device(void *parent, int id, const
> > char *ctl_base, char *dev_pr
> > err_dev_path:
> > err_read:
> > free(device->device_buf);
> > +free(device->mdev_path);
> > free(device);
> > err_device:
> > free(path);
> > diff --git a/accfg/lib/private.h b/accfg/lib/private.h index f38ff23..365d484
> > 100644
> > --- a/accfg/lib/private.h
> > +++ b/accfg/lib/private.h
> > @@ -30,6 +30,7 @@ struct accfg_device {
> > struct list_node list;
> > int group_init;
> > char *device_path;
> > +char *mdev_path;
> > char *device_buf;
> > char *device_type_str;
> > enum accfg_device_type type;
> > --
> > 2.26.2
>