[PATCH] fix PROMISC/bridging in TLAN driver
authorJames Harper <james.harper@bendigoit.com.au>
Thu, 5 May 2005 22:14:18 +0000 (15:14 -0700)
committerJeff Garzik <jgarzik@pobox.com>
Mon, 16 May 2005 02:47:56 +0000 (22:47 -0400)
This has been a problem for me for ages.  When using bridging, the driver
is switched into promiscuous mode before the link init is complete.  The
init complete routine then resets the promisc bit on the card so the kernel
still thinks the card is in promiscuous mode but the card isn't.  doh.

I think this bug only shows up in bridging when the bridge is started at
boot time (or something else that sets promisc at the same time the card
was started).  If promisc is enabled later it works.

Here's a trivial (and hopefully correct) patch that works for me. It
just calls the promisc/multicast setup routine after init.

Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
drivers/net/tlan.c

index f0851c4240973de7bef5873b21f9248e2f7b43ba..9680a308c62b1a69cc7926159ea85916a4a94e1b 100644 (file)
@@ -2392,6 +2392,7 @@ TLan_FinishReset( struct net_device *dev )
                TLan_SetTimer( dev, (10*HZ), TLAN_TIMER_FINISH_RESET );
                return;
        }
                TLan_SetTimer( dev, (10*HZ), TLAN_TIMER_FINISH_RESET );
                return;
        }
+       TLan_SetMulticastList(dev);
 
 } /* TLan_FinishReset */
 
 
 } /* TLan_FinishReset */