On Tue, 15 Dec 2020 01:03:50 -0800 Saeed Mahameed wrote: > +static ssize_t sfnum_show(struct device *dev, struct device_attribute *attr, char *buf) > +{ > + struct auxiliary_device *adev = container_of(dev, struct auxiliary_device, dev); > + struct mlx5_sf_dev *sf_dev = container_of(adev, struct mlx5_sf_dev, adev); > + > + return scnprintf(buf, PAGE_SIZE, "%u\n", sf_dev->sfnum); > +} > +static DEVICE_ATTR_RO(sfnum); > + > +static struct attribute *sf_device_attrs[] = { > + &dev_attr_sfnum.attr, > + NULL, > +}; > + > +static const struct attribute_group sf_attr_group = { > + .attrs = sf_device_attrs, > +}; > + > +static const struct attribute_group *sf_attr_groups[2] = { > + &sf_attr_group, > + NULL > +}; Why the sysfs attribute? Devlink should be able to report device name so there's no need for a tie in from the other end.