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]
Date:	Tue, 16 Jun 2009 20:23:10 +0200
From:	Uwe Kleine-König 
	<u.kleine-koenig@...gutronix.de>
To:	Greg KH <gregkh@...e.de>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 012/143] USB: move twl4030_usb's probe function to
	.devinit.text

Hello,

On Tue, Jun 16, 2009 at 11:00:53AM -0700, Greg KH wrote:
> On Tue, Jun 16, 2009 at 07:59:00PM +0200, Uwe Kleine-König wrote:
> > Hello,
> > 
> > On Tue, Jun 16, 2009 at 09:21:06AM -0700, Greg KH wrote:
> > > On Tue, Jun 16, 2009 at 11:14:44AM +0200, Uwe Kleine-König wrote:
> > > > Hi Greg,
> > > > 
> > > > On Mon, Jun 15, 2009 at 11:20:35PM -0700, Greg KH wrote:
> > > > > On Tue, Jun 16, 2009 at 08:05:59AM +0200, Uwe Kleine-König wrote:
> > > > > > Hi Greg,
> > > > > > 
> > > > > > On Mon, Jun 15, 2009 at 10:22:07PM -0700, Greg Kroah-Hartman wrote:
> > > > > > > A pointer to twl4030_usb_probe is passed to the core via
> > > > > > > platform_driver_register and so the function must not disappear when the
> > > > > > > .init sections are discarded.  Otherwise (if also having HOTPLUG=y)
> > > > > > > unbinding and binding a device to the driver via sysfs will result in an
> > > > > > > oops as does a device being registered late.
> > > > > > > 
> > > > > > > An alternative to this patch is using platform_driver_probe instead of
> > > > > > > platform_driver_register plus removing the pointer to the probe function
> > > > > > > from the struct platform_driver.
> > > > > > I wonder if this kind of error could be detected automatically.  That is
> > > > > > at probe time check if the probe function is in the .init.text section.
> > > > > 
> > > > > There's nothing wrong with calling probe functions in the .init.text
> > > > > section, _before_ we throw away the init.text section :)
> > > > Ah, my fault:
> > > > 
> > > > I wonder if this kind of error could be detected automatically.  That is
> > > > at *register* time check if the probe function is in the .init.text
> > > > section.
> > > 
> > > But again, we can register devices with their probe functions in
> > > .init.text and use them, before .init.text is thrown away, right?
> > Yes, but only if you unregister the driver before .init.text is thrown
> > away, right?
> > 
> > If your driver is still active while .init.text already disappeared a new
> > device makes your kernel oops.
> 
> Yes, but for almost all platform devices, they can not have a new device
> appear after init runs, as they are fixed to the motherboard.
The same check could be implemented for drivers of the other bus types,
too.
 
> Anyway, if you want to send a patch to dynamically catch this kind of
> problem, that would be great.
I somehow feared that at one point someone wants a patch from me if I
ask if it's possible at all ... :-)

/me goes and searces if there is already a function to check if a
pointer points into .init.text.

Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ