Re: USB mini-summit at LinuxCon Vancouver

From: Alan Stern
Date: Thu Aug 11 2011 - 11:50:00 EST


On Thu, 11 Aug 2011, Alan Cox wrote:

> Actually there are more issues than that - you've also got to worry about
> a security/permission model, and that is hard to get right, especially if
> you are not very careful that anything that can be retrieved which might
> violate the security model (eg the last frame on the capture) has been
> blanked before handover etc.

As far as I can tell, these same security issues exist today. I don't
see them getting any worse than they are now.

> And applications that are touching both video (even indirectly) and still
> camera may get surprise deadlocks if they accidentally reference both the
> still and video device even via some library or service.

No, not deadlocks. Just -EBUSY errors.

> > > Well, a user program can assume that the kernel driver left the device
> > > in a clean state. The reverse isn't always true, however -- it's one
>
> Not it cannot - the user program doesn't know
>
> a) if the kernel driver has ever been loaded
> b) the values the kernel driver leaves set (and those will change no
> doubt at times)
> c) if the camera has been plugged and unplugged and not yet had the
> kernel driver loaded

That's true. The program can't assume that a kernel driver was ever
bound to the device; all it can assume is that _if_ a kernel driver was
bound then it left the device in a sane state -- whatever "sane" might
mean in this context.

> To me it sounds like a recipe for disaster. For those tiny number of
> devices involved just use V4L and if need be some small V4L tweaks to
> handle still mode. In most cases the interface is basically identical and
> I'd bet much of the code is identical too.

I'm not against moving the whole thing into the kernel. I'm just
pointing out that an easier-to-code-up solution will accomplish much
the same result.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/