Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 316995
b: refs/heads/master
c: 336c5c3
h: refs/heads/master
i:
  316993: 63bb70c
  316991: 1382f66
v: v3
  • Loading branch information
Lan Tianyu authored and Greg Kroah-Hartman committed Jul 6, 2012
1 parent 147be36 commit 3cd1de2
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 77c4400f2f0fd8384ab5cbe41d81ccc664896b2d
refs/heads/master: 336c5c310e8f0d5baba7973765339eaf5d989fe1
21 changes: 12 additions & 9 deletions trunk/drivers/usb/core/hub.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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) {
Expand Down
9 changes: 6 additions & 3 deletions trunk/drivers/usb/core/usb.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include <linux/pm.h>

struct dev_state;

/* Functions local to drivers/usb/core/ */

extern int usb_create_sysfs_dev_files(struct usb_device *dev);
Expand Down Expand Up @@ -41,10 +43,11 @@ extern void usb_forced_unbind_intf(struct usb_interface *intf);
extern void usb_rebind_intf(struct usb_interface *intf);

extern int usb_hub_claim_port(struct usb_device *hdev, unsigned port,
void *owner);
struct dev_state *owner);
extern int usb_hub_release_port(struct usb_device *hdev, unsigned port,
void *owner);
extern void usb_hub_release_all_ports(struct usb_device *hdev, void *owner);
struct dev_state *owner);
extern void usb_hub_release_all_ports(struct usb_device *hdev,
struct dev_state *owner);
extern bool usb_device_is_owned(struct usb_device *udev);

extern int usb_hub_init(void);
Expand Down

0 comments on commit 3cd1de2

Please sign in to comment.