git: 9front

Download patch

ref: 05373870e0087a7cbb23b6c22299c53b8b410ba7
parent: 02ba2ea11b7f963c28da8a774bf3cd07da02e213
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Jan 13 06:41:37 EST 2018

ether79c970: dont disable promisc mode when multicast table is not empty

--- a/sys/src/9/pc/ether79c970.c
+++ b/sys/src/9/pc/ether79c970.c
@@ -299,7 +299,7 @@
 
 	ctlr->iow(ctlr, Rap, 15);
 	x = ctlr->ior(ctlr, Rdp) & ~Prom;
-	if(on)
+	if(on || ether->nmaddr > 0)
 		x |= Prom;
 	ctlr->iow(ctlr, Rdp, x);
 	ctlr->iow(ctlr, Rap, 0);
@@ -315,7 +315,8 @@
 static void
 multicast(void* arg, uchar*, int)
 {
-	promiscuous(arg, 1);
+	Ether *ether = arg;
+	promiscuous(arg, ether->prom);
 }
 
 static void
--