|
@@ -81,7 +81,7 @@ struct usb_hub {
|
|
|
u8 indicator[USB_MAXCHILDREN];
|
|
|
struct delayed_work leds;
|
|
|
struct delayed_work init_work;
|
|
|
- void **port_owners;
|
|
|
+ struct dev_state **port_owners;
|
|
|
};
|
|
|
|
|
|
static inline int hub_is_superspeed(struct usb_device *hdev)
|
|
@@ -1271,7 +1271,8 @@ static int hub_configure(struct usb_hub *hub,
|
|
|
|
|
|
hdev->children = kzalloc(hdev->maxchild *
|
|
|
sizeof(struct usb_device *), GFP_KERNEL);
|
|
|
- hub->port_owners = kzalloc(hdev->maxchild * sizeof(void *), GFP_KERNEL);
|
|
|
+ hub->port_owners = kzalloc(hdev->maxchild * sizeof(struct dev_state *),
|
|
|
+ GFP_KERNEL);
|
|
|
if (!hdev->children || !hub->port_owners) {
|
|
|
ret = -ENOMEM;
|
|
|
goto fail;
|
|
@@ -1649,7 +1650,7 @@ hub_ioctl(struct usb_interface *intf, unsigned int code, void *user_data)
|
|
|
* to one of these "claimed" ports, the program will "own" the device.
|
|
|
*/
|
|
|
static int find_port_owner(struct usb_device *hdev, unsigned port1,
|
|
|
- void ***ppowner)
|
|
|
+ struct dev_state ***ppowner)
|
|
|
{
|
|
|
if (hdev->state == USB_STATE_NOTATTACHED)
|
|
|
return -ENODEV;
|
|
@@ -1664,10 +1665,11 @@ static int find_port_owner(struct usb_device *hdev, unsigned port1,
|
|
|
}
|
|
|
|
|
|
/* In the following three functions, the caller must hold hdev's lock */
|
|
|
-int usb_hub_claim_port(struct usb_device *hdev, unsigned port1, void *owner)
|
|
|
+int usb_hub_claim_port(struct usb_device *hdev, unsigned port1,
|
|
|
+ struct dev_state *owner)
|
|
|
{
|
|
|
int rc;
|
|
|
- void **powner;
|
|
|
+ struct dev_state **powner;
|
|
|
|
|
|
rc = find_port_owner(hdev, port1, &powner);
|
|
|
if (rc)
|
|
@@ -1678,10 +1680,11 @@ int usb_hub_claim_port(struct usb_device *hdev, unsigned port1, void *owner)
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
-int usb_hub_release_port(struct usb_device *hdev, unsigned port1, void *owner)
|
|
|
+int usb_hub_release_port(struct usb_device *hdev, unsigned port1,
|
|
|
+ struct dev_state *owner)
|
|
|
{
|
|
|
int rc;
|
|
|
- void **powner;
|
|
|
+ struct dev_state **powner;
|
|
|
|
|
|
rc = find_port_owner(hdev, port1, &powner);
|
|
|
if (rc)
|
|
@@ -1692,10 +1695,10 @@ int usb_hub_release_port(struct usb_device *hdev, unsigned port1, void *owner)
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
-void usb_hub_release_all_ports(struct usb_device *hdev, void *owner)
|
|
|
+void usb_hub_release_all_ports(struct usb_device *hdev, struct dev_state *owner)
|
|
|
{
|
|
|
int n;
|
|
|
- void **powner;
|
|
|
+ struct dev_state **powner;
|
|
|
|
|
|
n = find_port_owner(hdev, 1, &powner);
|
|
|
if (n == 0) {
|