earlycon: Fix __earlycon_table stride
The compiler and the linker must agree on the alignment of
struct earlycon_id; empirical testing and commit 07fca0e57f
("tracing: Properly align linker defined symbols") suggests
32-byte alignment is the LCD.
Reported-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b3e3bf2ef2
commit
99492c39f3
|
@ -151,7 +151,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SERIAL_EARLYCON
|
#ifdef CONFIG_SERIAL_EARLYCON
|
||||||
#define EARLYCON_TABLE() . = ALIGN(8); \
|
#define EARLYCON_TABLE() STRUCT_ALIGN(); \
|
||||||
VMLINUX_SYMBOL(__earlycon_table) = .; \
|
VMLINUX_SYMBOL(__earlycon_table) = .; \
|
||||||
*(__earlycon_table) \
|
*(__earlycon_table) \
|
||||||
*(__earlycon_table_end)
|
*(__earlycon_table_end)
|
||||||
|
|
|
@ -342,7 +342,7 @@ struct earlycon_device {
|
||||||
struct earlycon_id {
|
struct earlycon_id {
|
||||||
char name[16];
|
char name[16];
|
||||||
int (*setup)(struct earlycon_device *, const char *options);
|
int (*setup)(struct earlycon_device *, const char *options);
|
||||||
};
|
} __aligned(32);
|
||||||
|
|
||||||
extern int setup_earlycon(char *buf);
|
extern int setup_earlycon(char *buf);
|
||||||
extern int of_setup_earlycon(unsigned long addr,
|
extern int of_setup_earlycon(unsigned long addr,
|
||||||
|
|
Loading…
Reference in New Issue