The batadv_wifi_net_device_insert() is called with ASSERT_RTNL() held, but
not inside a spinlock or another context which prevents "might_sleep"
functions. To relax the requirements for the allocator, use GFP_KERNEL.

Signed-off-by: Sven Eckelmann <[email protected]>
---
 net/batman-adv/hard-interface.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index 80eaac0e..63caabf5 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -972,11 +972,11 @@ batadv_wifi_net_device_insert(struct net_device *net_dev, 
u32 wifi_flags)
 
        ASSERT_RTNL();
 
-       device_state = kzalloc_obj(*device_state, GFP_ATOMIC);
+       device_state = kzalloc_obj(*device_state, GFP_KERNEL);
        if (!device_state)
                return -ENOMEM;
 
-       netdev_hold(net_dev, &device_state->dev_tracker, GFP_ATOMIC);
+       netdev_hold(net_dev, &device_state->dev_tracker, GFP_KERNEL);
        device_state->netdev = net_dev;
        WRITE_ONCE(device_state->wifi_flags, wifi_flags);
 

-- 
2.47.3

Reply via email to