On Tue, Jan 19, 2021 at 10:11:14AM +1000, David Gwynne wrote: > vfs does it for us. > > ok?
OK claudio@ > Index: bpf.c > =================================================================== > RCS file: /cvs/src/sys/net/bpf.c,v > retrieving revision 1.202 > diff -u -p -r1.202 bpf.c > --- bpf.c 17 Jan 2021 02:27:29 -0000 1.202 > +++ bpf.c 19 Jan 2021 00:10:22 -0000 > @@ -379,7 +379,6 @@ bpfopen(dev_t dev, int flag, int mode, s > sigio_init(&bd->bd_sigio); > > bd->bd_rtout = 0; /* no timeout by default */ > - bd->bd_rnonblock = ISSET(flag, FNONBLOCK); > > bpf_get(bd); > LIST_INSERT_HEAD(&bpf_d_list, bd, bd_list); > @@ -497,7 +496,7 @@ bpfread(dev_t dev, struct uio *uio, int > ROTATE_BUFFERS(d); > break; > } > - if (d->bd_rnonblock) { > + if (ISSET(ioflag, IO_NDELAY)) { > /* User requested non-blocking I/O */ > error = EWOULDBLOCK; > } else if (d->bd_rtout == 0) { > @@ -982,10 +981,7 @@ bpfioctl(dev_t dev, u_long cmd, caddr_t > break; > > case FIONBIO: /* Non-blocking I/O */ > - if (*(int *)addr) > - d->bd_rnonblock = 1; > - else > - d->bd_rnonblock = 0; > + /* let vfs to keep track of this */ > break; > > case FIOASYNC: /* Send signal on receive packets */ > Index: bpfdesc.h > =================================================================== > RCS file: /cvs/src/sys/net/bpfdesc.h,v > retrieving revision 1.44 > diff -u -p -r1.44 bpfdesc.h > --- bpfdesc.h 2 Jan 2021 02:46:06 -0000 1.44 > +++ bpfdesc.h 19 Jan 2021 00:10:22 -0000 > @@ -80,7 +80,6 @@ struct bpf_d { > struct bpf_if *bd_bif; /* interface descriptor */ > uint64_t bd_rtout; /* [m] Read timeout in nanoseconds */ > u_long bd_nreaders; /* [m] # threads asleep in bpfread() */ > - int bd_rnonblock; /* true if nonblocking reads are set */ > struct bpf_program_smr > *bd_rfilter; /* read filter code */ > struct bpf_program_smr > -- :wq Claudio