gianfar: Restore promisc mode on gfar_init_mac()
authorClaudiu Manoil <claudiu.manoil@freescale.com>
Wed, 23 Jan 2013 00:18:36 +0000 (00:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 23 Jan 2013 18:54:11 +0000 (13:54 -0500)
Reactivate promiscuous mode in H/W upon gfar_init_mac(), if the
net dev requires it (IFF_PROMISC flag set).
This way the promisc mode is preserved accross device reset conditions
like tx timeout, device restore, a.s.o.

Signed-off-by: Voncken C Acksys <cedric.voncken@acksys.fr>
Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/gianfar.c

index bffb2edd68584633aa8b5248fc27faf0990a05d5..e765b9b49a2066946ecc96a91de3b0081cb118b9 100644 (file)
@@ -355,6 +355,10 @@ static void gfar_init_mac(struct net_device *ndev)
                gfar_write(&regs->rir0, DEFAULT_RIR0);
        }
 
+       /* Restore PROMISC mode */
+       if (ndev->flags & IFF_PROMISC)
+               rctrl |= RCTRL_PROM;
+
        if (ndev->features & NETIF_F_RXCSUM)
                rctrl |= RCTRL_CHECKSUMMING;