linux/arch/arm/mach-pxa
Robert Jarzmik cde7fc8799 ARM: pxa: fix hang on startup with DEBUG_LL
The commit 2111667b46 ("ARM: pxa: call debug_ll_io_init for
earlyprintk") triggers in the current kernel the attached backtrace on
PXA/tosa early in the boot time when DEBUG_LL is enabled.

It is due to overlap between uart virtual memory defined in
DEBUG_UART_VIRT and mapped by debug_ll_io_init() and peripheral bus
mapped by pxa_map_io at the same address, 0xf2100000.

As hinted by Arnd, map early virtual memory for low level debug on
address 0xf6200000, even if that means 2 virtual mappings will give
access to the pxa internal UARTs (FFUART, BTUART, STUART, ...).

------------[ cut here ]------------
kernel BUG at /home/lumag/linux/mm/vmalloc.c:1143!
Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.17.0-00032-g8e0d202-dirty #23
task: c062a5a8 ti: c0620000 task.ti: c0620000
PC is at vm_area_add_early+0x54/0x84
LR is at add_static_vm_early+0xc/0x60
pc : [<c03e1100>]    lr : [<c03d9ef4>]    psr: 800001d3
sp : c0621f04  ip : c03efa74  fp : c03edf84
r10: c0637e98  r9 : 40000001  r8 : c03da57c
r7 : c3ffcfb0  r6 : 00000000  r5 : c3ffcfb0  r4 : 02000000
r3 : c3ffcfd8  r2 : f2100000  r1 : f4000000  r0 : c3ffcfb0
Flags: Nzcv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
Control: 00007977  Table: a0004000  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc06201c8)
Stack: (0xc0621f04 to 0xc0622000)
1f00:          c3ffcfd8 40000001 c3ffcfd8 c03ee08c c03da570 c03db90c c0637d24
1f20: 00000000 c03ec7cc c066e654 a0700000 000a0700 c03db914 c03db90c c03daf84
1f40: 00000000 000a0000 c0000000 c03ec7cc 000a0700 c0700000 ffff1000 000a3fff
1f60: 00001000 00000007 00000000 c03ec7cc c0008000 c03ed748 c0621fd4 c03d5d18
1f80: 69052d00 a03ec48c 00000000 c03d8ad0 0000006c 00007977 c036c6e8 00000001
1fa0: c0621fd4 c03ed744 c0628000 a0004000 69052d00 a03ec48c 00000000 c03d68d4
1fc0: 00000000 00000000 00000000 00000000 00000000 c03ed748 c0649894 c062801c
1fe0: c03ed744 c062b2f0 a0004000 69052d00 a03ec48c a0008040 00000000 00000000
[<c03e1100>] (vm_area_add_early) from [<c03d9ef4>] (add_static_vm_early+0xc/0x60)
[<c03d9ef4>] (add_static_vm_early) from [<c03da570>] (iotable_init.part.6+0xa8/0xb4)
[<c03da570>] (iotable_init.part.6) from [<c03db914>] (pxa25x_map_io+0x8/0x24)
[<c03db914>] (pxa25x_map_io) from [<c03daf84>] (paging_init+0x744/0x8d8)
[<c03daf84>] (paging_init) from [<c03d8ad0>] (setup_arch+0x354/0x608)
[<c03d8ad0>] (setup_arch) from [<c03d68d4>] (start_kernel+0xa8/0x3dc)
[<c03d68d4>] (start_kernel) from [<a0008040>] (0xa0008040)
Code: e5904008 e0811004 e1520001 2a000005 (e7f001f2)
---[ end trace f24b6c88ae00fa9a ]---
Kernel panic - not syncing: Attempted to kill the idle task!
---[ end Kernel panic - not syncing: Attempted to kill the idle task!

Cc: <stable@vger.kernel.org>
Reported-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2014-10-20 21:11:40 +02:00
..
include/mach ARM: pxa: fix hang on startup with DEBUG_LL 2014-10-20 21:11:40 +02:00
am200epd.c ARM: pxa: remove IRQF_DISABLED 2013-12-11 17:32:41 -08:00
am300epd.c ARM: pxa: fix compilation problem on AM300EPD board 2014-02-10 10:32:08 -08:00
balloon3.c arch/arm/mach-pxa: replace strict_strto call with kstrto 2014-08-08 15:57:27 -07:00
capc7117.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
clock-pxa2xx.c ARM: pxa: use common IOMEM definition 2012-03-25 14:36:31 -05:00
clock-pxa3xx.c ARM: pxa: support CKENC in clk_enable 2012-08-16 16:15:44 +08:00
clock.c ARM: pxa: add clk_set_rate() 2011-07-12 19:45:19 +08:00
clock.h ARM: pxa: remove pxa95x support 2012-11-15 13:50:13 +01:00
cm-x2xx-pci.c ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
cm-x2xx-pci.h
cm-x2xx.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
cm-x255.c ARM: 7104/1: plat-pxa: break out GPIO driver specifics 2011-10-01 23:45:34 +01:00
cm-x270.c ARM: pxa: move platform_data definitions 2012-09-14 11:18:10 +02:00
cm-x300.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
colibri-evalboard.c ARM: pxa: fix colibri build 2014-03-21 18:26:02 +01:00
colibri-pxa3xx.c ARM: pxa: move platform_data definitions 2012-09-14 11:18:10 +02:00
colibri-pxa270-income.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
colibri-pxa270.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
colibri-pxa300.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
colibri-pxa320.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
corgi_pm.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
corgi.c ARM: pxa: fix typo 'CONFIG_SPI_PXA2XX_MASTER' 2014-07-11 08:50:53 +08:00
csb701.c
csb726.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
devices.c ARM: pxa3xx: provide specific platform_devices for all ssp ports 2014-09-19 01:58:43 +08:00
devices.h ARM: pxa3xx: provide specific platform_devices for all ssp ports 2014-09-19 01:58:43 +08:00
em-x270.c ARM: pxa: remove IRQF_DISABLED 2013-12-11 17:32:41 -08:00
eseries.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
ezx.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
generic.c ARM: pxa: fix section mismatch warning for pxa_timer_nodt_init 2014-09-09 16:42:25 +02:00
generic.h reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
gumstix.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
h5000.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
himalaya.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
hx4700.c ARM: pxa: hx4700: use PWM_LOOKUP to initialize struct pwm_lookup 2014-05-21 11:19:44 +02:00
icontrol.c can: mcp251x: Replace power callbacks with regulator API 2013-08-21 09:28:29 +02:00
idp.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
irq.c ARM: pxa: Remove unused variables 2013-12-11 17:33:01 -08:00
Kconfig pwm: Changes for v3.15-rc1 2014-04-05 18:32:31 -07:00
littleton.c Input: pxa27x-keypad - use matrix_keymap for matrix keys 2013-06-18 22:56:51 -07:00
lpd270.c ARM: replace strnicmp with strncasecmp 2014-10-14 02:18:24 +02:00
lubbock.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
magician.c ARM: pxa: remove IRQF_DISABLED 2013-12-11 17:32:41 -08:00
mainstone.c ARM: pxa: remove IRQF_DISABLED 2013-12-11 17:32:41 -08:00
Makefile Revert "arm: pxa: Transition pxa27x to clk framework" 2014-10-03 16:30:53 -07:00
Makefile.boot ARM: 7022/1: allow to detect conflicting zreladdrs 2011-10-17 09:12:40 +01:00
mfp-pxa2xx.c ARM: PXA2xx: MFP: fix potential direction bug 2012-04-27 11:14:06 +08:00
mfp-pxa3xx.c ARM / PXA: Use struct syscore_ops for "core" power management 2011-04-24 19:16:09 +02:00
mioa701_bootresume.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
mioa701.c ARM: pxa: Add dummy backlight power supply on Mitac Mio A701 2014-02-11 11:33:09 +08:00
mp900.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
mxm8x10.c ARM: pxa: move platform_data definitions 2012-09-14 11:18:10 +02:00
palm27x.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
palmld.c Input: pxa27x-keypad - use matrix_keymap for matrix keys 2013-06-18 22:56:51 -07:00
palmt5.c Input: pxa27x-keypad - use matrix_keymap for matrix keys 2013-06-18 22:56:51 -07:00
palmtc.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
palmte2.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
palmtreo.c Input: pxa27x-keypad - use matrix_keymap for matrix keys 2013-06-18 22:56:51 -07:00
palmtx.c Input: pxa27x-keypad - use matrix_keymap for matrix keys 2013-06-18 22:56:51 -07:00
palmz72.c Input: pxa27x-keypad - use matrix_keymap for matrix keys 2013-06-18 22:56:51 -07:00
pcm027.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
pcm990-baseboard.c ARM: pxa: remove IRQF_DISABLED 2013-12-11 17:32:41 -08:00
pm.c ARM: pm: move cpu_init() call into core code 2011-06-24 08:48:43 +01:00
poodle.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
pxa2xx.c ARM: pxa: move platform_data definitions 2012-09-14 11:18:10 +02:00
pxa3xx-ulpi.c ARM: pxa: use module_platform_driver macro 2012-11-06 05:59:59 -08:00
pxa3xx.c ARM: pxa3xx: provide specific platform_devices for all ssp ports 2014-09-19 01:58:43 +08:00
pxa25x.c ARM: pxa: Move UNCACHED_PHYS_0 mapping from generic.c to pxa2[57]x.c 2014-07-12 09:51:40 -07:00
pxa27x.c Revert "arm: pxa: Transition pxa27x to clk framework" 2014-10-03 16:30:53 -07:00
pxa300.c ARM: pxa: use common IOMEM definition 2012-03-25 14:36:31 -05:00
pxa320.c ARM: pxa: use common IOMEM definition 2012-03-25 14:36:31 -05:00
pxa930.c ARM: pxa: move PXA_GPIO_TO_IRQ macro 2013-04-11 10:00:05 +08:00
pxa-dt.c ARM: pxa: fix DT auxdata for pxa3xx-gpio 2013-08-13 15:51:01 -07:00
raumfeld.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
reset.c ARM: pxa: prevent PXA270 occasional reboot freezes 2013-12-11 16:35:16 -08:00
saar.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
sharpsl_pm.c ARM: pxa: remove IRQF_DISABLED 2013-12-11 17:32:41 -08:00
sleep.S ARM: pxa: correct errata number for PXA270 2014-07-04 20:30:42 +08:00
smemc.c ARM: PXA3xx: program the CSMSADRCFG register 2013-01-23 16:56:32 +08:00
spitz_pm.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
spitz.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
standby.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
stargate2.c misc: (at24) move header to linux/platform_data/ 2013-09-30 06:02:34 +02:00
tavorevb.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
tosa-bt.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
tosa.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
trizeps4.c ARM: pxa: remove IRQF_DISABLED 2013-12-11 17:32:41 -08:00
viper.c arch/arm/mach-pxa: replace strict_strto call with kstrto 2014-08-08 15:57:27 -07:00
vpac270.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
xcep.c ARM: delete struct sys_timer 2012-12-24 09:36:38 -07:00
z2.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00
zeus.c ARM: pxa: zeus: Replace OHCI init/exit functions with a regulator 2014-04-24 13:05:32 -07:00
zylonite_pxa300.c gpio: (gpio-pca953x) move header to linux/platform_data/ 2013-08-29 12:33:52 -07:00
zylonite_pxa320.c
zylonite.c ARM: pxa: Initialize PWM backlight enable_gpio field 2013-10-16 09:05:57 +02:00