--- zzzz-none-000/linux-2.6.28.10/drivers/usb/core/hcd.c 2009-05-02 18:54:43.000000000 +0000 +++ puma5-6360-529/linux-2.6.28.10/drivers/usb/core/hcd.c 2011-09-09 14:34:11.000000000 +0000 @@ -1313,6 +1313,9 @@ atomic_inc(&urb->use_count); atomic_inc(&urb->dev->urbnum); usbmon_urb_submit(&hcd->self, urb); +#ifdef AVM_USB_TRACE + avm_usb_trace_submit(hcd, urb); +#endif /* NOTE requirements on root-hub callers (usbfs and the hub * driver, for now): URBs' urb->transfer_buffer must be @@ -1324,6 +1327,9 @@ status = map_urb_for_dma(hcd, urb, mem_flags); if (unlikely(status)) { usbmon_urb_submit_error(&hcd->self, urb, status); +#ifdef AVM_USB_TRACE + avm_usb_trace_error(hcd, urb, status); +#endif goto error; } @@ -1334,6 +1340,9 @@ if (unlikely(status)) { usbmon_urb_submit_error(&hcd->self, urb, status); +#ifdef AVM_USB_TRACE + avm_usb_trace_error(hcd, urb, status); +#endif unmap_urb_for_dma(hcd, urb); error: urb->hcpriv = NULL; @@ -1438,6 +1447,10 @@ unmap_urb_for_dma(hcd, urb); usbmon_urb_complete(&hcd->self, urb, status); +#ifdef AVM_USB_TRACE + avm_usb_trace_complete(hcd, urb, status); +#endif + usb_unanchor_urb(urb); /* pass ownership to the completion handler */ @@ -1951,6 +1964,11 @@ } if (hcd->uses_new_polling && hcd->poll_rh) usb_hcd_poll_rh_status(hcd); + +#ifdef AVM_USB_TRACE + avm_usb_register_trace_device (hcd); +#endif + return retval; error_create_attr_group: @@ -2011,6 +2029,11 @@ if (hcd->irq >= 0) free_irq(hcd->irq, hcd); + +#ifdef AVM_USB_TRACE + avm_usb_deregister_trace_device (hcd); +#endif + usb_deregister_bus(&hcd->self); hcd_buffer_destroy(hcd); }