Re: [REPOST][PATCH 1/2] driver core: Add new device_driver flag toallow binding via sysfs only

From: Scott Wood
Date: Thu Dec 19 2013 - 17:15:41 EST


On Thu, 2013-12-19 at 13:43 -0800, Greg Kroah-Hartman wrote:
> On Thu, Dec 19, 2013 at 09:06:21PM +0000, Stuart Yoder wrote:
> >
> >
> > > -----Original Message-----
> > > From: Greg Kroah-Hartman [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
> > > Sent: Thursday, December 19, 2013 2:34 PM
> > > To: Wood Scott-B07421
> > > Cc: Kim Phillips; linux-kernel@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx;
> > > Bhushan Bharat-R65777; Yoder Stuart-B08248; christoffer.dall@xxxxxxxxxx;
> > > alex.williamson@xxxxxxxxxx; a.motakis@xxxxxxxxxxxxxxxxxxxxxx;
> > > agraf@xxxxxxx; Sethi Varun-B16395
> > > Subject: Re: [REPOST][PATCH 1/2] driver core: Add new device_driver flag
> > > to allow binding via sysfs only
> > >
> > > No. But you can use bind/unbind along with the existing new_id file to
> > > get what you want today.
> >
> > Yes, but that only works for PCI.
>
> No, not only PCI.
>
> > There is no such concept for platform drivers.
>
> Then fix that.

We've already explained why that would be bad.

> Or make your device not be a platform device, odds are that's the better
> solution in the end, right?

How would that solve anything? We'd just be talking about there not
being such a mechanism for the device tree "bus" instead.

> > > If you just happen to bind a device to a wrong
> > > driver for a while, that's not really a problem, right?
> >
> > It's annoying but not the end of the world.

Lots of bugs are "not the end of the world" but that doesn't mean we
don't fix them. It certainly doesn't mean we duplicate the source of
the bug in new subsystems.

> > > I don't like this patch as we are adding lots of special and odd logic
> > > to the core, for use by almost no one, which ensures that it will never
> > > get tested, and will probably get broken in some subtle way in the
> > > future.
> >
> > It certainly will be used by users of vfio-platform.
> >
> > Here is the problem-- the new platform device "match_any_dev" mechanism
> > in patch 2 of this series is not going to work without "sysfs_bind_only".
> > A platform driver that just sets "match_any_dev" will grab any or all
> > platform devices during normal bus probing.
>
> No it will not, it will fail in the probe function as it knows to not
> grab the device, just like any driver for other busses that say it can
> "handle all Intel PCI devices" and the like.

How will it "know not to grab the device"? The knowledge of whether the
binding was explicitly requested or not does not get passed through to
the probe function.

It would be a shame to have to implement code in VFIO, and a userspace
interface to go along with it, to keep track of which devices have been
authorized to be bound when we already have sysfs bind -- we just need a
way to differentiate that from automatic binding.

-Scott


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