Thread (14 messages) 14 messages, 6 authors, 2009-01-13

Re: [PATCH -net-next 3/4] firmware: convert tg3 driver to request_firmware()

From: David Miller <davem@davemloft.net>
Date: 2009-01-13 00:11:14
Also in: linux-next, lkml

From: Michael Marineau <redacted>
Date: Wed, 7 Jan 2009 18:06:25 -0500
-static void rfc2863_policy(struct net_device *dev)
-{
-	unsigned char operstate = default_operstate(dev);
-
-	if (operstate == dev->operstate)
-		return;
-
-	write_lock_bh(&dev_base_lock);
-
-	switch(dev->link_mode) {
-	case IF_LINK_MODE_DORMANT:
-		if (operstate == IF_OPER_UP)
-			operstate = IF_OPER_DORMANT;
-		break;
-
-	case IF_LINK_MODE_DEFAULT:
-	default:
-		break;
-	}
-
-	dev->operstate = operstate;
-
-	write_unlock_bh(&dev_base_lock);
+	if (dev->link_mode == IF_LINK_MODE_DORMANT && netif_oper_up(dev))
+		netif_userspace_dormant_on(dev);
+	else
+		netif_userspace_dormant_off(dev);
 }
Michael, this doesn't work.

The whole point of taking the dev_base_lock is to freeze the state of
->link_mode, so that we can make a decision atomically based upon it's
value and without that value changing in the middle of the decision.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help