Page 1 of 1

Kernel 4.2.6 won't boot on arm imx6

PostPosted: Fri Nov 20, 2015 2:10 pm
by robelmax
Hi,

I am encoutering an issue with the grsecurity patch grsecurity-3.1-4.2.6-201511182042.patch, my system won't boot. I am working on a Freescale imx6q board (Utilite) and my kernel boot correctly without grsecurity patch.
Code: Select all
Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.2.6-grsec-00003-ga392222 (m@b) (gcc version 5.2.0 (crosstool-NG crosstool-ng-1.21.0-209-g85f9814) ) #15 SMP Thu Nov 19 19:07:26 CET 2015
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: CompuLab CM-FX6
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] cma: Reserved 16 MiB at 0xbf000000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PAX: swapper:0, uid/euid: 0/0, attempted to access userland memory at 00000000
[    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[    0.000000] pgd = 80004000
[    0.000000] [00000000] *pgd=00000000
[    0.000000] Internal error: Oops: 805 [#1] SMP ARM
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.2.6-grsec-00003-ga392222 #15
[    0.000000] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[    0.000000] task: 80d07ff8 ti: 80d00000 task.ti: 80d00000
[    0.000000] PC is at v7_dma_clean_range+0x20/0x38
[    0.000000] LR is at paging_init+0x13d4/0x1598
[    0.000000] pc : [<8011da98>]    lr : [<80c1098c>]    psr: 800001d3
[    0.000000] sp : 80d01ea0  ip : 80d09aa4  fp : 80d01f34
[    0.000000] r10: 80b4748c  r9 : eba5ba40  r8 : bd375435
[    0.000000] r7 : 80d5340c  r6 : 80d131f0  r5 : f8a67723  r4 : 00000000
[    0.000000] r3 : 0000001f  r2 : 00000020  r1 : 80d12c99  r0 : 00000000
[    0.000000] Flags: Nzcv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
[    0.000000] Control: 10c5387d  Table: 1000404a  DAC: 00000011
[    0.000000] Process swapper (pid: 0, stack limit = 0x80d00210)
[    0.000000] Stack: (0x80d01ea0 to 0x80d02000)
[    0.000000] 1ea0: 80dcacd0 80c8ce10 80d9efd0 10100000 00010c00 01a95eea 9205f18c 4173e41b
[    0.000000] 1ec0: 79585377 5c081360 50000000 290f2a68 438665e2 0064fb56 80d00000 00010d00
[    0.000000] 1ee0: 3f300000 0000000a 80100000 00010100 00b00000 00000009 ffff1000 00010b4a
[    0.000000] 1f00: 00001000 00000007 80d01f34 80c8ce10 80008000 a375524f 40d6e45a 80900000
[    0.000000] 1f20: 40d6e45a 80c8e0f0 80d01fa4 80d01f38 80c0858c 80c0f5c4 0000006c 10c5387d
[    0.000000] 1f40: 00000000 80c8e0ec b4ef2135 6439fbe2 80d01fc4 80d53140 80d01f7c 80d01f68
[    0.000000] 1f60: 80167cc0 80167644 80c96230 80d01f9c 80d01f94 80d01f80 808476f4 00000001
[    0.000000] 1f80: 00000000 80c8e0ec 80d028c0 1336ebad 9554da95 00000000 80d01ff4 80d01fa8
[    0.000000] 1fa0: 80c0139c 80c0792c 00000000 00000000 00000000 00000000 00000000 00000000
[    0.000000] 1fc0: 00000000 80c8e0f0 00000000 80d53294 80d028d8 80c8e0ec 80d09184 1000406a
[    0.000000] 1fe0: 412fc09a 00000000 00000000 80d01ff8 1000807c 80c01318 00000000 00000000
[    0.000000] Backtrace:
[    0.000000] [<80c0f5b8>] (paging_init+0x0/0x1598) from [<80c0858c>] (setup_arch+0xc6c/0x1520)
[    0.000000]  r10:80c8e0f0 r9:40d6e45a r8:80900000 r7:40d6e45a r6:a375524f r5:80008000
[    0.000000]  r4:80c8ce10
[    0.000000] [<80c07920>] (setup_arch+0x0/0x1520) from [<80c0139c>] (start_kernel+0x90/0x554)
[    0.000000]  r10:00000000 r9:9554da95 r8:1336ebad r7:80d028c0 r6:80c8e0ec r5:00000000
[    0.000000]  r4:00000001
[    0.000000] [<80c0130c>] (start_kernel+0x0/0x554) from [<1000807c>] (0x1000807c)
[    0.000000]  r10:00000000 r9:412fc09a r8:1000406a r7:80d09184 r6:80c8e0ec r5:80d028d8
[    0.000000]  r4:80d53294
[    0.000000] Code: e1a02312 e2423001 e1c00003 f57ff04f (ee070oa)
[    0.000000] ---[ end trace e592415544cd1b67 ]---
[    0.000000] Kernel panic - not syncing: grsec: halting the system due to suspicious kernel crash caused by root
[    0.000000] ---[ end Kernel panic - not syncing: grsec: halting the system due to suspicious kernel crash caused by root

The corresponding lines:
Code: Select all
$ addr2line -e ./vmlinux 80c0f5b8 80c07920 80c0130c
/home/dev/linux-stable/arch/arm/mm/mmu.c:1591
/home/dev/linux-stable/arch/arm/kernel/setup.c:940
/home/dev/linux-stable/init/main.c:531


Here is my configuration: http://pastebin.com/3KFuBi5q

I also tried to make a kernel without KERNEXEC and UDEREF in my configuration, but I am still stuck with the same backtrace.

grsecurity is a bit new to me, so I don't know where to start. Do you have an idea where my problem come from ? Any suggestion is welcolme.
Thank you

Re: Kernel 4.2.6 won't boot on arm imx6

PostPosted: Fri Nov 20, 2015 3:21 pm
by PaX Team
can you resolve pc/lr (8011da98/80c1098c) as well please?

Re: Kernel 4.2.6 won't boot on arm imx6

PostPosted: Fri Nov 20, 2015 3:37 pm
by robelmax
Thank you for your quick reply.

Here is the corresponding lines for pc/lr:
Code: Select all
$ addr2line -e ./vmlinux  8011da98 80c1098c
/home/dev/linux-stable/arch/arm/mm/cache-v7.S:389
/home/dev/linux-stable/arch/arm/mm/mmu.c:1381