forcedeth: use unicast receive mode for WoL
authorTim Mann <mann@vmware.com>
Thu, 14 Jun 2007 20:16:38 +0000 (13:16 -0700)
committerJeff Garzik <jeff@garzik.org>
Wed, 20 Jun 2007 23:15:04 +0000 (19:15 -0400)
I happened to notice that a system with an NVidia NIC using the
forcedeth driver won't wake-on-LAN if the interface was in promiscuous
mode when you power off.  By experiment, it looks like
the hardware needs to have NvRegPacketFilterFlags set to
NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR (i.e., receive unicast packets to my
address) in order for WoL to work.

Jeff Garzik writes: "NVIDIA says the patch looks OK."  I didn't venture
to insert a signed-off-by line with his name on it, though.

Signed-off-by: Tim Mann <mann@vmware.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/forcedeth.c

index 32788ca40d25c4cbc726d96451d181038128c003..42ba1c012ee2c3ad0f20ec14588bd5751507e8f3 100644 (file)
@@ -4825,8 +4825,10 @@ static int nv_close(struct net_device *dev)
 
        drain_ring(dev);
 
-       if (np->wolenabled)
+       if (np->wolenabled) {
+               writel(NVREG_PFF_ALWAYS|NVREG_PFF_MYADDR, base + NvRegPacketFilterFlags);
                nv_start_rx(dev);
+       }
 
        /* FIXME: power down nic */