On Wed, Jun 07, 2023 at 06:58:08PM -0700, Roy Luo wrote: > > > @@ -160,6 +160,16 @@ static ssize_t connect_type_show(struct device *dev, > > > } > > > static DEVICE_ATTR_RO(connect_type); > > > > > > +static ssize_t state_show(struct device *dev, > > > + struct device_attribute *attr, char *buf) > > > +{ > > > + struct usb_port *port_dev = to_usb_port(dev); > > > + enum usb_device_state state = READ_ONCE(port_dev->state); > > > + > > > + return sprintf(buf, "%s\n", usb_state_string(state)); > > > > I thought checkpatch would warn you that you should be using > > sysfs_emit() here, wonder why it didn't. > > > > thanks, > > > > greg k-h > > I was using sprintf() instead of sysfs_emit() because I randomly referred > to one of the nearby attributes. Looks like there are still many attributes in > port.c that uses sprintf(), any reason why we didn't replace them? > If not, I'm happy to do a clean-up so that others don't make the same mistake > as I did :D Doing whole-scale replacements across the kernel for stuff like this isn't needed, just for new stuff, using the new apis is a good idea. thanks, greg k-h