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