Thread (20 messages) 20 messages, 4 authors, 2017-10-23

Re: [PATCH v5 2/2] staging: ion: create one device entry per heap

flat view

From: Laura Abbott <hidden>
Date: 2017-10-03 23:38:05
Also in: dri-devel, lkml

On 10/03/2017 04:08 PM, Sandeep Patil wrote:
On Tue, Oct 03, 2017 at 02:42:32PM -0700, Laura Abbott wrote:
quoted
On 10/03/2017 09:48 AM, Mark Brown wrote:
quoted
On Mon, Oct 02, 2017 at 11:07:48AM -0700, Laura Abbott wrote:
quoted
Thinking about this a bit more, I'm not 100% sure if this
will allow the security rules we want. Heap ids are assigned
dynamically and therefore so will the /dev/ionX designation.
From my understanding, security rules like selinux need to
be fully specified at boot time so I'm not sure how you would
be able to write rules to differentiate between /dev/ionX and
/dev/ionY without knowing the values at boottime.
Isn't this something that should be managable via udev rules that ensure
stable names in the same way as for things like disks or ethernet
controllers (even if it just ends up doing something like /dev/ion-gpu
or whatever)?  If we're not giving it enough information to assign stable
names where needed we probably need to fix that anyway.
Android doesn't use a standard udev so we'd need something that
would work there. My understanding was that android needs everything
specified at boot unless that's changed.

There would be enough information to assign stable names
(e.g. /dev/ion-system) if we used the query ioctl to find out
what's actually available. Is just the ioctl useful though?
Wouldn't this new ioctl() to query the heap name also result in special case
handling of all ion devices in user space?
I'm not quite sure what you are referring to. If you mean we have
to match on the heap name then yes that's going to happen but we
can't just zero knowledge which heap to allocate from and matching
on heap names seemed like the easiest way to make that happen.
If the devices are named with their corresponding heap names like ion-system, ion-cma etc.
It is entirely possible and easy in android/ueventd to create those nodes
under "/dev/ion/".  (assuming the heap 'subsystem' for these new devices will
point to 'ion').

Something like the following should work if added in ueventd.rc

  subsystem ion
    devname uevent_devname
    dirname /dev/ion

Also, makes SElinux labelling easier.
That's useful to know, thanks.
(Also FWIW, the SELinux permissions are also possible with the current ion
implementation by adding rules to disallow specific ioctls instead of adding
permissions to access device node as this change would do)
Can selinux disallow access within the ioctls though? The access control
wanted is at a heap granularity and disallowing certain ioctls won't fix
that.
 
- ssp
Thanks,
Laura
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help