diff options
author | Robert Watson <rwatson@FreeBSD.org> | 2007-08-06 14:26:03 +0000 |
---|---|---|
committer | Robert Watson <rwatson@FreeBSD.org> | 2007-08-06 14:26:03 +0000 |
commit | 0bf686c1257e2e7944a4cee9d9d628280facaa3d (patch) | |
tree | 63e9e0c42ec5669b83e25b5f9cbdcbee7e1be6dc /sys/net | |
parent | ec2af96ad1603562dcbcad9de48a2d0692367e14 (diff) | |
download | src-0bf686c1257e2e7944a4cee9d9d628280facaa3d.tar.gz src-0bf686c1257e2e7944a4cee9d9d628280facaa3d.zip |
Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which
previously conditionally acquired Giant based on debug.mpsafenet. As that
has now been removed, they are no longer required. Removing them
significantly simplifies error-handling in the socket layer, eliminated
quite a bit of unwinding of locking in error cases.
While here clean up the now unneeded opt_net.h, which previously was used
for the NET_WITH_GIANT kernel option. Clean up some related gotos for
consistency.
Reviewed by: bz, csjp
Tested by: kris
Approved by: re (kensmith)
Notes
Notes:
svn path=/head/; revision=171744
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/bpf.c | 12 | ||||
-rw-r--r-- | sys/net/bpfdesc.h | 5 | ||||
-rw-r--r-- | sys/net/netisr.c | 1 |
3 files changed, 3 insertions, 15 deletions
diff --git a/sys/net/bpf.c b/sys/net/bpf.c index 08ec25a312d4..5d6dc023789c 100644 --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -645,16 +645,12 @@ bpfwrite(struct cdev *dev, struct uio *uio, int ioflag) BPFD_UNLOCK(d); #endif - NET_LOCK_GIANT(); error = (*ifp->if_output)(ifp, m, &dst, NULL); - NET_UNLOCK_GIANT(); if (mc != NULL) { - if (error == 0) { - NET_LOCK_GIANT(); + if (error == 0) (*ifp->if_input)(ifp, mc); - NET_UNLOCK_GIANT(); - } else + else m_freem(mc); } @@ -776,10 +772,8 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags, if (d->bd_bif == NULL) error = EINVAL; else { - NET_LOCK_GIANT(); ifp = d->bd_bif->bif_ifp; error = (*ifp->if_ioctl)(ifp, cmd, addr); - NET_UNLOCK_GIANT(); } break; } @@ -837,9 +831,7 @@ bpfioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags, break; } if (d->bd_promisc == 0) { - NET_LOCK_GIANT(); error = ifpromisc(d->bd_bif->bif_ifp, 1); - NET_UNLOCK_GIANT(); if (error == 0) d->bd_promisc = 1; } diff --git a/sys/net/bpfdesc.h b/sys/net/bpfdesc.h index 7db0e12be8e7..a46013edca43 100644 --- a/sys/net/bpfdesc.h +++ b/sys/net/bpfdesc.h @@ -102,10 +102,7 @@ struct bpf_d { #define BPFD_LOCK(bd) mtx_lock(&(bd)->bd_mtx) #define BPFD_UNLOCK(bd) mtx_unlock(&(bd)->bd_mtx) -#define BPFD_LOCK_ASSERT(bd) do { \ - mtx_assert(&(bd)->bd_mtx, MA_OWNED); \ - NET_ASSERT_GIANT(); \ -} while (0) +#define BPFD_LOCK_ASSERT(bd) mtx_assert(&(bd)->bd_mtx, MA_OWNED); /* Test whether a BPF is ready for read(). */ #define bpf_ready(bd) \ diff --git a/sys/net/netisr.c b/sys/net/netisr.c index d4bf693c350e..cb61ebeed613 100644 --- a/sys/net/netisr.c +++ b/sys/net/netisr.c @@ -28,7 +28,6 @@ */ #include "opt_device_polling.h" -#include "opt_net.h" #include <sys/param.h> #include <sys/bus.h> |