Re: [PATCH] platform driver:fix incorrect use of 'platform_bus_type'with 'struct device_driver'

From: Henrique de Moraes Holschuh
Date: Fri Feb 06 2009 - 14:12:57 EST


On Fri, 6 Feb 2009 09:59:22 -0800, "David Brownell" <david-b@xxxxxxxxxxx> said:
> On Friday 06 February 2009, tom.leiming@xxxxxxxxx wrote:
> > From: Ming Lei <tom.leiming@xxxxxxxxx>
> >
> > This patch fixes the bug reported in
> >         http://bugzilla.kernel.org/show_bug.cgi?id=11681.
> >
> > "Lots of device drivers register a 'struct device_driver' with
> > the '.bus' member set to '&platform_bus_type'. This is wrong,
> > since the platform_bus functions expect the 'struct device_driver'
> > to be wrapped up in a 'struct platform_driver' which provides
> > some additional callbacks (like suspend_late, resume_early).
> > The effect may be that platform_suspend_late() uses bogus data
> > outside the device_driver struct as a pointer pointer to the
> > device driver's suspend_late() function or other hard to
> > reproduce failures."(Lothar Wassmann)
> >
> > Signed-off-by: Ming Lei <tom.leiming@xxxxxxxxx>
>
> I just glanced at this ... but those parts looked like
> good fixes to this family of bugs. Thanks.

Indeed! Thanks for the patch.

Can we mark the drivers not fixed by this patch as BROKEN or at the very
least block them from compiling if suspend support is enabled? They hose
suspend and resume depending on random luck...

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh

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