opnsense-src/sys/netinet
Christian S.J. Peron bc60490a88 Certain consumers of rtalloc like gif(4) and if_stf(4) lookup the
route and once they are done with it, call rtfree().  rtfree() should
only be used when we are certain we hold the last reference to the
route.  This bug results in console messages like the following:

rtfree: 0xc40f7000 has 1 refs

This patch switches the rtfree() to use RTFREE_LOCKED() instead,
which should handle the reference counting on the route better.

Approved by:	re@ (gnn)
Reviewed by:	bms
Reported by:	many via net@ and current@
Tested by:	many
2007-09-23 17:50:17 +00:00
..
libalias o Kill EOLWS while I'm here. 2007-04-30 20:26:11 +00:00
accf_data.c add missing #include <sys/module.h> 2004-05-30 20:27:19 +00:00
accf_http.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +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 newline to debuging printf. 2005-08-26 15:27:18 +00:00
if_atm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_ether.c Move universally to ANSI C function declarations, with relatively 2007-05-10 15:58:48 +00:00
if_ether.h Add CARP (Common Address Redundancy Protocol), which allows multiple 2005-02-22 13:04:05 +00:00
igmp.c Improve style(9) conformance of igmp.c. 2006-12-04 00:41:48 +00:00
igmp.h Stub out imported IGMPv3 definitions which clash with those of 2007-06-15 18:59:10 +00:00
igmp_var.h Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
in.c Simplification to quiet a gcc4.2 warning. Just by setting match.s_addr 2007-06-17 00:31:24 +00:00
in.h Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
in_cksum.c Move universally to ANSI C function declarations, with relatively 2007-05-10 15:58:48 +00:00
in_gif.c Certain consumers of rtalloc like gif(4) and if_stf(4) lookup the 2007-09-23 17:50:17 +00:00
in_gif.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_mcast.c Over the past couple of years, there have been a number of reports relating 2007-08-06 22:06:36 +00:00
in_pcb.c Commit the change from FAST_IPSEC to IPSEC. The FAST_IPSEC 2007-07-03 12:13:45 +00:00
in_pcb.h Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
in_proto.c Commit the change from FAST_IPSEC to IPSEC. The FAST_IPSEC 2007-07-03 12:13:45 +00:00
in_rmx.c Move universally to ANSI C function declarations, with relatively 2007-05-10 15:58:48 +00:00
in_systm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_var.h Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
ip.h White space and style cleanup. 2007-05-11 11:00:48 +00:00
ip6.h move RFC3542 related definitions into ip6.h. 2005-07-20 10:30:52 +00:00
ip_carp.c Replace references to NET_CALLOUT_MPSAFE with CALLOUT_MPSAFE, and remove 2007-07-28 07:31:30 +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 Over the past couple of years, there have been a number of reports relating 2007-08-06 22:06:36 +00:00
ip_divert.h Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability 2004-10-19 21:14:57 +00:00
ip_dummynet.c Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
ip_dummynet.h Replace incorrect local OFFSET_OF macro with the correct and generic 2007-06-17 00:33:34 +00:00
ip_ecn.c Move universally to ANSI C function declarations, with relatively 2007-05-10 15:58:48 +00:00
ip_ecn.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_encap.c Move universally to ANSI C function declarations, with relatively 2007-05-10 15:58:48 +00:00
ip_encap.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_fastfwd.c In IPv4 fast forwarding path, send ICMP unreachable messages for 2007-03-18 23:05:20 +00:00
ip_fw.h Add support for filtering on Routing Header Type 0 and 2007-05-04 11:15:41 +00:00
ip_fw2.c Repair ALTQ-tagging rules in IPFW which got broken in the last PF 2007-08-29 19:34:28 +00:00
ip_fw_pfil.c Summer of Code 2005: improve libalias - part 2 of 2 2006-12-29 21:59:17 +00:00
ip_gre.c Fix the following bpf(4) race condition which can result in a panic: 2006-06-02 19:59:33 +00:00
ip_gre.h Fix stack corruptions on amd64. 2006-01-21 10:44:34 +00:00
ip_icmp.c Attempt to improve feature parity between UDPv4 and UDPv6 by merging 2007-07-19 22:34:25 +00:00
ip_icmp.h Pass icmp_error() the MTU argument directly instead of 2005-05-04 13:09:19 +00:00
ip_id.c Minor white space and style cleanups. 2007-05-11 11:05:30 +00:00
ip_input.c Rename option IPSEC_FILTERGIF to IPSEC_FILTERTUNNEL. 2007-08-05 16:16:15 +00:00
ip_ipsec.c Rename option IPSEC_FILTERGIF to IPSEC_FILTERTUNNEL. 2007-08-05 16:16:15 +00:00
ip_ipsec.h Rename option IPSEC_FILTERGIF to IPSEC_FILTERTUNNEL. 2007-08-05 16:16:15 +00:00
ip_mroute.c Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
ip_mroute.h Store the cached route in vifp in the normal send_packet() case. 2007-02-08 23:05:08 +00:00
ip_options.c Normalize style a bit: reduce pseudo-randomness of comment layout and 2007-05-11 10:48:30 +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 Commit the change from FAST_IPSEC to IPSEC. The FAST_IPSEC 2007-07-03 12:13:45 +00:00
ip_var.h Import rewrite of IPv4 socket multicast layer to support source-specific 2007-06-12 16:24:56 +00:00
ipprotosw.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
pim.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
pim_var.h Remove public declarations of variables that were forgotten when they were 2005-08-10 07:10:02 +00:00
raw_ip.c Commit the change from FAST_IPSEC to IPSEC. The FAST_IPSEC 2007-07-03 12:13:45 +00:00
sctp.h - Get rid of unsused constants for sysctl variables. 2007-09-15 19:07:42 +00:00
sctp_asconf.c - The address lock is changed to a rwlock. This 2007-09-18 15:16:39 +00:00
sctp_asconf.h - Get rid of unsused constants for sysctl variables. 2007-09-15 19:07:42 +00:00
sctp_auth.c - Locking compatiability changes. This involves adding 2007-09-08 11:35:11 +00:00
sctp_auth.h - fix send_failed notification contents 2007-06-09 13:46:57 +00:00
sctp_bsd_addr.c - send call has a reference to uio->uio_resid in 2007-09-08 17:48:46 +00:00
sctp_bsd_addr.h - Fixes so we won't try to start a timer when we 2007-05-29 09:29:03 +00:00
sctp_cc_functions.c - Locking compatiability changes. This involves adding 2007-09-08 11:35:11 +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 - fix (global) address handling in the presence of duplicates, the 2007-09-21 04:19:33 +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 - Fix address add handling to clear cached routes and source addresses 2007-08-24 00:53:53 +00:00
sctp_indata.c - Incorrect error EAGAIN returned for invalid send on a locked 2007-09-13 10:36:43 +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 - For the 1-to-1 model, fix an off by one error that 2007-09-16 23:03:38 +00:00
sctp_input.h - Consolidate the code that free's chunks to actually also 2007-07-02 19:22:22 +00:00
sctp_lock_bsd.h - The address lock is changed to a rwlock. This 2007-09-18 15:16:39 +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_os_bsd.h - The address lock is changed to a rwlock. This 2007-09-18 15:16:39 +00:00
sctp_output.c - The address lock is changed to a rwlock. This 2007-09-18 15:16:39 +00:00
sctp_output.h - Get rid of unsused constants for sysctl variables. 2007-09-15 19:07:42 +00:00
sctp_pcb.c - fix (global) address handling in the presence of duplicates, the 2007-09-21 04:19:33 +00:00
sctp_pcb.h - The address lock is changed to a rwlock. This 2007-09-18 15:16:39 +00:00
sctp_peeloff.c - Locking compatiability changes. This involves adding 2007-09-08 11:35:11 +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 - send call has a reference to uio->uio_resid in 2007-09-08 17:48:46 +00:00
sctp_sysctl.c - DF bit was on for COOKIE-ECHO chunks. This is 2007-09-13 14:43:54 +00:00
sctp_sysctl.h - Get rid of unsused constants for sysctl variables. 2007-09-15 19:07:42 +00:00
sctp_timer.c - Get rid of unsused constants for sysctl variables. 2007-09-15 19:07:42 +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 - The address lock is changed to a rwlock. This 2007-09-18 15:16:39 +00:00
sctp_usrreq.c - The address lock is changed to a rwlock. This 2007-09-18 15:16:39 +00:00
sctp_var.h - send call has a reference to uio->uio_resid in 2007-09-08 17:48:46 +00:00
sctputil.c - fix (global) address handling in the presence of duplicates, the 2007-09-21 04:19:33 +00:00
sctputil.h - DF bit was on for COOKIE-ECHO chunks. This is 2007-09-13 14:43:54 +00:00
tcp.h The printf %b list in PRINT_TH_FLAGS has to be in octal numbering. 2007-05-25 21:28:49 +00:00
tcp_debug.c Rather than selectively zeroing fields in the tcp_debug structure 2007-05-07 14:05:23 +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 Replace a constant with an already defined symbolic name for it. 2007-06-08 13:43:28 +00:00
tcp_input.c Make sure that either inp is NULL or we have obtained a lock on it before 2007-09-10 14:49:32 +00:00
tcp_output.c Commit the change from FAST_IPSEC to IPSEC. The FAST_IPSEC 2007-07-03 12:13:45 +00:00
tcp_reass.c Complete the (mechanical) move of the TCP reassembly and timewait 2007-05-13 22:16:13 +00:00
tcp_sack.c Coalesce two identical UCB licenses into a single license instance with 2007-05-11 11:21:43 +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 Back out tcp_timer.c:1.93 and associated changes that reimplemented the many 2007-09-07 09:19:22 +00:00
tcp_syncache.c Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
tcp_syncache.h Export the contents of the syncache to netstat. 2007-07-27 00:57:06 +00:00
tcp_timer.c Back out tcp_timer.c:1.93 and associated changes that reimplemented the many 2007-09-07 09:19:22 +00:00
tcp_timer.h Back out tcp_timer.c:1.93 and associated changes that reimplemented the many 2007-09-07 09:19:22 +00:00
tcp_timewait.c Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
tcp_usrreq.c Back out tcp_timer.c:1.93 and associated changes that reimplemented the many 2007-09-07 09:19:22 +00:00
tcp_var.h Back out tcp_timer.c:1.93 and associated changes that reimplemented the many 2007-09-07 09:19:22 +00:00
tcpip.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
udp.h Gratuitous UDP restyling toward style(9) in 7.x. 2007-02-20 10:13:11 +00:00
udp_usrreq.c Further UDPv4 cleanup: 2007-09-10 14:22:15 +00:00
udp_var.h Further cleanup of UDPv4: 2007-07-10 09:30:46 +00:00