Subject: Re: ipv6 mcast trouble with Broadcom NetXtreme II BCM5708
To: None <tech-net@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-net
Date: 12/03/2007 17:35:51
--eRtJSFbw+EEWtPj3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Mon, Dec 03, 2007 at 05:29:53PM -0600, David Young wrote:
> Is the product supported by bnx(4) ?  It looks to me like bnx_ioctl()
> does not implement SIOCADDMULTI / SIOCDELMULTI properly.  I have attached
> a patch that I have only compile-tested.
> 
> (I believe that a Dell server that I ordered has this same ethernet,
> so I hope that the driver works!)

Oops.  This patch will work better.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933 ext 24

--eRtJSFbw+EEWtPj3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="bnx.patch"

Index: if_bnx.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_bnx.c,v
retrieving revision 1.10
diff -p -u -u -p -r1.10 if_bnx.c
--- if_bnx.c	9 Nov 2007 08:26:47 -0000	1.10
+++ if_bnx.c	3 Dec 2007 23:37:43 -0000
@@ -4420,12 +4420,13 @@ bnx_ioctl(struct ifnet *ifp, u_long comm
 
 	default:
 		error = ether_ioctl(ifp, command, data);
-		if (error == ENETRESET) {
-#if 0
+		if (error != ENETRESET)
+			break;
+		error = 0;
+		if (command == SIOCADDMULTI || command == SIOCDELMULTI) {
+			/* reload packet filter if running */
 			if (ifp->if_flags & IFF_RUNNING)
-				/*bnx_setmulti(sc)*/;
-#endif
-			error = 0;
+				bnx_set_rx_mode(sc);
 		}
 		break;
 	}

--eRtJSFbw+EEWtPj3--