Why name length of an array can hit case of "Inconsistent kallsymsdata" fail

From: vincent Ho
Date: Tue Aug 06 2013 - 01:06:41 EST


While I'm porting a new mach for ARM. I hit a case to produce
"Inconsistent kallsyms data".
I try to find out the solution and then get an interesting case is
about "array name length"

Kernel is 3.4.56 and gcc version 4.3.5 (Buildroot 2010.11)

While register serial8250 platform device, the code are

>#include <linux/serial_8250.h>
>#include <mach/irqs.h>
>#include <mach/maps.h>
>#include <mach/hardware.h>

>static struct plat_serial8250_port abcdef_serial_platform_data[] = {
>{
> .membase = (void *)UARTC_0_MMR_BASE_VRT,
> .mapbase = VPL_UARTC_0_MMR_BASE_PHY,
> .irq = UARTC0_IRQ_NUM,
> .uartclk = 24000000,
> .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_FIXED_TYPE,
> .iotype = UPIO_MEM32,
> .regshift = 2,
> .type = PORT_16550A,
> },
> {},
>};
> static struct platform_device board_serial_device = {
> .name = "serial8250",
> .id = PLAT8250_DEV_PLATFORM,
> .dev = {
> .platform_data = abcdef_serial_platform_data,
> },
>};
>void __init board_serial_init(void)
>{
> platform_device_register(&board_serial_device);
>}

Kernel make fail of original code by the "Inconsistent kallsyms data" error.
BUT once I modified the array name of "abcdef_serial_platform_data" to
"abcde_serial_platform_data", i.e reduce one alphabet,
the Kernel make can complete without "Inconsistent kallsyms data" error.
I have no idea why the array name length can make difference.
There is no other change between these two make test, just modify the
array name.
Does this means some "Inconsistent kallsyms data" are caused by symbol
length and effects final two KSYM flow?
--
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/