mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
USB: trancevibrator: convert to use dev_groups
USB drivers now support the ability for the driver core to handle the creation and removal of device-specific sysfs files in a race-free manner. Take advantage of that by converting the driver to use this by moving the sysfs attributes into a group and assigning the dev_groups pointer to it. Cc: Ding Xiang <dingxiang@cmss.chinamobile.com> Link: https://lore.kernel.org/r/20190806144502.17792-11-gregkh@linuxfoundation.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c5501d23e3
commit
f9bbcbef0c
@ -71,9 +71,14 @@ static ssize_t speed_store(struct device *dev, struct device_attribute *attr,
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
static DEVICE_ATTR_RW(speed);
|
||||
|
||||
static struct attribute *tv_attrs[] = {
|
||||
&dev_attr_speed.attr,
|
||||
NULL,
|
||||
};
|
||||
ATTRIBUTE_GROUPS(tv);
|
||||
|
||||
static int tv_probe(struct usb_interface *interface,
|
||||
const struct usb_device_id *id)
|
||||
{
|
||||
@ -89,15 +94,9 @@ static int tv_probe(struct usb_interface *interface,
|
||||
|
||||
dev->udev = usb_get_dev(udev);
|
||||
usb_set_intfdata(interface, dev);
|
||||
retval = device_create_file(&interface->dev, &dev_attr_speed);
|
||||
if (retval)
|
||||
goto error_create_file;
|
||||
|
||||
return 0;
|
||||
|
||||
error_create_file:
|
||||
usb_put_dev(udev);
|
||||
usb_set_intfdata(interface, NULL);
|
||||
error:
|
||||
kfree(dev);
|
||||
return retval;
|
||||
@ -108,7 +107,6 @@ static void tv_disconnect(struct usb_interface *interface)
|
||||
struct trancevibrator *dev;
|
||||
|
||||
dev = usb_get_intfdata (interface);
|
||||
device_remove_file(&interface->dev, &dev_attr_speed);
|
||||
usb_set_intfdata(interface, NULL);
|
||||
usb_put_dev(dev->udev);
|
||||
kfree(dev);
|
||||
@ -120,6 +118,7 @@ static struct usb_driver tv_driver = {
|
||||
.probe = tv_probe,
|
||||
.disconnect = tv_disconnect,
|
||||
.id_table = id_table,
|
||||
.dev_groups = tv_groups,
|
||||
};
|
||||
|
||||
module_usb_driver(tv_driver);
|
||||
|
Loading…
Reference in New Issue
Block a user