linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ardb@kernel.org>
To: Florian Fainelli <f.fainelli@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Abbott Liu <liuwenliang@huawei.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Russell King <linux@armlinux.org.uk>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Andrey Ryabinin <aryabinin@virtuozzo.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 0/6 v14] KASan for Arm
Date: Sun, 4 Oct 2020 11:09:27 +0200	[thread overview]
Message-ID: <CAMj1kXFWOnFcpKKVyDos4zLXkogPacrgtScVX=5uRYLXc+hxzA@mail.gmail.com> (raw)
In-Reply-To: <CAMj1kXGZ3ACYSs-Py8TM+odWkDkG-5GGZqCvnmjZNwjs759ybw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 6078 bytes --]

On Sun, 4 Oct 2020 at 10:41, Ard Biesheuvel <ardb@kernel.org> wrote:
>
> On Sun, 4 Oct 2020 at 10:06, Ard Biesheuvel <ardb@kernel.org> wrote:
> >
> > On Sat, 3 Oct 2020 at 17:50, Ard Biesheuvel <ardb@kernel.org> wrote:
> > >
> > > On Thu, 1 Oct 2020 at 21:19, Florian Fainelli <f.fainelli@gmail.com> wrote:
> > > >
> > > >
> > > >
> > > > On 10/1/2020 8:22 AM, Linus Walleij wrote:
> > > > > This is the 14th iteration of KASan for ARM/Aarch32.
> > > > >
> > > > > I have added one patch in the beginning of the series to
> > > > > fix the issue when the DTB (often attached DTB) ends up
> > > > > in lowmem. It also amends ARM to copy the device tree
> > > > > instead of just unflattening it and using it from where
> > > > > it is.
> > > > >
> > > > > This fixes my particular issue on the Qualcomm APQ8060
> > > > > and I hope it may also solve Florian's issue and what
> > > > > Ard has been seeing. If you inspect patch 1/6 you can
> > > > > see what has been going on for me. My hypothesis about
> > > > > what was going on was mostly right.
> > > > >
> > > > > You are encouraged to test this patch set to find memory out
> > > > > of bounds bugs with ARM32 platforms and drivers.
> > > > >
> > > > > There is a git branch you can pull in:
> > > > > https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git/log/?h=kasan
> > > >
> > > > It does appear to be slight better, although all platforms that I have
> > > > where memory starts at physical address 0 cannot boot, attached logs
> > > > which are all more or less the same.
> > > >
> > > > The physical memory map looks like this:
> > > >
> > > > 0..3GB -> DRAM
> > > > 3GB..4GB -> Registers, Boot ROM, Boot SRAM
> > > > 4GB..12GB -> DRAM extension
> > > >
> > > > Do any of the platforms you use for testing have a similar memory map?
> > > > Could you try to contrive a QEMU machine to have something similar in
> > > > case that helps reproducing these failures?
> > > >
> > >
> > > I am getting very similar failures on a Raspberry Pi4 booting in
> > > 32-bit mode from U-boot+EFI
> > >
> > > Full log attached.
> > >
> > > I will try to dig a bit deeper.
> >
> > OK, one obvious issue with the code as-is is that the following routine
> >
> > static __init void *kasan_alloc_block(size_t size)
> > {
> >   return memblock_alloc_try_nid(size, size, __pa(MAX_DMA_ADDRESS),
> >                                 MEMBLOCK_ALLOC_KASAN, NUMA_NO_NODE);
> > }
> >
> > is called after the early shadow is unmapped, but before the permanent
> > shadow is in place. memblock_alloc_try_nid() clears the newly
> > allocated memory using memset(), which checks the associated shadow,
> > which is unmapped -> BOOM.
> >
> > With the following implementation, I can avoid the crash similar to
> > the one Florian is reporting:
> >
> > static __init void *kasan_alloc_block(size_t size)
> > {
> >   void *p = memblock_alloc_try_nid_raw(size, size,
> >     __pa(MAX_DMA_ADDRESS), MEMBLOCK_ALLOC_KASAN,
> >     NUMA_NO_NODE);
> >
> >   if (p)
> >     __memset(p, 0, size);
> >   return p;
> > }
> >
> > However, I still get a hang a bit later, and I haven't tracked that down yet.
>
> The above issue appears to be related to TLB maintenance. So keeping
> kasan_alloc_block() as is, and doing
>
> --- a/arch/arm/mm/kasan_init.c
> +++ b/arch/arm/mm/kasan_init.c
> @@ -223,6 +223,8 @@ void __init kasan_init(void)
>                 __pgd(__pa(tmp_pmd_table) | PMD_TYPE_TABLE | L_PGD_SWAPPER));
>  #endif
>         cpu_switch_mm(tmp_pgd_table, &init_mm);
> +       local_flush_tlb_all();
> +
>         clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
>
>         kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_START),
>
> instead fixes the crash as well.
>
> Still have the hang right after though ..

OK, booting now - turns out the switch back to swapper_pg_dir needs a
proper TLB flush as well.

Full patch below - with that applied, I can boot the RPi4 to the point
where it wants to mount the rootfs (but I don't have a 32-bit rootfs
at hand)


The first change avoids reallocating KASAN blocks when a range gets
mapped twice - this occurs when mapping the DTB space explicitly
(although I am not sure that that is still needed now that you move
the DTB)

diff --git a/arch/arm/mm/kasan_init.c b/arch/arm/mm/kasan_init.c
index 6fd9bc70970f..6877212a370d 100644
--- a/arch/arm/mm/kasan_init.c
+++ b/arch/arm/mm/kasan_init.c
@@ -45,11 +45,15 @@

        do {
                pte_t entry;
+               void *p;

                next = addr + PAGE_SIZE;

                if (!early) {
-                       void *p = kasan_alloc_block(PAGE_SIZE);
+                       if (!pte_none(READ_ONCE(*ptep)))
+                               continue;
+
+                       p = kasan_alloc_block(PAGE_SIZE);
                        if (!p) {
                                panic("%s failed to alloc pte for
address 0x%lx\n",
                                      __func__, addr);
@@ -223,11 +227,15 @@
                __pgd(__pa(tmp_pmd_table) | PMD_TYPE_TABLE | L_PGD_SWAPPER));
 #endif
        cpu_switch_mm(tmp_pgd_table, &init_mm);
+       local_flush_tlb_all();
+
        clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);

        kasan_populate_early_shadow(kasan_mem_to_shadow((void *)VMALLOC_START),
                                    kasan_mem_to_shadow((void *)-1UL) + 1);

+       __memblock_dump_all();
+
        for_each_memblock(memory, reg) {
                void *start = __va(reg->base);
                void *end = __va(reg->base + reg->size);
@@ -277,10 +285,11 @@
                           pfn_pte(virt_to_pfn(kasan_early_shadow_page),
                                __pgprot(pgprot_val(PAGE_KERNEL)
                                         | L_PTE_RDONLY)));
+
+       cpu_switch_mm(swapper_pg_dir, &init_mm);
        local_flush_tlb_all();

        memset(kasan_early_shadow_page, 0, PAGE_SIZE);
-       cpu_switch_mm(swapper_pg_dir, &init_mm);
        pr_info("Kernel address sanitizer initialized\n");
        init_task.kasan_depth = 0;
 }

Full boot log attached.

[-- Attachment #2: screen-exchange --]
[-- Type: application/octet-stream, Size: 23457 bytes --]

Initialising SDRAM 'Micron' 16Gb x2 total-size: 32 Gbit 3200
Loading recovery.elf hnd: 0x00000000
Failed to read recovery.elf error: 6
Loading start4.elf hnd: 0x00000206
Loading fixup4.dat hnd: 0x00000202
MEM GPU: 76 ARM: 948 TOTAL: 1024
FIXUP src: 128 256 dst: 948 1024
Starting start4.elf @ 0xfec00200

INFO:    BL33 will boot in Non-secure AArch32 Hypervisor mode
NOTICE:  BL31: v2.3(debug):v2.3-140-g967a6d162d9d
NOTICE:  BL31: Built : 17:26:28, Jun 11 2020
INFO:    Changed device tree to advertise PSCI.
INFO:    ARM GICv2 driver initialized
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a72: CPU workaround for 859971 was applied
INFO:    BL31: cortex_a72: CPU workaround for cve_2017_5715 was applied
INFO:    BL31: cortex_a72: CPU workaround for cve_2018_3639 was applied
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x20000
INFO:    SPSR = 0x1da


U-Boot 2020.07-rc4-00027-g7f3689f236cd (Jun 11 2020 - 18:07:34 +0200)

DRAM:  3.9 GiB
RPI 4 Model B (0xc03111)
MMC:   mmcnr@7e300000: 1, emmc2@7e340000: 0
Loading Environment from FAT... OK
In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@7d580000
Hit any key to stop autoboot:  0
ERROR: reserving fdt memory region failed (addr=0 size=80000)
15188480 bytes read in 842 ms (17.2 MiB/s)
Card did not respond to voltage select!
Scanning disk mmcnr@7e300000.blk...
Disk mmcnr@7e300000.blk not ready
Scanning disk emmc2@7e340000.blk...
Found 2 disks
EFI stub: Entering in HYP mode with MMU enabled
EFI stub: Booting Linux Kernel...
EFI stub: ERROR: Could not determine UEFI Secure Boot status.
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.9.0-rc7+ (ard@gambale) (arm-linux-gnueabihf-gcc (Debian 8.3.0-2) 8.3.0, GNU ld (GNU Binutils for Debian) 2.31.1) #201 SMP PREEMPT Sun Oct 4 11:00:50 CEST 2020
[    0.000000] CPU: ARMv7 Processor [410fd083] revision 3 (ARMv7), cr=70c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi 4 Model B Rev 1.1
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] efi: EFI v2.80 by Das U-Boot
[    0.000000] efi: RTPROP=0x39f52040 SMBIOS=0x39f4c000 MEMRESERVE=0x390c6040
[    0.000000] Reserved memory: created CMA memory pool at 0x000000002c000000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] ATAGs/DTB found in lowmem, skip clearing PMD @0xc7c00000
[    0.000000] ATAGs/DTB found in lowmem, skip clearing PMD @0xc7e00000
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000080000-0x000000002fffffff]
[    0.000000]   Normal   empty
[    0.000000]   HighMem  [mem 0x0000000030000000-0x00000000fbffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000080000-0x00000000001fffff]
[    0.000000]   node   0: [mem 0x0000000000200000-0x0000000039f46fff]
[    0.000000]   node   0: [mem 0x0000000039f47000-0x0000000039f4afff]
[    0.000000]   node   0: [mem 0x0000000039f4b000-0x0000000039f4bfff]
[    0.000000]   node   0: [mem 0x0000000039f4c000-0x0000000039f4cfff]
[    0.000000]   node   0: [mem 0x0000000039f4d000-0x0000000039f4efff]
[    0.000000]   node   0: [mem 0x0000000039f4f000-0x0000000039f4ffff]
[    0.000000]   node   0: [mem 0x0000000039f50000-0x0000000039f51fff]
[    0.000000]   node   0: [mem 0x0000000039f52000-0x0000000039f54fff]
[    0.000000]   node   0: [mem 0x0000000039f55000-0x0000000039f56fff]
[    0.000000]   node   0: [mem 0x0000000039f57000-0x0000000039f5afff]
[    0.000000]   node   0: [mem 0x0000000039f5b000-0x000000003b36bfff]
[    0.000000]   node   0: [mem 0x000000003b36c000-0x000000003b36cfff]
[    0.000000]   node   0: [mem 0x000000003b36d000-0x000000003b3fffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000fbffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000080000-0x00000000fbffffff]
[    0.000000] MEMBLOCK configuration:
[    0.000000]  memory size = 0x00000000f7380000 reserved size = 0x00000000094ec04b
[    0.000000]  memory.cnt  = 0xf
[    0.000000]  memory[0x0]     [0x0000000000080000-0x00000000001fffff], 0x0000000000180000 bytes flags: 0x4
[    0.000000]  memory[0x1]     [0x0000000000200000-0x0000000039f46fff], 0x0000000039d47000 bytes flags: 0x0
[    0.000000]  memory[0x2]     [0x0000000039f47000-0x0000000039f4afff], 0x0000000000004000 bytes flags: 0x4
[    0.000000]  memory[0x3]     [0x0000000039f4b000-0x0000000039f4bfff], 0x0000000000001000 bytes flags: 0x0
[    0.000000]  memory[0x4]     [0x0000000039f4c000-0x0000000039f4cfff], 0x0000000000001000 bytes flags: 0x4
[    0.000000]  memory[0x5]     [0x0000000039f4d000-0x0000000039f4efff], 0x0000000000002000 bytes flags: 0x0
[    0.000000]  memory[0x6]     [0x0000000039f4f000-0x0000000039f4ffff], 0x0000000000001000 bytes flags: 0x4
[    0.000000]  memory[0x7]     [0x0000000039f50000-0x0000000039f51fff], 0x0000000000002000 bytes flags: 0x0
[    0.000000]  memory[0x8]     [0x0000000039f52000-0x0000000039f54fff], 0x0000000000003000 bytes flags: 0x4
[    0.000000]  memory[0x9]     [0x0000000039f55000-0x0000000039f56fff], 0x0000000000002000 bytes flags: 0x0
[    0.000000]  memory[0xa]     [0x0000000039f57000-0x0000000039f5afff], 0x0000000000004000 bytes flags: 0x4
[    0.000000]  memory[0xb]     [0x0000000039f5b000-0x000000003b36bfff], 0x0000000001411000 bytes flags: 0x0
[    0.000000]  memory[0xc]     [0x000000003b36c000-0x000000003b36cfff], 0x0000000000001000 bytes flags: 0x4
[    0.000000]  memory[0xd]     [0x000000003b36d000-0x000000003b3fffff], 0x0000000000093000 bytes flags: 0x0
[    0.000000]  memory[0xe]     [0x0000000040000000-0x00000000fbffffff], 0x00000000bc000000 bytes flags: 0x0
[    0.000000]  reserved.cnt  = 0xa
[    0.000000]  reserved[0x0]   [0x0000000000203000-0x0000000000207fff], 0x0000000000005000 bytes flags: 0x0
[    0.000000]  reserved[0x1]   [0x0000000000400000-0x000000000314453f], 0x0000000002d44540 bytes flags: 0x0
[    0.000000]  reserved[0x2]   [0x0000000007d00000-0x0000000007d0b99e], 0x000000000000b99f bytes flags: 0x0
[    0.000000]  reserved[0x3]   [0x0000000007f00000-0x0000000007f0efff], 0x000000000000f000 bytes flags: 0x0
[    0.000000]  reserved[0x4]   [0x0000000029878000-0x000000002bffefff], 0x0000000002787000 bytes flags: 0x0
[    0.000000]  reserved[0x5]   [0x000000002bfffe40-0x000000002bffff0b], 0x00000000000000cc bytes flags: 0x0
[    0.000000]  reserved[0x6]   [0x000000002bffff40-0x000000002bffff6f], 0x0000000000000030 bytes flags: 0x0
[    0.000000]  reserved[0x7]   [0x000000002bffffa0-0x000000002fffffff], 0x0000000004000060 bytes flags: 0x0
[    0.000000]  reserved[0x8]   [0x00000000390c3000-0x00000000390c3fff], 0x0000000000001000 bytes flags: 0x0
[    0.000000]  reserved[0x9]   [0x00000000390c6040-0x00000000390c604f], 0x0000000000000010 bytes flags: 0x0
[    0.000000] kasan: Mapping kernel virtual memory block: c0080000-c0200000 at shadow: b7010000-b7040000
[    0.000000] kasan: Truncate memory block c0200000-f9f47000
[    0.000000]  to c0200000-f0000000
[    0.000000] kasan: Mapping kernel virtual memory block: c0200000-f0000000 at shadow: b7040000-bd000000
[    0.000000] kasan: Skip highmem block f9f47000-f9f4b000
[    0.000000] kasan: Skip highmem block f9f4b000-f9f4c000
[    0.000000] kasan: Skip highmem block f9f4c000-f9f4d000
[    0.000000] kasan: Skip highmem block f9f4d000-f9f4f000
[    0.000000] kasan: Skip highmem block f9f4f000-f9f50000
[    0.000000] kasan: Skip highmem block f9f50000-f9f52000
[    0.000000] kasan: Skip highmem block f9f52000-f9f55000
[    0.000000] kasan: Skip highmem block f9f55000-f9f57000
[    0.000000] kasan: Skip highmem block f9f57000-f9f5b000
[    0.000000] kasan: Skip highmem block f9f5b000-fb36c000
[    0.000000] kasan: Skip highmem block fb36c000-fb36d000
[    0.000000] kasan: Skip highmem block fb36d000-fb400000
[    0.000000] kasan: Skip highmem block 00000000-bc000000
[    0.000000] kasan: Mapping kernel virtual memory block: bf800000-c0000000 at shadow: b6f00000-b7000000
[    0.000000] kasan: Mapping kernel virtual memory block: c7c00000-c7e00000 at shadow: b7f80000-b7fc0000
[    0.000000] kasan: Kernel address sanitizer initialized
[    0.000000] DTB @07d00000 (physical) copied to @e374b640 (virtual)
[    0.000000] Clear ATAGs/DTB PMD @0xc7c00000
[    0.000000] Clear ATAGs/DTB PMD @0xc7e00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 20 pages/cpu s50060 r8192 d23668 u81920
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1010689
[    0.000000] Kernel command line: rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x1f61b000-0x2361b000] (64MB)
[    0.000000] Memory: 3730416K/4050432K available (16384K kernel code, 8829K rwdata, 13344K rodata, 2048K init, 4755K bss, 254480K reserved, 65536K cma-reserved, 3264448K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x19d/0x2fe with crng_init=0
[    0.000013] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns
[    0.000083] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
[    0.000296] bcm2835: system timer (irq = 17)
[    0.009824] arch_timer: cp15 timer(s) running at 54.00MHz (phys).
[    0.009851] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[    0.009879] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[    0.009900] Switching to timer-based delay loop, resolution 18ns
[    0.013241] Console: colour dummy device 80x30
[    0.017363] printk: console [tty0] enabled
[    0.017442] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=540000)
[    0.017514] pid_max: default: 32768 minimum: 301
[    0.018442] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.018507] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.024460] CPU: Testing write buffer coherency: ok
[    0.024692] CPU0: Spectre v2: using firmware workaround
[    0.025381] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.027838] Setting up static identity map for 0x400000 - 0x400160
[    0.031116] rcu: Hierarchical SRCU implementation.
[    0.039325] Remapping and enabling EFI services.
[    0.040439] smp: Bringing up secondary CPUs ...
[    0.043207] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.043225] CPU1: Spectre v2: using firmware workaround
[    0.046186] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.046203] CPU2: Spectre v2: using firmware workaround
[    0.049125] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.049142] CPU3: Spectre v2: using firmware workaround
[    0.049394] smp: Brought up 1 node, 4 CPUs
[    0.049435] SMP: Total of 4 processors activated (432.00 BogoMIPS).
[    0.049473] CPU: All CPU(s) started in HYP mode.
[    0.049506] CPU: Virtualization extensions available.
[    0.053859] devtmpfs: initialized
[    0.272079] VFP support v0.3: implementor 41 architecture 3 part 40 variant 8 rev 0
[    0.274711] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.274794] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.284793] pinctrl core: initialized pinctrl subsystem
[    0.301167] SMBIOS 3.0 present.
[    0.301240] DMI: raspberrypi rpi/rpi, BIOS 2020.07-rc4-00027-g7f3689f236cd 06/11/2020
[    0.305060] NET: Registered protocol family 16
[    0.312134] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.336434] thermal_sys: Registered thermal governor 'step_wise'
[    0.338319] cpuidle: using governor menu
[    0.339480] No ATAGs?
[    0.339688] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.339743] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.360492] Serial: AMBA PL011 UART driver
[    7.960729] AT91: Could not find identification node
[    7.982086] iommu: Default domain type: Translated
[    7.983696] vgaarb: loaded
[    7.997570] SCSI subsystem initialized
[    8.003072] usbcore: registered new interface driver usbfs
[    8.003839] usbcore: registered new interface driver hub
[    8.004362] usbcore: registered new device driver usb
[    8.011460] pps_core: LinuxPPS API ver. 1 registered
[    8.011504] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    8.011885] PTP clock support registered
[    8.033370] clocksource: Switched to clocksource arch_sys_counter
[   10.577266] NET: Registered protocol family 2
[   10.582536] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[   10.582705] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[   10.583129] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[   10.583518] TCP: Hash tables configured (established 8192 bind 8192)
[   10.584217] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[   10.584366] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[   10.585623] NET: Registered protocol family 1
[   10.590449] RPC: Registered named UNIX socket transport module.
[   10.590495] RPC: Registered udp transport module.
[   10.590531] RPC: Registered tcp transport module.
[   10.590566] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   10.590613] PCI: CLS 0 bytes, default 64
[   10.597885] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[   10.611384] Initialise system trusted keyrings
[   10.612156] workingset: timestamp_bits=30 max_order=20 bucket_order=0
[   10.750772] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[   10.763208] NFS: Registering the id_resolver key type
[   10.763402] Key type id_resolver registered
[   10.763440] Key type id_legacy registered
[   10.765087] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[   10.765382] ntfs: driver 2.1.32 [Flags: R/O].
[   10.772851] Key type asymmetric registered
[   10.772892] Asymmetric key parser 'x509' registered
[   10.773149] bounce: pool size: 64 pages
[   10.773895] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[   10.773948] io scheduler mq-deadline registered
[   10.773984] io scheduler kyber registered
[   10.814117] ------------[ cut here ]------------
[   10.814190] WARNING: CPU: 0 PID: 1 at kernel/irq/chip.c:996 irq_set_chained_handler_and_data+0x85/0xa8
[   10.814243] Modules linked in:
[   10.814287] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.9.0-rc7+ #201
[   10.814329] Hardware name: raspberrypi rpi/rpi, BIOS 2020.07-rc4-00027-g7f3689f236cd 06/11/2020
[   10.814404] [<c0412a25>] (unwind_backtrace) from [<c040c0b7>] (show_stack+0xb/0xc)
[   10.814471] [<c040c0b7>] (show_stack) from [<c08af38d>] (dump_stack+0x8d/0xa0)
[   10.814535] [<c08af38d>] (dump_stack) from [<c0447135>] (__warn+0xe5/0xf4)
[   10.814591] [<c0447135>] (__warn) from [<c04474cb>] (warn_slowpath_fmt+0x7f/0xc8)
[   10.814658] [<c04474cb>] (warn_slowpath_fmt) from [<c04af129>] (irq_set_chained_handler_and_data+0x85/0xa8)
[   10.814734] [<c04af129>] (irq_set_chained_handler_and_data) from [<c0948ee9>] (gpiochip_add_data_with_key+0x9b5/0xf2c)
[   10.814811] [<c0948ee9>] (gpiochip_add_data_with_key) from [<c091bb51>] (bcm2835_pinctrl_probe+0x4d1/0x620)
[   10.814887] [<c091bb51>] (bcm2835_pinctrl_probe) from [<c0bd787f>] (platform_drv_probe+0x43/0x80)
[   10.814951] [<c0bd787f>] (platform_drv_probe) from [<c0bd5281>] (really_probe+0x105/0x3e4)
[   10.815013] [<c0bd5281>] (really_probe) from [<c0bd56a9>] (driver_probe_device+0x51/0x90)
[   10.815074] [<c0bd56a9>] (driver_probe_device) from [<c0bd587b>] (device_driver_attach+0x5b/0x60)
[   10.815137] [<c0bd587b>] (device_driver_attach) from [<c0bd58c3>] (__driver_attach+0x43/0x9c)
[   10.815202] [<c0bd58c3>] (__driver_attach) from [<c0bd343f>] (bus_for_each_dev+0xab/0xdc)
[   10.815269] [<c0bd343f>] (bus_for_each_dev) from [<c0bd463f>] (bus_add_driver+0x1a3/0x1c8)
[   10.815334] [<c0bd463f>] (bus_add_driver) from [<c0bd64d9>] (driver_register+0x89/0x124)
[   10.815397] [<c0bd64d9>] (driver_register) from [<c0402247>] (do_one_initcall+0x87/0x308)
[   10.815465] [<c0402247>] (do_one_initcall) from [<c2200f61>] (kernel_init_freeable+0x1a1/0x1ec)
[   10.815533] [<c2200f61>] (kernel_init_freeable) from [<c1216a9b>] (kernel_init+0x7/0xd0)
[   10.815595] [<c1216a9b>] (kernel_init) from [<c0400249>] (ret_from_fork+0x11/0x28)
[   10.815645] Exception stack(0xc02c7fb0 to 0xc02c7ff8)
[   10.815689] 7fa0:                                     00000000 00000000 00000000 00000000
[   10.815751] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   10.815809] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   10.815858] ---[ end trace e18024a7dcc03eb9 ]---
[   11.469484] Serial: 8250/16550 driver, 5 ports, IRQ sharing enabled
[   11.491993] bcm2835-aux-uart fe215040.serial: there is not valid maps for state default
[   11.498593] fe215040.serial: ttyS1 at MMIO 0xfe215040 (irq = 31, base_baud = 62499999) is a 16550
[   11.512391] SuperH (H)SCI(F) driver initialized
[   11.516928] msm_serial: driver initialized
[   11.517876] STMicroelectronics ASC driver initialized
[   11.524198] STM32 USART driver initialized
[   11.533317] iproc-rng200 fe104000.rng: hwrng registered
[   11.661993] brd: module loaded
[   11.767131] loop: module loaded
[   11.779110] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[   11.839111] libphy: Fixed MDIO Bus: probed
[   11.859421] CAN device driver interface
[   11.862792] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded
[   11.866372] e1000e: Intel(R) PRO/1000 Network Driver
[   11.866411] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[   11.867148] igb: Intel(R) Gigabit Ethernet Network Driver
[   11.867187] igb: Copyright (c) 2007-2014 Intel Corporation.
[   11.881956] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[   11.882474] usbcore: registered new interface driver pegasus
[   11.883180] usbcore: registered new interface driver asix
[   11.883688] usbcore: registered new interface driver ax88179_178a
[   11.884128] usbcore: registered new interface driver cdc_ether
[   11.884809] usbcore: registered new interface driver smsc75xx
[   11.885505] usbcore: registered new interface driver smsc95xx
[   11.885941] usbcore: registered new interface driver net1080
[   11.886377] usbcore: registered new interface driver cdc_subset
[   11.886811] usbcore: registered new interface driver zaurus
[   11.887518] usbcore: registered new interface driver cdc_ncm
[   11.900172] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   11.900221] ehci-pci: EHCI PCI platform driver
[   11.900638] ehci-platform: EHCI generic platform driver
[   11.901293] ehci-orion: EHCI orion driver
[   11.901867] SPEAr-ehci: EHCI SPEAr driver
[   11.902391] ehci-st: EHCI STMicroelectronics driver
[   11.902913] ehci-exynos: EHCI Exynos driver
[   11.903472] ehci-atmel: EHCI Atmel driver
[   11.904003] tegra-ehci: Tegra EHCI driver
[   11.904565] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   11.904699] ohci-pci: OHCI PCI platform driver
[   11.905129] ohci-platform: OHCI generic platform driver
[   11.905788] SPEAr-ohci: OHCI SPEAr driver
[   11.906328] ohci-st: OHCI STMicroelectronics driver
[   11.906852] ohci-atmel: OHCI Atmel driver
[   11.910001] usbcore: registered new interface driver usb-storage
[   11.932956] i2c /dev entries driver
[   11.976053] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[   11.989857] sdhci: Secure Digital Host Controller Interface driver
[   11.989904] sdhci: Copyright(c) Pierre Ossman
[   11.996141] Synopsys Designware Multimedia Card Interface Driver
[   12.000824] sdhci-pltfm: SDHCI platform and OF driver helper
[   12.049618] mmc0: SDHCI controller on fe300000.mmcnr [fe300000.mmcnr] using PIO
[   12.066581] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)
[   12.068466] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[   12.070357] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[   12.073635] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)
[   12.075501] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)
[   12.079504] ledtrig-cpu: registered to indicate activity on CPUs
[   12.081481] SMCCC: SOC_ID: ARCH_SOC_ID(0) returned error: ffffffff
[   12.086306] usbcore: registered new interface driver usbhid
[   12.086450] usbhid: USB HID core driver
[   12.094396] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[   12.111795] drop_monitor: Initializing network drop monitor service
[   12.126160] NET: Registered protocol family 10
[   12.138207] random: fast init done
[   12.145018] mmc0: new high speed SDIO card at address 0001
[   12.152384] Segment Routing with IPv6
[   12.152975] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[   12.161370] NET: Registered protocol family 17
[   12.161453] can: controller area network core (rev 20170425 abi 9)
[   12.163132] NET: Registered protocol family 29
[   12.163172] can: raw protocol (rev 20170425)
[   12.163206] can: broadcast manager protocol (rev 20170425 t)
[   12.163279] can: netlink gateway (rev 20190810) max_hops=1
[   12.166508] Key type dns_resolver registered
[   12.166697] Registering SWP/SWPB emulation handler
[   12.168357] Loading compiled-in X.509 certificates
[   12.235310] uart-pl011 fe201000.serial: there is not valid maps for state default
[   12.237103] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 29, base_baud = 0) is a PL011 rev2
[   14.106799] printk: console [ttyAMA0] enabled
[   14.164933] raspberrypi-firmware soc:firmware: Attached to firmware from 2020-05-01T17:55:30
[   14.322646] mmc1: SDHCI controller on fe340000.emmc2 [fe340000.emmc2] using ADMA
[   14.354019] uart-pl011 fe201000.serial: no DMA platform data
[   14.360192] Waiting for root device ...
[   14.395722] mmc1: new high speed SD card at address 1234
[   14.410071] mmcblk1: mmc1:1234 SA02G 1.84 GiB
[   14.433977]  mmcblk1: p1

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-10-04  9:11 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-01 15:22 [PATCH 0/6 v14] KASan for Arm Linus Walleij
2020-10-01 15:22 ` [PATCH 1/6 v14] ARM: Handle a device tree in lowmem Linus Walleij
2020-10-01 16:45   ` Florian Fainelli
2020-10-01 20:31     ` Linus Walleij
2020-10-02 11:01   ` Ard Biesheuvel
2020-10-04 20:50     ` Linus Walleij
2020-10-05  7:14       ` Ard Biesheuvel
2020-10-05  9:14         ` Ard Biesheuvel
2020-10-05 13:27           ` Linus Walleij
2020-10-05 13:30             ` Linus Walleij
2020-10-05 13:36             ` Ard Biesheuvel
2020-10-05 14:22               ` Ard Biesheuvel
2020-10-06  9:11                 ` Linus Walleij
2020-10-06  9:16                   ` Ard Biesheuvel
2020-10-06  9:19                     ` Linus Walleij
2020-10-06  8:47           ` Linus Walleij
2020-10-06  8:48             ` Ard Biesheuvel
2020-10-05 12:26         ` Linus Walleij
2020-10-01 15:22 ` [PATCH 2/6 v14] ARM: Disable KASan instrumentation for some code Linus Walleij
2020-10-01 15:22 ` [PATCH 3/6 v14] ARM: Replace string mem* functions for KASan Linus Walleij
2020-10-01 15:22 ` [PATCH 4/6 v14] ARM: Define the virtual space of KASan's shadow region Linus Walleij
2020-10-01 15:22 ` [PATCH 5/6 v14] ARM: Initialize the mapping of KASan shadow memory Linus Walleij
2020-10-01 15:22 ` [PATCH 6/6 v14] ARM: Enable KASan for ARM Linus Walleij
2020-10-01 19:19 ` [PATCH 0/6 v14] KASan for Arm Florian Fainelli
2020-10-01 20:34   ` Linus Walleij
2020-10-01 20:38     ` Florian Fainelli
2020-10-01 21:18   ` Linus Walleij
2020-10-01 21:29     ` Arnd Bergmann
2020-10-01 21:35     ` Florian Fainelli
2020-10-03 15:50   ` Ard Biesheuvel
2020-10-04  8:06     ` Ard Biesheuvel
2020-10-04  8:41       ` Ard Biesheuvel
2020-10-04  9:09         ` Ard Biesheuvel [this message]
2020-10-04 20:24           ` Florian Fainelli
2020-10-05  8:40           ` Linus Walleij
2020-10-06 13:21 ` Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMj1kXFWOnFcpKKVyDos4zLXkogPacrgtScVX=5uRYLXc+hxzA@mail.gmail.com' \
    --to=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=aryabinin@virtuozzo.com \
    --cc=f.fainelli@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=liuwenliang@huawei.com \
    --cc=rppt@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).