Re: [PATCH] driver core: add uid and gid to devtmpfs

From: Rob Landley
Date: Tue Apr 09 2013 - 11:12:05 EST


On 04/08/2013 01:25:27 PM, Greg KH wrote:
On Mon, Apr 08, 2013 at 01:14:13PM -0500, Rob Landley wrote:
> On 04/06/2013 11:56:00 AM, Greg KH wrote:
> >From: Kay Sievers <kay@xxxxxxxx>
> >
> >Some drivers want to tell userspace what uid and gid should be
> >used for
> >their device nodes, so allow that information to percolate through the
> >driver core to userspace in order to make this happen. This means
> >that
> >some systems (i.e. Android and friends) will not need to even run a
> >udev-like daemon for their device node manager and can just rely in
> >devtmpfs fully, reducing their footprint even more.
>
> Wasn't the entire "devfsd" saga because this was policy and didn't
> belong in kernel space?

devfs did a number of things "wrong",

"He killed people and had bad breath. My breath is minty fresh."

Ok...

not the least being it set a
naming policy that was non-standard, and it had unfixable race conditons
in it.

Yes, it had multiple types of policy in the kernel that people objected to, which is why it went away replaced by userspace notifiers that let stuff like udev and mdev do it right. But the motivation for going down that path in the first place was to keep knowledge of things like uids out of the kernel.

This used to be verbotten as policy in kernel space. Now it's not. I'm wondering if there's a rationale for the change other than "android wants what we used to go to great lengths to forbid".

(Half the reason for capability bits was so that even UID 0 wouldn't be special. But this is offhandedly hardwiring in unlimited magic UIDs and GIDs into drivers, with nobody even bothering to track them that I've noticed...)

> I guess it's not policy if Android wants it?
> It's just The One True Way?

Don't be facetious please.

So ubuntu will never want to use a driver that started life under bionic, because the hardware is never going to overlap or because they'll rewrite them? Bionic will coordinate with gentoo or LSB or something to make sure that the UIDs it's claiming are out of a reserved driver-only space?

Have you informed lanana of the need to start a UID/GID tracking list, and gotten buy-in from the android developers (and the other distros) to coordinate with them when adding new UIDs to drivers?

Or do you think it will simply never cause a problem, so there's no need to worry?

> Or is this because containers allow UID/GID to be redefined, and
> thus imposing magic values on userspace can now be mapped away or
> something?

I don't understand, what do you mean by this?

I mean that each container can have its own UID/GID namespace now, I was wondering if a driver claims a UID that an existing root filsystem is already using for something else, can a container remap it away so it doesn't conflict? Or will it still need manual udev rules to adjust at hotplug time?

If a container _does_ remap its UID range, will its devtmpfs instance populate with the host UID/GID or the remapped UID/GID? (If remapped, will it gracefully handle the mapped UID/GID range not being big enough?)

greg k-h

Rob--
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/