Re: Section Mismatches

From: Felipe Balbi
Date: Mon Aug 09 2010 - 02:08:58 EST


On Wed, Aug 04, 2010 at 02:26:59PM +0200, ext Uwe Kleine-König wrote:
Hi Felipe,

On Wed, Aug 04, 2010 at 02:11:56PM +0300, Felipe Balbi wrote:
I see that your commit 0db252452378aa7a9e001a13226e1cd1dc61453d removed
the *_driver from the symbol whitelist when referencing init section
(heh, it took a while), but could you explain what's the rationale
behind that ?
The rational is that it's AFAIK wrong if a driver references a function
that lives in .init.text.

how about all the driver structures ? should they remove __init from probe() or stop saving the probe() function's pointer ?

That can be done for e.g. platform drivers, but for cpufreq_driver structures, I can't see a way to avoid a section mismatch (not without changing the cpufreq code a bit, at least). And, to me, that init has to live in the .init.text section as it's pretty much only called to initialize the frequency table for the cpu.

Do you think that's wrong?

no, no. Not saying that. Just wondering what will happen with several drivers, will they change from _driver to _ops or try to stop saving probe() pointers into the driver structure.

--
balbi

DefectiveByDesign.org
--
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/