diff --git a/repos/dde_linux/src/lib/lx_emul/shadow/kernel/cpu.c b/repos/dde_linux/src/lib/lx_emul/shadow/kernel/cpu.c index 451ce8fecf..96132b4ea7 100644 --- a/repos/dde_linux/src/lib/lx_emul/shadow/kernel/cpu.c +++ b/repos/dde_linux/src/lib/lx_emul/shadow/kernel/cpu.c @@ -44,3 +44,13 @@ const unsigned long cpu_bit_bitmap[BITS_PER_LONG+1][BITS_TO_LONGS(NR_CPUS)] = { const DECLARE_BITMAP(cpu_all_bits, NR_CPUS) = CPU_BITS_ALL; EXPORT_SYMBOL(cpu_all_bits); + + +/* + * Provide this init function as a weak symbol so that + * drivers including 'drivers/base/auxiliary.c' in their + * source list can override it but all other drivers are + * indifferent to its existence. + */ +void auxiliary_bus_init(void) __attribute__((weak)); +void auxiliary_bus_init(void) { } diff --git a/repos/dde_linux/src/lib/lx_emul/start.c b/repos/dde_linux/src/lib/lx_emul/start.c index b7f157f201..2b02a34af9 100644 --- a/repos/dde_linux/src/lib/lx_emul/start.c +++ b/repos/dde_linux/src/lib/lx_emul/start.c @@ -37,6 +37,7 @@ extern int devices_init(void); extern int buses_init(void); extern int classes_init(void); extern int platform_bus_init(void); +extern int auxiliary_bus_init(void); /* definition from kernel/main.c implemented architecture specific */ extern void time_init(void); @@ -64,6 +65,8 @@ static int kernel_init(void * args) of_core_init(); platform_bus_init(); + auxiliary_bus_init(); + lx_emul_initcalls(); system_state = SYSTEM_RUNNING;