lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130817111747.GB1536@mithrandir>
Date:	Sat, 17 Aug 2013 13:17:48 +0200
From:	Thierry Reding <thierry.reding@...il.com>
To:	Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:	Grant Likely <grant.likely@...aro.org>,
	Rob Herring <rob.herring@...xeda.com>,
	Stephen Warren <swarren@...dotorg.org>,
	Hiroshi Doyu <hdoyu@...dia.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
	Sebastian Hesselbarth <sebastian.hesselbarth@...il.com>,
	devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC 2/4] driver core: Allow early registration of devices

On Fri, Aug 16, 2013 at 03:08:07PM -0700, Greg Kroah-Hartman wrote:
> On Fri, Aug 16, 2013 at 11:55:31PM +0200, Thierry Reding wrote:
> > > > +	list_for_each_entry(private, &device_early_list, early) {
> > > > +		struct device *dev = private->device;
> > > > +		int err;
> > > > +
> > > > +		if (dev->bus == &platform_bus_type) {
> > > 
> > > Why special case the platform bus?  We are trying to move things off of
> > > the platform bus, don't make it harder to do that :)
> > 
> > I heard about that, but I must have missed the thread where this was
> > discussed. Can you point me to it?
> 
> I thought it was on lkml, but it might have been limited to linux-arm
> and the ksummit-discuss mailing list on one of the threads there.
> Sorry, I can't recall it at the moment.

I think I found it. It was limited to linux-arm and ksummit-discuss.
Interesting read, thanks.

> > > Not that I really like the whole idea anyway, but I doubt there's much I
> > > can do about it...
> > 
> > Well, getting feedback from you and others is precisely the reason why I
> > wanted to post this early. There must be a reason why you don't like it,
> > so perhaps you can share your thoughts and we can mould this into
> > something that you'd be more comfortable with.
> 
> Ideally we would have the rest of the system up and running (i.e. sysfs)
> before having to deal with devices and drivers.  As it is, you are
> "special casing" a number of special devices on special platforms to
> work around architectural issues on those platforms.  Stuff that ideally
> would never need to be done, except for crazy hardware designers :)
> 
> So I understand that it is needed, in some special cases, but that
> doesn't mean I have to like it...

So the rest of this thread seems to be going in a slightly different
direction. If indeed we can come up with a way to limit the early code
to setup only the bare minimum and not register all kinds of data
structures for later on, then this "workaround" shouldn't really be
needed at all.

I think it would be nice to ultimately have a single driver that would
know how to do early setup that will be enough to get us to initcalls
and do the full initialization once the regular .probe() is called.

> > To be honest I don't particularly like it either. It's very hackish for
> > core code. But on the other hand there are a few device/driver ordering
> > problems that this (or something similar) would help solve. I'm
> > certainly open to discuss alternatives and perhaps there's a much
> > cleaner way to solve the problem.
> 
> As this usually is needed on a case-by-case basis, I'm hoping that your
> case really does need this, right?  If so, there's not much the kernel
> can do except add hooks like this to make it work properly.

Well, the most obvious cases where early initialization is needed are
interrupt controllers and clocks. Those used to be setup by platform
code and was isolated to arch/arm (I guess the same is true for other
architectures as well). That way everybody could do what they wanted.
We've moved a lot of that code out into drivers/ but a side-effect of
that was that some of it wasn't turned into proper drivers.

Perhaps the current solutions are all fine and I should just ignore that
they irritate me.

Thierry

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ