shithub: riscv

Download patch

ref: 3e22f7ef1d56efcc81e7ce0e74bc1992ef0976a8
parent: c1eb4b8d6838109655744ce77e20472f8ea6a8ff
author: cinap_lenrek <[email protected]>
date: Mon Dec 18 15:50:25 EST 2017

nusb/ether: dont forward loopback packets on bridges, remove read nonblocking hack

--- a/sys/src/cmd/nusb/ether/ether.c
+++ b/sys/src/cmd/nusb/ether/ether.c
@@ -58,8 +58,6 @@
 	Block		**qt;
 
 	int		size;
-
-	int		nb;
 };
 
 struct Conn
@@ -262,12 +260,6 @@
 
 	d = r->fid->aux;
 	qlock(d);
-	if(d->q==nil && d->nb){
-		qunlock(d);
-		r->ofcall.count = 0;
-		respond(r, nil);
-		return;
-	}
 	r->aux = nil;
 	*d->rt = r;
 	d->rt = (Req**)&r->aux;
@@ -278,18 +270,12 @@
 static void
 writeconndata(Req *r)
 {
-	Dq *d;
 	void *p;
 	int n;
 	Block *b;
 
-	d = r->fid->aux;
 	p = r->ifcall.data;
 	n = r->ifcall.count;
-	if((n == 11) && memcmp(p, "nonblocking", n)==0){
-		d->nb = 1;
-		goto out;
-	}
 
 	/* minimum frame length for rtl8150 */
 	if(n < 60)
@@ -315,7 +301,6 @@
 
 	etheriq(b, 0);
 
-out:
 	r->ofcall.count = r->ifcall.count;
 	respond(r, nil);
 }
@@ -725,7 +710,7 @@
 		qlock(c);
 		if(!c->used)
 			goto next;
-		if(c->bridge && !wire && !fromme)
+		if(c->bridge && (tome || !wire && !fromme))
 			goto next;
 		if(c->type > 0 && c->type != t)
 			goto next;