linux-kernel-test/arch
Linus Walleij e1318391fd ARM: integrator: fix section mismatch problem
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>
2014-06-17 17:09:38 +02:00
..
alpha Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 14:00:15 -07:00
arc Nothing too exciting here, just minor fixes/cleanup. Only noteworthy ones are: 2014-06-09 18:05:11 -07:00
arm ARM: integrator: fix section mismatch problem 2014-06-17 17:09:38 +02:00
arm64 arm64: add APM X-Gene SoC RTC DTS entry 2014-06-06 16:08:06 -07:00
avr32 Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
blackfin blackfin/ptrace: call find_vma with the mmap_sem held 2014-06-06 16:08:16 -07:00
c6x DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
cris cris: update comments for generic idle conversion 2014-06-06 16:08:18 -07:00
frv sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
hexagon
ia64 ia64: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
m32r
m68k signals: kill sigfindinword() 2014-06-06 16:08:11 -07:00
metag hugetlb: restrict hugepage_migration_support() to x86_64 2014-06-04 16:53:51 -07:00
microblaze Microblaze patches for 3.16-rc1 2014-06-05 16:15:33 -07:00
mips Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-06-09 18:10:34 -07:00
mn10300 sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
openrisc DeviceTree for 3.16: 2014-06-04 10:02:38 -07:00
parisc - Optimised assembly string/memory routines (based on the AArch64 Cortex 2014-06-06 10:43:28 -07:00
powerpc Merge git://www.linux-watchdog.org/linux-watchdog 2014-06-10 19:16:36 -07:00
s390 Merge branch 'akpm' (patchbomb from Andrew) into next 2014-06-04 16:55:13 -07:00
score
sh - Optimised assembly string/memory routines (based on the AArch64 Cortex 2014-06-06 10:43:28 -07:00
sparc sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
tile tile: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
um
unicore32 arch/unicore32/mm/ioremap.c: return NULL on invalid pfn 2014-06-04 16:53:53 -07:00
x86 Merge git://www.linux-watchdog.org/linux-watchdog 2014-06-10 19:16:36 -07:00
xtensa - Optimised assembly string/memory routines (based on the AArch64 Cortex 2014-06-06 10:43:28 -07:00
.gitignore
Kconfig