|
|
- --- a/drivers/head/stub_dev.c
- +++ b/drivers/head/stub_dev.c
- @@ -398,7 +398,11 @@ static int stub_probe(struct usb_interfa
- {
- struct usb_device *udev = interface_to_usbdev(interface);
- struct stub_device *sdev = NULL;
- +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- char *udev_busid = interface->dev.parent->bus_id;
- +#else
- + char *udev_busid = dev_name(interface->dev.parent);
- +#endif
- int err = 0;
-
- udbg("Enter\n");
- --- a/drivers/head/stub_main.c
- +++ b/drivers/head/stub_main.c
- @@ -252,18 +252,17 @@ static int __init usb_stub_init(void)
- return -ENOMEM;
- }
-
- + info(DRIVER_DESC "" DRIVER_VERSION);
- +
- + memset(busid_table, 0, sizeof(busid_table));
- + spin_lock_init(&busid_table_lock);
- +
- ret = usb_register(&stub_driver);
- if (ret) {
- uerr("usb_register failed %d\n", ret);
- return ret;
- }
-
- -
- - info(DRIVER_DESC "" DRIVER_VERSION);
- -
- - memset(busid_table, 0, sizeof(busid_table));
- - spin_lock_init(&busid_table_lock);
- -
- ret = driver_create_file(&stub_driver.drvwrap.driver, &driver_attr_match_busid);
-
- if (ret) {
- --- a/drivers/head/stub_rx.c
- +++ b/drivers/head/stub_rx.c
- @@ -159,7 +159,11 @@ static int tweak_set_configuration_cmd(s
- * A user may need to set a special configuration value before
- * exporting the device.
- */
- +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- uinfo("set_configuration (%d) to %s\n", config, urb->dev->dev.bus_id);
- +#else
- + uinfo("set_configuration (%d) to %s\n", config, dev_name(&urb->dev->dev));
- +#endif
- uinfo("but, skip!\n");
-
- return 0;
- @@ -177,7 +181,11 @@ static int tweak_reset_device_cmd(struct
- value = le16_to_cpu(req->wValue);
- index = le16_to_cpu(req->wIndex);
-
- +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- uinfo("reset_device (port %d) to %s\n", index, urb->dev->dev.bus_id);
- +#else
- + uinfo("reset_device (port %d) to %s\n", index, dev_name(&urb->dev->dev));
- +#endif
-
- /* all interfaces should be owned by usbip driver, so just reset it. */
- ret = usb_lock_device_for_reset(urb->dev, NULL);
- @@ -187,7 +195,11 @@ static int tweak_reset_device_cmd(struct
- }
-
- /* try to reset the device */
- - ret = usb_reset_composite_device(urb->dev, NULL);
- +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
- + ret = usb_reset_composite_device(urb->dev, NULL);
- +#else
- + ret = usb_reset_device(urb->dev);
- +#endif
- if (ret < 0)
- uerr("device reset\n");
-
- --- a/drivers/head/usbip_common.c
- +++ b/drivers/head/usbip_common.c
- @@ -55,10 +55,7 @@ static ssize_t show_flag(struct device *
- static ssize_t store_flag(struct device *dev, struct device_attribute *attr,
- const char *buf, size_t count)
- {
- - unsigned long flag;
- -
- - sscanf(buf, "%lx", &flag);
- - usbip_debug_flag = flag;
- + sscanf(buf, "%lx", &usbip_debug_flag);
-
- return count;
- }
- @@ -390,7 +387,7 @@ int usbip_thread(void *param)
- unlock_kernel();
-
- /* srv.rb must wait for rx_thread starting */
- - complete(&ut->thread_done);
- + complete(&ut->thread_started);
-
- /* start of while loop */
- ut->loop_ops(ut);
- @@ -403,15 +400,21 @@ int usbip_thread(void *param)
-
- void usbip_start_threads(struct usbip_device *ud)
- {
- +
- /*
- * threads are invoked per one device (per one connection).
- */
- + INIT_COMPLETION(ud->tcp_rx.thread_started);
- + INIT_COMPLETION(ud->tcp_tx.thread_started);
- + INIT_COMPLETION(ud->tcp_rx.thread_done);
- + INIT_COMPLETION(ud->tcp_tx.thread_done);
- +
- kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_rx, 0);
- kernel_thread((int(*)(void *))usbip_thread, (void *)&ud->tcp_tx, 0);
-
- /* confirm threads are starting */
- - wait_for_completion(&ud->tcp_rx.thread_done);
- - wait_for_completion(&ud->tcp_tx.thread_done);
- + wait_for_completion(&ud->tcp_rx.thread_started);
- + wait_for_completion(&ud->tcp_tx.thread_started);
- }
- EXPORT_SYMBOL(usbip_start_threads);
-
- @@ -436,6 +439,7 @@ void usbip_task_init(struct usbip_task *
- void (*loop_ops)(struct usbip_task *))
- {
- ut->thread = NULL;
- + init_completion(&ut->thread_started);
- init_completion(&ut->thread_done);
- ut->name = name;
- ut->loop_ops = loop_ops;
- --- a/drivers/head/usbip_event.c
- +++ b/drivers/head/usbip_event.c
- @@ -38,7 +38,7 @@ void usbip_start_eh(struct usbip_device
-
- kernel_thread((int(*)(void *)) usbip_thread, (void *) eh, 0);
-
- - wait_for_completion(&eh->thread_done);
- + wait_for_completion(&eh->thread_started);
- }
- EXPORT_SYMBOL(usbip_start_eh);
-
- --- a/drivers/head/vhci_hcd.c
- +++ b/drivers/head/vhci_hcd.c
- @@ -58,7 +58,7 @@ static void vhci_stop(struct usb_hcd *hc
- static int vhci_get_frame_number(struct usb_hcd *hcd);
-
- static const char driver_name[] = "vhci_hcd";
- -static const char driver_desc[] = "USB/IP Virtual Host Contoroller";
- +static const char driver_desc[] = "USB/IP Virtual Host Controller";
-
-
-
- @@ -416,14 +416,6 @@ static int vhci_hub_control(struct usb_h
- case USB_PORT_FEAT_SUSPEND:
- dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_SUSPEND\n");
- uerr(" not yet\n");
- -#if 0
- - dum->port_status[rhport] |= (1 << USB_PORT_FEAT_SUSPEND);
- - if (dum->driver->suspend) {
- - spin_unlock (&dum->lock);
- - dum->driver->suspend (&dum->gadget);
- - spin_lock (&dum->lock);
- - }
- -#endif
- break;
- case USB_PORT_FEAT_RESET:
- dbg_vhci_rh(" SetPortFeature: USB_PORT_FEAT_RESET\n");
- @@ -432,12 +424,6 @@ static int vhci_hub_control(struct usb_h
- dum->port_status[rhport] &= ~(USB_PORT_STAT_ENABLE
- | USB_PORT_STAT_LOW_SPEED
- | USB_PORT_STAT_HIGH_SPEED);
- -#if 0
- - if (dum->driver) {
- - dev_dbg (hardware, "disconnect\n");
- - stop_activity (dum, dum->driver);
- - }
- -#endif
-
- /* FIXME test that code path! */
- }
- @@ -1060,7 +1046,7 @@ static int vhci_hcd_probe(struct platfor
- struct usb_hcd *hcd;
- int ret;
-
- - uinfo("proving...\n");
- + uinfo("probing...\n");
-
- dbg_vhci_hc("name %s id %d\n", pdev->name, pdev->id);
-
- @@ -1076,7 +1062,11 @@ static int vhci_hcd_probe(struct platfor
- * Allocate and initialize hcd.
- * Our private data is also allocated automatically.
- */
- +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, pdev->dev.bus_id);
- +#else
- + hcd = usb_create_hcd(&vhci_hc_driver, &pdev->dev, dev_name(&pdev->dev));
- +#endif
- if (!hcd) {
- uerr("create hcd failed\n");
- return -ENOMEM;
- --- a/drivers/head/vhci_sysfs.c
- +++ b/drivers/head/vhci_sysfs.c
- @@ -123,7 +123,11 @@ static ssize_t show_status(struct device
- out += sprintf(out, "%03u %08x ",
- vdev->speed, vdev->devid);
- out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
- +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
- out += sprintf(out, "%s", vdev->udev->dev.bus_id);
- +#else
- + out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
- +#endif
-
- } else
- out += sprintf(out, "000 000 000 0000000000000000 0-0");
- --- a/drivers/head/usbip_common.h
- +++ b/drivers/head/usbip_common.h
- @@ -300,6 +300,7 @@ struct usbip_device;
-
- struct usbip_task {
- struct task_struct *thread;
- + struct completion thread_started;
- struct completion thread_done;
- char *name;
- void (*loop_ops)(struct usbip_task *);
|