kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>
To: Scott Wood <scottwood@freescale.com>
Cc: Christoffer Dall <christoffer.dall@linaro.org>,
	Yoder Stuart-B08248 <B08248@freescale.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Kim Phillips <kim.phillips@linaro.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"a.motakis@virtualopensystems.com"
	<a.motakis@virtualopensystems.com>,
	"agraf@suse.de" <agraf@suse.de>,
	Wood Scott-B07421 <B07421@freescale.com>,
	Sethi Varun-B16395 <B16395@freescale.com>,
	Bhushan Bharat-R65777 <R65777@freescale.com>,
	"peter.maydell@linaro.org" <peter.maydell@linaro.org>,
	"santosh.shukla@linaro.org" <santosh.shukla@linaro.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: RFC: (re-)binding the VFIO platform driver to a platform device
Date: Wed, 2 Oct 2013 16:40:09 -0700	[thread overview]
Message-ID: <20131002234009.GA27714@kroah.com> (raw)
In-Reply-To: <1380749715.12932.109.camel@snotra.buserror.net>

On Wed, Oct 02, 2013 at 04:35:15PM -0500, Scott Wood wrote:
> On Wed, 2013-10-02 at 14:16 -0700, gregkh@linuxfoundation.org wrote:
> > On Wed, Oct 02, 2013 at 04:08:41PM -0500, Scott Wood wrote:
> > > On Wed, 2013-10-02 at 13:37 -0700, gregkh@linuxfoundation.org wrote:
> > > > On Wed, Oct 02, 2013 at 11:43:30AM -0700, Christoffer Dall wrote:
> > > > > > What's wrong with a non-vfio-specific flag that a driver can set, that
> > > > > > indicates that the driver is willing to try to bind to any device on the
> > > > > > bus if explicitly requested via the existing sysfs bind mechanism?
> > > > > > 
> > > > > It sounds more hackish to me to invent some 'generic' flag to solve a
> > > > > very specific case.  What you're suggesting would let users specify that
> > > > > a serial driver should handle a NIC hardware, no?  That sounds much much
> > > > > worse to me.
> > > > 
> > > > You can do that today, with any PCI driver (or USB driver as well), just
> > > > use the bind/unbind files in sysfs and you had better "know" what you
> > > > are doing...
> > > 
> > > sysfs bind won't work if it driver_match_device() fails.  PCI has
> > > PCI_ANY_ID, so the missing piece for PCI is a way to say that the driver
> > > should not bind to a device except when explicitly requested via sysfs
> > > bind.
> > > 
> > > I don't see any equivalent functionality to PCI_ANY_ID for platform
> > > devices.
> > 
> > Nor should it.  If you are wanting to bind platform devices to different
> > things based on "ids" or "strings" or something else, then you had
> > better not be using a platform device because that is not what you have
> > anymore.
> 
> I don't see how anything could be considered a platform device under
> your definition.

Devices that you just "know" are at a specific memory location ahead of
time.

> Even before all the device tree stuff came along,
> platform devices were still bound based on strings.

Not all of them, there are lots that are not, look at ISA devices on a
PC platform for one example (your pc speaker, keyboard controller,
etc.)

> > Yes, I know the OF stuff uses platform devices, and again, it's one
> > reason why I don't like it at all.  So fix OF devices "properly",
> > creating your own bus and device type, and then you will not have these
> > issues.
> 
> That's what we used to have...  It was merged with platform bus because
> so many devices may be probed multiple different ways (device tree,
> platform data, ACPI, etc).

And I still say that was a mistake I should have never let happen.  I
think you should handle binding devices to multiple busses in the driver
code for the different drivers, like we already do today for lots of
different devices (USB host controllers being one example.)

> OF is not a bus.

It's a way to describe the device tree to the kernel, and as such, it's
a "bus" as far as the driver model is concerned.  Lots of things are
"busses" for the driver core that you wouldn't think of as a "bus".

A better way to think of busses in the driver core is as a "subsystem".
In fact, we want to change busses to "subsystem" one of these days, udev
has supported that for over 5 years now for when we eventually get
around to it...

> A platform device discovered from OF is still a platform device, just
> as an i2c device discovered from OF is still an i2c device.

Devices don't change what they are just because of what "subsystem" they
are created from.  Again, look at USB host controllers as an example of
that.

> If you don't like devices that don't sit on some formalized bus and can
> be described in more than one way, fine, but that won't make them go
> away.

Think of "subsystem" instead, that should make more sense.

> And even if we did still have a separate OF platform bus, my point about
> there not being a wildcard match applies to of_device_id as well.  It
> certainly is not the case that "this is already there, and has been for
> years with no problems".

That's an OF problem then, feel free to fix it there, but not in the
driver core with a crazy "ignore this bus type string" hack :)

> > greg "I should never have let platform devices be created" k-h
> 
> The alternative is what?  A bunch of duplicated code, with a different
> bus type for every SoC family, just so you can put a name on it?

The amount of duplicated code should be really small.  If it's too
large, let me know and I'll make driver core helpers for it.

thanks,

greg k-h

  reply	other threads:[~2013-10-02 23:40 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-01 18:38 RFC: (re-)binding the VFIO platform driver to a platform device Kim Phillips
2013-10-01 19:15 ` Scott Wood
2013-10-01 19:17   ` Scott Wood
2013-10-01 22:01     ` Kim Phillips
2013-10-01 21:59   ` Kim Phillips
2013-10-01 22:44     ` Scott Wood
2013-10-01 20:00 ` Greg Kroah-Hartman
2013-10-01 22:02   ` Kim Phillips
2013-10-02  1:53     ` Christoffer Dall
2013-10-02  2:35       ` Alex Williamson
2013-10-02 15:14         ` Christoffer Dall
2013-10-02 15:29           ` Alex Williamson
2013-10-02 18:25           ` Yoder Stuart-B08248
2013-10-02 18:32             ` Scott Wood
2013-10-02 18:43               ` Christoffer Dall
2013-10-02 20:04                 ` Kim Phillips
2013-10-02 20:13                   ` Christoffer Dall
2013-10-02 20:19                     ` Scott Wood
2013-10-02 20:14                 ` Scott Wood
2013-10-02 20:27                   ` Christoffer Dall
2013-10-02 20:39                     ` gregkh
2013-10-02 20:44                       ` Christoffer Dall
2013-10-02 20:37                 ` gregkh
2013-10-02 20:42                   ` Christoffer Dall
2013-10-02 21:08                   ` Scott Wood
2013-10-02 21:16                     ` gregkh
2013-10-02 21:35                       ` Scott Wood
2013-10-02 23:40                         ` gregkh [this message]
2013-10-03 18:33                           ` Scott Wood
2013-10-03 18:54                             ` gregkh
2013-10-03 19:11                               ` Scott Wood
2013-10-03 20:32                                 ` gregkh
2013-10-09 19:02                                   ` Yoder Stuart-B08248
2013-10-09 19:16                                     ` gregkh
2013-10-09 19:49                                       ` Scott Wood
2013-10-09 19:21                                     ` Scott Wood
2013-10-09 19:44                                       ` Yoder Stuart-B08248
2013-10-09 20:03                                         ` Scott Wood
2013-10-10  3:05                                           ` Kim Phillips
2013-10-10  8:01                                             ` Bhushan Bharat-R65777
2013-10-10 15:27                                               ` Scott Wood
2013-10-11  6:27                                                 ` [PATCH 1/4] driver core: Add new device_driver flag to allow binding via sysfs only Kim Phillips
2013-10-11  6:27                                                   ` [PATCH 2/4] driver core: platform: allow platform drivers to bind to any device Kim Phillips
2013-10-11  6:27                                                   ` [PATCH 3/4] VFIO: pci: amend vfio-pci for explicit binding via sysfs only Kim Phillips
2013-10-11 20:43                                                     ` Scott Wood
2013-10-11 23:17                                                       ` Kim Phillips
2013-10-14 13:01                                                         ` Yoder Stuart-B08248
2013-10-14 17:13                                                           ` Scott Wood
2013-10-24 11:32                                                         ` Bhushan Bharat-R65777
2013-10-28 17:47                                                     ` Alex Williamson
2013-10-28 18:00                                                       ` Scott Wood
2013-10-28 18:09                                                         ` Scott Wood
2013-10-29  3:38                                                           ` Bhushan Bharat-R65777
2013-10-29  3:40                                                             ` Scott Wood
2013-10-29  3:52                                                               ` Bhushan Bharat-R65777
2013-10-29  4:29                                                                 ` Scott Wood
2013-10-29  4:31                                                                   ` Bhushan Bharat-R65777
2013-10-29  4:35                                                                     ` Scott Wood
2013-10-29  4:45                                                                       ` Bhushan Bharat-R65777
2013-10-29  4:54                                                                         ` Scott Wood
2013-10-29  6:39                                                                           ` Bhushan Bharat-R65777
2013-10-11  6:27                                                   ` [PATCH] VFIO: platform: allow the driver to bind to any device explicitly via sysfs Kim Phillips
2013-10-10  7:45                                           ` RFC: (re-)binding the VFIO platform driver to a platform device Bhushan Bharat-R65777
2013-10-10 13:43                                             ` Yoder Stuart-B08248
2013-10-10 15:23                                             ` Scott Wood
2013-10-10 15:25                                               ` Bhushan Bharat-R65777

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131002234009.GA27714@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=B07421@freescale.com \
    --cc=B08248@freescale.com \
    --cc=B16395@freescale.com \
    --cc=R65777@freescale.com \
    --cc=a.motakis@virtualopensystems.com \
    --cc=agraf@suse.de \
    --cc=alex.williamson@redhat.com \
    --cc=christoffer.dall@linaro.org \
    --cc=kim.phillips@linaro.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peter.maydell@linaro.org \
    --cc=santosh.shukla@linaro.org \
    --cc=scottwood@freescale.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).