Re: 3c59x promiscuous mode still broken (fix attached)

Donald Becker (becker@cesdis1.gsfc.nasa.gov)
Thu, 4 Apr 1996 10:39:15 -0500 (EST)


On Tue, 2 Apr 1996, Ian Goldberg wrote:

> Date: Tue, 2 Apr 1996 11:08:42 -0800 (PST)
> From: Ian Goldberg <iang@cs.berkeley.edu>
> To: linux-kernel@vger.rutgers.edu, becker@cesdis.gsfc.nasa.gov
> Cc: iang@cs.berkeley.edu
> Subject: 3c59x promiscuous mode still broken (fix attached)
>
> The 3c59x driver refuses to put the card into promiscuous mode when asked.
> Here's a simple patch (it's against 1.3.69, but it should still work...):
>
> --- 3c59x.orig.c Fri Feb 23 18:13:38 1996
> +++ 3c59x.c Fri Feb 23 18:14:24 1996
> @@ -1027,7 +1027,8 @@
> short ioaddr = dev->base_addr;
>
> if ((dev->mc_list) || (dev->flags & IFF_ALLMULTI)) {
> - outw(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD);
> + outw(SetRxFilter|RxStation|RxMulticast|RxBroadcast
> + | ((dev->flags & IFF_PROMISC) ? RxProm : 0) , ioaddr + EL3_CMD);
> if (vortex_debug > 3) {
> printk("%s: Setting Rx multicast mode, %d addresses.\n",
> dev->name, dev->mc_count);

You have identified the problem, but that's not quite the right fix.
I mis-ordered the 'if' statements, which I noticed and fixed when writing the
recent Megahertz PCMCIA and Intel EEPro100 driver, but didn't go back and
fix in the Vortex driver.

There will be new vortex driver release on April 6 to address the problem
with promiscuous mode, and the transmit timeout problem that occurs only
with the new 8K-buffer boards. See the vortex web page,
http://cesdis.gsfc.nasa.gov/drivers/vortex.html
for details.

Donald Becker becker@cesdis.gsfc.nasa.gov
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center, Greenbelt, MD. 20771
301-286-0882 http://cesdis.gsfc.nasa.gov/pub/people/becker/whoiam.html