freebsd-skq/sys/netinet
rwatson 482bfeab47 Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly
dispatched without Giant, and add NETISR_FORCEQUEUE, which allows specific
netisr handlers to always be dispatched via a queue (deferred).  Mark the
usb and if_ppp netisr handlers as NETISR_FORCEQUEUE, and explicitly
acquire Giant in those handlers.

Previously, any netisr handler not marked NETISR_MPSAFE would necessarily
run deferred and with Giant acquired.  This change removes Giant
scaffolding from the netisr infrastructure, but NETISR_FORCEQUEUE allows
non-MPSAFE handlers to continue to force deferred dispatch so as to avoid
lock order reversals between their acqusition of Giant and any calling
context.

It is likely we will be able to remove NETISR_FORCEQUEUE once
IFF_NEEDSGIANT is removed, as non-MPSAFE usb and if_ppp drivers will no
longer be supported.

Reviewed by:	bz
MFC after:	1 month
X-MFC note:	We can't remove NETISR_MPSAFE from stable/7 for KPI reasons,
		but the rest can go back.
2008-07-04 00:21:38 +00:00
..
libalias Partially revert previous commit. DeleteLink() does not deletes permanent 2008-06-22 11:39:42 +00:00
accf_data.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
accf_http.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
icmp6.h - Disabled responding to NI queries from a global address by default as 2007-05-17 21:20:24 +00:00
icmp_var.h Attempt to improve feature parity between UDPv4 and UDPv6 by merging 2007-07-19 22:34:25 +00:00
if_atm.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
if_atm.h
if_ether.c Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly 2008-07-04 00:21:38 +00:00
if_ether.h Don't duplicate the whole of arpresolve to arpresolve 2 for the sake 2007-12-31 23:48:06 +00:00
igmp_var.h Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
igmp.c Move towards more explicit support for various network protocol stacks 2007-10-28 15:55:23 +00:00
igmp.h Stub out imported IGMPv3 definitions which clash with those of 2007-06-15 18:59:10 +00:00
in_cksum.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
in_gif.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
in_gif.h
in_mcast.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
in_pcb.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
in_pcb.h Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
in_proto.c This patch provides the back end support for equal-cost multi-path 2008-04-13 05:45:14 +00:00
in_rmx.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
in_systm.h
in_var.h Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
in.c In case of interface initialization failure remove struct in_ifaddr* from 2008-06-24 13:58:28 +00:00
in.h Clean up the code that checks the types of address so that it is 2008-04-17 12:50:42 +00:00
ip6.h
ip_carp.c Sort IP addresses before hashing them for the signature. Otherwise carp is 2008-06-02 18:58:07 +00:00
ip_carp.h Make sure that carp_header is 36 bytes long 2006-12-01 18:37:41 +00:00
ip_divert.c Read lock, rather than write lock, the inpcb when transmitting with or 2008-04-21 12:03:59 +00:00
ip_divert.h
ip_dummynet.c Consistently check IPFW and DUMMYNET privileges in the configuration 2008-05-22 08:10:31 +00:00
ip_dummynet.h 1) dummynet_io() declaration has changed. 2007-11-06 23:01:42 +00:00
ip_ecn.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
ip_ecn.h
ip_encap.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
ip_encap.h
ip_fastfwd.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip_fw2.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip_fw_nat.c PKT_ALIAS_FOUND_HEADER_FRAGMENT result is not an error, so pass that packet. 2008-06-01 12:29:23 +00:00
ip_fw_pfil.c Raise a bit ipfw kld priority. 2008-03-03 10:12:46 +00:00
ip_fw.h Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip_gre.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
ip_gre.h
ip_icmp.c Fix the loopback interface. Cleaning up some code with new macros 2008-05-12 02:44:53 +00:00
ip_icmp.h
ip_id.c Replace the random IP ID generation code we 2008-02-06 15:40:30 +00:00
ip_input.c Remove NETISR_MPSAFE, which allows specific netisr handlers to be directly 2008-07-04 00:21:38 +00:00
ip_ipsec.c Take the route mtu into account, if available, when sending an 2008-04-09 05:17:18 +00:00
ip_ipsec.h Take the route mtu into account, if available, when sending an 2008-04-09 05:17:18 +00:00
ip_mroute.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip_mroute.h Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip_options.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip_options.h Normalize style a bit: reduce pseudo-randomness of comment layout and 2007-05-11 10:48:30 +00:00
ip_output.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip_var.h Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
ip.h Remove IPTOS_CE and IPTOS_ECT constants. They were defined in RFC 2481 2007-10-19 12:46:15 +00:00
ipprotosw.h
pim_var.h
pim.h
raw_ip.c Consistently check IPFW and DUMMYNET privileges in the configuration 2008-05-22 08:10:31 +00:00
sctp_asconf.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_asconf.h - Adds support for the multi-asconf (From Kozuka-san) 2008-05-20 13:47:46 +00:00
sctp_auth.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_auth.h - fix send_failed notification contents 2007-06-09 13:46:57 +00:00
sctp_bsd_addr.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_bsd_addr.h - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_cc_functions.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_cc_functions.h - Added some comments to tell where the htcp 2007-09-10 17:06:25 +00:00
sctp_constants.h - Adds support for the multi-asconf (From Kozuka-san) 2008-05-20 13:47:46 +00:00
sctp_crc32.c - Copyright change, cisco's silly tool wants it to say: 2007-05-08 17:01:12 +00:00
sctp_crc32.h - Copyright change, cisco's silly tool wants it to say: 2007-05-08 17:01:12 +00:00
sctp_header.h - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_indata.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_indata.h - Fix stream reset so it limits the number of streams that can be listed 2007-06-22 13:50:56 +00:00
sctp_input.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_input.h - Adds support for the multi-asconf (From Kozuka-san) 2008-05-20 13:47:46 +00:00
sctp_lock_bsd.h - Fixes foobar on my part. Some missing virtualization macros from 2008-06-14 13:24:49 +00:00
sctp_os_bsd.h - Fixes foobar on my part. Some missing virtualization macros from 2008-06-14 13:24:49 +00:00
sctp_os.h - Fix address add handling to clear cached routes and source addresses 2007-08-24 00:53:53 +00:00
sctp_output.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_output.h - Adds support for the multi-asconf (From Kozuka-san) 2008-05-20 13:47:46 +00:00
sctp_pcb.c More prep for Vimage: 2008-06-15 12:31:23 +00:00
sctp_pcb.h More prep for Vimage: 2008-06-15 12:31:23 +00:00
sctp_peeloff.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_peeloff.h - Copyright change, cisco's silly tool wants it to say: 2007-05-08 17:01:12 +00:00
sctp_structs.h - Adds support for the multi-asconf (From Kozuka-san) 2008-05-20 13:47:46 +00:00
sctp_sysctl.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_sysctl.h - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_timer.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_timer.h - Incorrect error EAGAIN returned for invalid send on a locked 2007-09-13 10:36:43 +00:00
sctp_uio.h - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctp_usrreq.c More prep for Vimage: 2008-06-15 12:31:23 +00:00
sctp_var.h More prep for Vimage: 2008-06-15 12:31:23 +00:00
sctp.h - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctputil.c - Macro-izes the packed declaration in all headers. 2008-06-14 07:58:05 +00:00
sctputil.h - Adds support for the multi-asconf (From Kozuka-san) 2008-05-20 13:47:46 +00:00
tcp_debug.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
tcp_debug.h o Use a define for a buffer size. 2007-03-24 22:15:02 +00:00
tcp_fsm.h Make tcpstates[] static, and make sure TCPSTATES is defined before 2007-07-30 11:06:42 +00:00
tcp_hostcache.c Add FBSDID to all files in netinet so that people can more 2007-10-07 20:44:24 +00:00
tcp_input.c Add code to allow the system to handle multiple routing tables. 2008-05-09 23:03:00 +00:00
tcp_lro.c Add generic TCP LOR into netinet 2008-06-11 22:12:50 +00:00
tcp_lro.h Add generic TCP LOR into netinet 2008-06-11 22:12:50 +00:00
tcp_offload.c Remove extraneous debug statements. 2007-12-19 05:17:40 +00:00
tcp_offload.h move cxgb_lt2.[ch] from NIC to TOE 2008-04-19 03:22:43 +00:00
tcp_output.c Convert pcbinfo and inpcb mutexes to rwlocks, and modify macros to 2008-04-17 21:38:18 +00:00
tcp_reass.c Convert pcbinfo and inpcb mutexes to rwlocks, and modify macros to 2008-04-17 21:38:18 +00:00
tcp_sack.c Convert pcbinfo and inpcb mutexes to rwlocks, and modify macros to 2008-04-17 21:38:18 +00:00
tcp_seq.h Remove T/TCP RFC1644 Connection Count comparison macros. They are no longer 2006-06-18 14:24:12 +00:00
tcp_subr.c When allocating temporary storage to hold a TCP/IP packet header 2008-06-02 14:20:26 +00:00
tcp_syncache.c Change incorrect stale cookie detection in syncookie_lookup() that prematurely 2008-06-16 20:08:22 +00:00
tcp_syncache.h Add interface for tcp offload to syncache: 2007-12-12 20:35:59 +00:00
tcp_timer.c When allocating temporary storage to hold a TCP/IP packet header 2008-06-02 14:20:26 +00:00
tcp_timer.h Two changes: 2007-09-24 05:26:24 +00:00
tcp_timewait.c Convert pcbinfo and inpcb mutexes to rwlocks, and modify macros to 2008-04-17 21:38:18 +00:00
tcp_usrreq.c replace spaces added in last change with tabs 2008-05-05 23:13:27 +00:00
tcp_var.h Revert to rev. 1.161 - switch back to optimized TCP options ordering. 2008-04-20 18:36:59 +00:00
tcp.h add rcv_nxt, snd_nxt, and toe offload id to FreeBSD-specific 2008-05-05 20:13:31 +00:00
tcpip.h
toedev.h Update the toedev's connect interface to reflect the fact that the inpcb 2007-12-16 05:30:21 +00:00
udp_usrreq.c Add soreceive_dgram(9), an optimized socket receive function for use by 2008-07-02 23:23:27 +00:00
udp_var.h Further cleanup of UDPv4: 2007-07-10 09:30:46 +00:00
udp.h Gratuitous UDP restyling toward style(9) in 7.x. 2007-02-20 10:13:11 +00:00