Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Sam Ravnborg <sam@xxxxxxxxxxxx>
- Date: Mon, 14 Jan 2008 10:17:28 +0100
On Mon, Jan 14, 2008 at 08:33:35AM +0000, Jan Beulich wrote:
Will fix that in next patch. My focus was on the concept when I did theSam Ravnborg <sam@xxxxxxxxxxxx> 13.01.08 22:42 >>>And I found another small buglet too. I hope to post a complete
solution later today.
The modpost bits turned out to take longer than expected so
they are not done yet. The problem was the modpost structure
were not prepared for adding such additional chacks.
So I reworked those bits and the patch has been sent out for review.
What follows here is the changes for init.h + all linker scripts
to show the idea.
Next step is to beat modpost in shape and to post this on linux-arch.
Note - in -mm there are changes to init.h so the logic
to decide type of __meminit notation is much simpler.
Yes, I certainly like this concept. What I would have wanted in that patch,
though, is that the read-only data would right away be included in
RODATA() rather than being put in DATA_DATA.
patch but it is dead easy to fix for ll archs at once.
Also, to shorten theGood suggestion - will use these.
names a little, how about .{cpu,mem,dev}init.rodata?
The one thing that I'm not sure is really consistent yet wrt. the
constification is that now you need to write e.g.
static const char __cpuinitcdata example[];
and (accidentally) omitting the 'const' (as it's really an apparently
redundant thing now) as in
static char __cpuinitcdata example[];
will cause section type conflicts (at the compiler or linker level). I
therefore think that the 'const' should really be part of the
__{cpu,mem,dev}cdata definitions (requiring the attribute to be
placed properly, namely placement at the end of a declaration as
is possible with __{cpu,mem,dev}initdata is then not an option here).
I need to play a little with this before I make up my mind.
I do not like the concpet of hiding the const too much - it will
be non-obvious why the compiler complains if the only thing that
distingush const from non-const is a small capital 'c' within
__cpucinitdata (versus __cpuinitdata).
It can always be an incremental patch as my concpet does not prevent
it and we have only a few const __initdata variables.
Sam
--
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/
- Follow-Ups:
- Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Jan Beulich
- Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- References:
- [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Jan Beulich
- Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Sam Ravnborg
- Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Sam Ravnborg
- Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Sam Ravnborg
- Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Sam Ravnborg
- Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- From: Jan Beulich
- [PATCH 0/4] __cpuinitconst and __devinitconst
- Prev by Date: Re: [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in
- Next by Date: Re: Netperf TCP_RR(loopback) 10% regression in 2.6.24-rc6, comparing with 2.6.22
- Previous by thread: Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- Next by thread: Re: [PATCH 0/4] __cpuinitconst and __devinitconst
- Index(es):
Relevant Pages
|
|