]> git.baikalelectronics.ru Git - kernel.git/commit
module: deal with alignment issues in built-in module versions
authorDmitry Torokhov <dtor@vmware.com>
Tue, 8 Feb 2011 00:02:25 +0000 (16:02 -0800)
committerRusty Russell <rusty@rustcorp.com.au>
Thu, 19 May 2011 07:25:24 +0000 (16:55 +0930)
commit370fbb5e20a2262b74e60af35c18722edae041c4
treedb9cadf46624dcd7e780850e8bda34b569a229b0
parent5720d480f250a80350663e6b19ef7e83d71738be
module: deal with alignment issues in built-in module versions

On m68k natural alignment is 2-byte boundary but we are trying to
align structures in __modver section on sizeof(void *) boundary.
This causes trouble when we try to access elements in this section
in array-like fashion when create "version" attributes for built-in
modules.

Moreover, as DaveM said, we can't reliably put structures into
independent objects, put them into a special section, and then expect
array access over them (via the section boundaries) after linking the
objects together to just "work" due to variable alignment choices in
different situations. The only solution that seems to work reliably
is to make an array of plain pointers to the objects in question and
put those pointers in the special section.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
include/linux/module.h
kernel/params.c