Andrew Morton <[EMAIL PROTECTED]> :
>
> cond_resched() called from softirq, amongst other problems.
Seems too simple to be right. Btw calling dev_set_mac_address
may hurt some tg3:
-> tg3_set_mac_addr
-> tg3_netif_stop (depending on the content of their sram):
-> netif_poll_disable
-> schedule_timeout_interruptible
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index e76539a..a4bcfe2 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -673,7 +673,7 @@ void rtmsg_ifinfo(int type, struct net_device *dev,
unsigned change)
struct sk_buff *skb;
int err = -ENOBUFS;
- skb = nlmsg_new(if_nlmsg_size(0), GFP_KERNEL);
+ skb = nlmsg_new(if_nlmsg_size(0), GFP_ATOMIC);
if (skb == NULL)
goto errout;
@@ -681,7 +681,7 @@ void rtmsg_ifinfo(int type, struct net_device *dev,
unsigned change)
/* failure implies BUG in if_nlmsg_size() */
BUG_ON(err < 0);
- err = rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_KERNEL);
+ err = rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC);
errout:
if (err < 0)
rtnl_set_sk_err(RTNLGRP_LINK, err);
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html