On 05/18/2017 04:08 AM, Yuyang Du wrote: > From: Yuyang Du <yuyang.du@xxxxxxxxx> > > Every VHCI is a platform device, so move the platform_device struct > into the VHCI struct. > > Signed-off-by: Yuyang Du <yuyang.du@xxxxxxxxx> Acked-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx> thanks, -- Shuah > --- > drivers/usb/usbip/vhci.h | 3 ++- > drivers/usb/usbip/vhci_hcd.c | 17 ++++++++--------- > drivers/usb/usbip/vhci_sysfs.c | 6 +++--- > 3 files changed, 13 insertions(+), 13 deletions(-) > > diff --git a/drivers/usb/usbip/vhci.h b/drivers/usb/usbip/vhci.h > index 9959584..62ee537 100644 > --- a/drivers/usb/usbip/vhci.h > +++ b/drivers/usb/usbip/vhci.h > @@ -90,6 +90,8 @@ struct vhci_unlink { > struct vhci { > spinlock_t lock; > > + struct platform_device *pdev; > + > struct vhci_hcd *vhci_hcd_hs; > struct vhci_hcd *vhci_hcd_ss; > }; > @@ -116,7 +118,6 @@ struct vhci_hcd { > }; > > extern int vhci_num_controllers; > -extern struct platform_device **vhci_pdevs; > extern struct vhci *vhcis; > extern struct attribute_group vhci_attr_group; > > diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c > index 624265a..7a04497 100644 > --- a/drivers/usb/usbip/vhci_hcd.c > +++ b/drivers/usb/usbip/vhci_hcd.c > @@ -58,8 +58,7 @@ static const char driver_name[] = "vhci_hcd"; > static const char driver_desc[] = "USB/IP Virtual Host Controller"; > > int vhci_num_controllers = VHCI_NR_HCS; > - > -struct platform_device **vhci_pdevs; > +struct vhci *vhcis; > > static const char * const bit_desc[] = { > "CONNECTION", /*0*/ > @@ -1188,7 +1187,7 @@ static int add_platform_device(int id) > if (IS_ERR(pdev)) > return PTR_ERR(pdev); > > - *(vhci_pdevs + id) = pdev; > + vhcis[id].pdev = pdev; > return 0; > } > > @@ -1198,10 +1197,10 @@ static void del_platform_devices(void) > int i; > > for (i = 0; i < vhci_num_controllers; i++) { > - pdev = *(vhci_pdevs + i); > + pdev = vhcis[i].pdev; > if (pdev != NULL) > platform_device_unregister(pdev); > - *(vhci_pdevs + i) = NULL; > + vhcis[i].pdev = NULL; > } > sysfs_remove_link(&platform_bus.kobj, driver_name); > } > @@ -1216,8 +1215,8 @@ static int __init vhci_hcd_init(void) > if (vhci_num_controllers < 1) > vhci_num_controllers = 1; > > - vhci_pdevs = kcalloc(vhci_num_controllers, sizeof(void *), GFP_KERNEL); > - if (vhci_pdevs == NULL) > + vhcis = kcalloc(vhci_num_controllers, sizeof(struct vhci), GFP_KERNEL); > + if (vhcis == NULL) > return -ENOMEM; > > ret = platform_driver_register(&vhci_driver); > @@ -1237,7 +1236,7 @@ static int __init vhci_hcd_init(void) > del_platform_devices(); > platform_driver_unregister(&vhci_driver); > err_driver_register: > - kfree(vhci_pdevs); > + kfree(vhcis); > return ret; > } > > @@ -1245,7 +1244,7 @@ static void __exit vhci_hcd_exit(void) > { > del_platform_devices(); > platform_driver_unregister(&vhci_driver); > - kfree(vhci_pdevs); > + kfree(vhcis); > } > > module_init(vhci_hcd_init); > diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c > index d878faa..07f0d37 100644 > --- a/drivers/usb/usbip/vhci_sysfs.c > +++ b/drivers/usb/usbip/vhci_sysfs.c > @@ -32,7 +32,7 @@ > /* Sysfs entry to show port status */ > static ssize_t status_show_vhci(int pdev_nr, char *out) > { > - struct platform_device *pdev = *(vhci_pdevs + pdev_nr); > + struct platform_device *pdev = vhcis[pdev_nr].pdev; > struct vhci_hcd *vhci; > char *s = out; > int i = 0; > @@ -206,7 +206,7 @@ static ssize_t store_detach(struct device *dev, struct device_attribute *attr, > if (!valid_port(pdev_nr, rhport)) > return -EINVAL; > > - hcd = platform_get_drvdata(*(vhci_pdevs + pdev_nr)); > + hcd = platform_get_drvdata(vhcis[pdev_nr].pdev); > if (hcd == NULL) { > dev_err(dev, "port is not ready %u\n", port); > return -EAGAIN; > @@ -287,7 +287,7 @@ static ssize_t store_attach(struct device *dev, struct device_attribute *attr, > if (!valid_args(pdev_nr, rhport, speed)) > return -EINVAL; > > - hcd = platform_get_drvdata(*(vhci_pdevs + pdev_nr)); > + hcd = platform_get_drvdata(vhcis[pdev_nr].pdev); > if (hcd == NULL) { > dev_err(dev, "port %d is not ready\n", port); > return -EAGAIN; > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html