2005-01-23 11:13:10

by Chris Wedgwood

[permalink] [raw]
Subject: [PATCH] Enforce USB interface claims

Greg,

How would you feel about something like this?

Index: cw-current/drivers/usb/core/devio.c
===================================================================
--- cw-current.orig/drivers/usb/core/devio.c 2005-01-19 14:52:27.987890276 -0800
+++ cw-current/drivers/usb/core/devio.c 2005-01-22 18:09:22.753895659 -0800
@@ -417,10 +417,7 @@
return -EINVAL;
if (test_bit(ifnum, &ps->ifclaimed))
return 0;
- /* if not yet claimed, claim it for the driver */
- dev_warn(&ps->dev->dev, "usbfs: process %d (%s) did not claim interface %u before use\n",
- current->pid, current->comm, ifnum);
- return claimintf(ps, ifnum);
+ return -EINVAL;
}

static int findintfep(struct usb_device *dev, unsigned int ep)


2005-01-25 06:08:02

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH] Enforce USB interface claims

On Sun, Jan 23, 2005 at 03:12:58AM -0800, Chris Wedgwood wrote:
> Greg,

Adding linux-usb-devel to the CC:

> How would you feel about something like this?
>
> Index: cw-current/drivers/usb/core/devio.c
> ===================================================================
> --- cw-current.orig/drivers/usb/core/devio.c 2005-01-19 14:52:27.987890276 -0800
> +++ cw-current/drivers/usb/core/devio.c 2005-01-22 18:09:22.753895659 -0800
> @@ -417,10 +417,7 @@
> return -EINVAL;
> if (test_bit(ifnum, &ps->ifclaimed))
> return 0;
> - /* if not yet claimed, claim it for the driver */
> - dev_warn(&ps->dev->dev, "usbfs: process %d (%s) did not claim interface %u before use\n",
> - current->pid, current->comm, ifnum);
> - return claimintf(ps, ifnum);
> + return -EINVAL;
> }
>
> static int findintfep(struct usb_device *dev, unsigned int ep)


Um, why? I think this is there to help with "broken" userspace code
that was written before we enforced the rules of "you must claim an
interface before using it." As such, I don't think we can apply this
patch.

thanks,

greg k-h

2005-01-25 07:21:31

by Chris Wedgwood

[permalink] [raw]
Subject: Re: [PATCH] Enforce USB interface claims

On Mon, Jan 24, 2005 at 10:05:55PM -0800, Greg KH wrote:

> Um, why? I think this is there to help with "broken" userspace code
> that was written before we enforced the rules of "you must claim an
> interface before using it. As such, I don't think we can apply this
> patch.

right now such broken userspace spams kern.log, etc. also it means
you can run two or more instances of something that fail to claim the
endpoint and then fight over packets from it

2005-01-25 08:27:41

by Duncan Sands

[permalink] [raw]
Subject: Re: [PATCH] Enforce USB interface claims

> > - /* if not yet claimed, claim it for the driver */
> > - dev_warn(&ps->dev->dev, "usbfs: process %d (%s) did not claim interface %u before use\n",
> > - current->pid, current->comm, ifnum);
> > - return claimintf(ps, ifnum);
> > + return -EINVAL;
> > }
> >
> > static int findintfep(struct usb_device *dev, unsigned int ep)
>
>
> Um, why? I think this is there to help with "broken" userspace code
> that was written before we enforced the rules of "you must claim an
> interface before using it." As such, I don't think we can apply this
> patch.

Unfortunately it also means that there is no pressure to fix the user-space
code. How about having it say that the autoclaiming is deprecated, and will
be removed at some point?

Ciao,

Duncan.