|
@@ -1716,8 +1716,12 @@ static struct async *reap_as(struct usb_dev_state *ps)
|
|
|
static int proc_reapurb(struct usb_dev_state *ps, void __user *arg)
|
|
|
{
|
|
|
struct async *as = reap_as(ps);
|
|
|
+
|
|
|
if (as) {
|
|
|
- int retval = processcompl(as, (void __user * __user *)arg);
|
|
|
+ int retval;
|
|
|
+
|
|
|
+ snoop(&ps->dev->dev, "reap %p\n", as->userurb);
|
|
|
+ retval = processcompl(as, (void __user * __user *)arg);
|
|
|
free_async(as);
|
|
|
return retval;
|
|
|
}
|
|
@@ -1733,6 +1737,7 @@ static int proc_reapurbnonblock(struct usb_dev_state *ps, void __user *arg)
|
|
|
|
|
|
as = async_getcompleted(ps);
|
|
|
if (as) {
|
|
|
+ snoop(&ps->dev->dev, "reap %p\n", as->userurb);
|
|
|
retval = processcompl(as, (void __user * __user *)arg);
|
|
|
free_async(as);
|
|
|
} else {
|
|
@@ -1859,8 +1864,12 @@ static int processcompl_compat(struct async *as, void __user * __user *arg)
|
|
|
static int proc_reapurb_compat(struct usb_dev_state *ps, void __user *arg)
|
|
|
{
|
|
|
struct async *as = reap_as(ps);
|
|
|
+
|
|
|
if (as) {
|
|
|
- int retval = processcompl_compat(as, (void __user * __user *)arg);
|
|
|
+ int retval;
|
|
|
+
|
|
|
+ snoop(&ps->dev->dev, "reap %p\n", as->userurb);
|
|
|
+ retval = processcompl_compat(as, (void __user * __user *)arg);
|
|
|
free_async(as);
|
|
|
return retval;
|
|
|
}
|
|
@@ -1876,6 +1885,7 @@ static int proc_reapurbnonblock_compat(struct usb_dev_state *ps, void __user *ar
|
|
|
|
|
|
as = async_getcompleted(ps);
|
|
|
if (as) {
|
|
|
+ snoop(&ps->dev->dev, "reap %p\n", as->userurb);
|
|
|
retval = processcompl_compat(as, (void __user * __user *)arg);
|
|
|
free_async(as);
|
|
|
} else {
|
|
@@ -2280,7 +2290,7 @@ static long usbdev_do_ioctl(struct file *file, unsigned int cmd,
|
|
|
#endif
|
|
|
|
|
|
case USBDEVFS_DISCARDURB:
|
|
|
- snoop(&dev->dev, "%s: DISCARDURB\n", __func__);
|
|
|
+ snoop(&dev->dev, "%s: DISCARDURB %p\n", __func__, p);
|
|
|
ret = proc_unlinkurb(ps, p);
|
|
|
break;
|
|
|
|