mirror of https://gitee.com/openkylin/linux.git
e1318391fd
This addresses a section mismatch problem in the IM-PD1 driver in the Integrator/AP. The IM-PD1 contains a VIC interrupt controller and therefore the driver calls vic_init_cascaded() which is marked __init as irqchips are simply not hot-pluggable and specifically the VIC is assumed to initiate only on boot. However the module driver model of the Integrator LM bus assumes that logic tile drivers can be probed at runtime. This is not really the case for IM-PD1: these tiles are detected at boot and they cannot be plugged into a running system. Before this patch it is of course possible to modprobe them later. By first forcing the IM-PD1 to bool we make sure this driver gets compiled into the kernel, and we know it will be probed only at boot time when the tiles are detected, so we can tag its probe function __init_refok as we know it won't be called after boot now, and the section mismatch problem goes away. As a side effect, sysfs binding from userspace becomes impossible, so we tag the driver to suppress the bind/unbind sysfs attributes. Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
||
---|---|---|
.. | ||
include/mach | ||
Kconfig | ||
Makefile | ||
Makefile.boot | ||
cm.h | ||
common.h | ||
core.c | ||
hardware.h | ||
impd1.c | ||
impd1.h | ||
integrator_ap.c | ||
integrator_cp.c | ||
leds.c | ||
lm.c | ||
lm.h | ||
pci_v3.c | ||
pci_v3.h |