Maybe I got A BUG with pfeng? In atomic context should not call kmalloc(GFP_KERNEL)
BUG: sleeping function called from invalid context at mm/slab.h:514
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 287, name: ip
4 locks held by ip/287:
#0: ffffffd012018188 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x3b0/0xad0
#1: ffffff8008fee268 (_xmit_ETHER){+...}-{2:2}, at: __dev_open+0x31c/0x470
#2: ffffff80041df4c0 (mutex#10){+.+.}-{3:3}, at: pfe_phy_if_add_mac_addr+0x38/0x24c [pfeng]
#3: ffffff80041d0480 (mutex#12){+.+.}-{3:3}, at: pfe_mac_db_add_addr+0x38/0x290 [pfeng]
Preemption disabled at:
[<ffffffd010fbe91c>] __dev_open+0x30c/0x470
CPU: 1 PID: 287 Comm: ip Tainted: G O 5.10.41 #3
Hardware name: Freescale S32G274 (DT)
Call trace:
dump_backtrace+0x0/0x48c
show_stack+0x2c/0x40
dump_stack+0x18c/0x210
___might_sleep+0x378/0x550
__might_sleep+0x9c/0x190
__kmalloc+0x2cc/0x45c
oal_mm_malloc+0x24/0x34 [pfeng]
pfe_mac_db_add_addr+0xb0/0x290 [pfeng]
pfe_phy_if_add_mac_addr+0x144/0x24c [pfeng]
pfeng_hif_chnl_fill_rx_buffers+0x2644/0x5f00 [pfeng]
pfeng_hif_chnl_fill_rx_buffers+0x287c/0x5f00 [pfeng]
__hw_addr_sync_dev+0x2dc/0x4a0
pfeng_hif_chnl_fill_rx_buffers+0x39e4/0x5f00 [pfeng]
__dev_set_rx_mode+0x1d4/0x3c4
__dev_open+0x324/0x470
__dev_change_flags+0x478/0x630
dev_change_flags+0x90/0x160
do_setlink+0x720/0x3240
__rtnl_newlink+0xa38/0x1380
rtnl_newlink+0x74/0xbc
rtnetlink_rcv_msg+0x3fc/0xad0
netlink_rcv_skb+0x200/0x3f4
rtnetlink_rcv+0x28/0x40
netlink_unicast+0x4e4/0x754
netlink_sendmsg+0x7d4/0xc8c
____sys_sendmsg+0x6dc/0x824
___sys_sendmsg+0x10c/0x184
__sys_sendmsg+0xf0/0x1b0
__arm64_sys_sendmsg+0x74/0xb0
el0_svc_common.constprop.0+0x158/0x510
do_el0_svc+0xec/0x114
el0_svc+0x24/0x34
el0_sync_handler+0x17c/0x180
el0_sync+0x180/0x1c0
Best wishes!!!