lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <c28a67ba-0d10-75d5-516c-b494f927eeaf@telliq.com>
Date:   Sat, 21 Nov 2020 14:09:59 +0100
From:   Jan Kardell <jan.kardell@...liq.com>
To:     OpenWrt Development List <openwrt-devel@...ts.openwrt.org>,
        Linux ARM <linux-arm-kernel@...ts.infradead.org>,
        linux-kernel@...r.kernel.org
Cc:     Russell King <linux@...linux.org.uk>
Subject: arm: lockdep complaining about static memory allocations

Jan Kardell skrev:
> Hi,
>
> I'm lifting our old barrier_braker code on an omap am3552 custom 
> board, and building it on master per 13 november. I currently run it 
> as an zImage-initramfs, but the board normally uses ubifs on nand 
> flash. I get exceptions logged to dmesg, included snippets from the 
> logsĀ  as attachment. I also saw it with an older kernel, 5.4.68 from 
> september. I'm not sure how to debug this and would be happy if 
> someone can point me in the right direction. It looks to me it is 
> something wrong with allocating/freeing net devices in the kernel. 
> Maybe there are OpenWrt patches affecting this?
>
> Regards
> //Jan

Turns out this is not an OpenWrt thing. After enabling CONFIG_PREEMT i 
started to see allocation of net devices in the memory that previously 
was initmem, and lockdep detect that as static memory. To linux 5.2 a 
patch for s390 in commit 7a5da02de8d6eafba99556f8c98e5313edebb449 added 
the function arch_is_kernel_initmem_freed(). It has later been added for 
powerpc and x86 too. I now believe that is needed for arm as well. 
Though I don't know the inner workings of memory management so I don't 
know if an identical solution as s390 and powerpc will do for arm. The 
commit message for s390 says "virt == phys", but that seems not to be 
the case for my arm system.

I did a "dummy" arch_is_kernel_initmem_freed() with a printk to verify 
that the address is in the initmem area:

|[ 73.966965] Address 0xc0e6e630 is in initmem! [ 73.978934] 
------------[ cut here ]------------ [ 74.001003] WARNING: CPU: 0 PID: 
2008 at kernel/locking/lockdep.c:1119 alloc_netdev_mqs+0xb4/0x3b0|


This also makes me wonder if more archs needs this and maybe a more 
general solution, but that's definitely out of my league...

//Jan

-- 

"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone."
- Bjarne Stroustrup


View attachment "dmesg-5.4.75.txt" of type "text/plain" (5577 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ