Ħ171635 139 305 168 321 378 652 845 160 325 158 239 276 841 291 199 395 455 204 172 357 172 189 429 580 146 166 174 424 299 337 940 284 565 544 147 322 528 254 621 810 328 189 373 1715 709 277 255 445 256 239 169 292 380 491 297 269 354 243 267 162 175 652 312 171 685 624 230 172 670 185 509 193 195 155 355 379 211 689 164 584 235 168 251 154 193 190 322 394 437 180 443 352 215 205 385 1840 1746 969 768 324 1090 373 400 1716 398 474 533 362 194 241 656 1132 2424 156 360 267 156 197 238 253 190 197 181 183 272 423 135 134 358 159 158 123 207 168 168 205 349 293 224 304 K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-07-28T00:12:21.000000Z K 7 svn:log V 208 Hook wlandebug up to the build. This tool allows fine grained enabling of the debugging output in net80211 and its useful to have it available to everyone to diagnose wifi issues. Approved by: re (rwatson) END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-07-28T00:18:24.000000Z K 7 svn:log V 72 wlandebug has been moved to the base system. Approved by: re (rwatson) END K 10 svn:author V 7 rwatson K 8 svn:date V 27 2007-07-28T07:31:30.000000Z K 7 svn:log V 224 Replace references to NET_CALLOUT_MPSAFE with CALLOUT_MPSAFE, and remove definition of NET_CALLOUT_MPSAFE, which is no longer required now that debug.mpsafenet has been removed. The once over: bz Approved by: re (kensmith) END K 10 svn:author V 5 andre K 8 svn:date V 27 2007-07-28T11:51:44.000000Z K 7 svn:log V 283 o Move all detailed checks for RST in LISTEN state from tcp_input() to syncache_rst(). o Fix tests for flag combinations of RST and SYN, ACK, FIN. Before a RST for a connection in syncache did not properly free the entry. o Add more detailed logging. Approved by: re (rwatson) END K 10 svn:author V 5 andre K 8 svn:date V 27 2007-07-28T12:02:05.000000Z K 7 svn:log V 557 o Move setting/resetting logic of syncache timer from macro SYNCACHE_TIMEOUT to new function syncache_timeout(). o Fix inverted timeout callout engagement logic to actually enable the timer for the bucket row. Before SYN|ACK was not retransmitted. o Simplify SYN|ACK retransmit timeout backoff calculation. o Improve logging of retransmit and timeout events. o Reset timeout when duplicate SYN arrives. o Add comments. o Rearrange SYN cookie statistics counting. Bug found by: silby Submitted by: silby (different version) Approved by: re (rwatson) END K 10 svn:author V 5 andre K 8 svn:date V 27 2007-07-28T12:20:39.000000Z K 7 svn:log V 750 Provide a sysctl to toggle reporting of TCP debug logging: sys.net.inet.tcp.log_debug = 1 It defaults to enabled for the moment and is to be turned off for the next release like other diagnostics from development branches. It is important to note that sysctl sys.net.inet.tcp.log_in_vain uses the same logging function as log_debug. Enabling of the former also causes the latter to engage, but not vice versa. Use consistent terminology in tcp log messages: "ignored" means a segment contains invalid flags/information and is dropped without changing state or issuing a reply. "rejected" means a segments contains invalid flags/information but is causing a reply (usually RST) and may cause a state change. Approved by: re (rwatson) END K 10 svn:author V 6 jkoshy K 8 svn:date V 27 2007-07-28T15:35:03.000000Z K 7 svn:log V 65 Cross-reference the correct manual page. Approved by: re (bmah) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-28T17:46:04.000000Z K 7 svn:log V 229 Fix acpidump(8) on ia64. Revision 1.13 introduced an uninitialized variable bug that's hidden by the precense of the hint_acpi_0_rsdp hint on 386 and amd64. There's never a need for such hint on ia64. Approved by: re (kensmith) END K 10 svn:author V 5 silby K 8 svn:date V 27 2007-07-28T20:13:40.000000Z K 7 svn:log V 64 Fix a panic introduced in rev 1.126. Approved by: re (rwatson) END K 10 svn:author V 6 mlaier K 8 svn:date V 27 2007-07-28T22:32:57.000000Z K 7 svn:log V 143 MFV: the TCP SACK option needs sequence number modulation Reported & tested by: Jordan Gordeev Obtained from: Krzysztof Pfaff via. OpenBSD END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-28T23:00:42.000000Z K 7 svn:log V 180 Syscalls have at most 6 argument, not 5. See mmap(2) for example. Previously the offset argument to mmap(2) would be bogus as we weren't reading it in. Approved by: re (kensmith) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-28T23:15:04.000000Z K 7 svn:log V 745 Fix handling of Quad-type arguments. Previously, syscalls containing 64-bit arguments would have explicit padding. On 64-bit platforms there was no padding, so the dummy argument was not covering anything. On 32-bit platforms with weak alignment (i.e. i386) the 64-bit argument did not need to be aligned, so there too an aditional argument was introduced. On 32-bit platforms with strong alignment (i.e. PowerPC) the dummy argument in fact cover the padding. By elimininating the dummy argument, 64-bit platforms now have 1 argument less. This also applies to 32-bit platforms with weak alignment. On PowerPC this doesn't matter, because the padding is still there. We just don't "name" it. Deal with those 3 cases. Approved by: re (kensmith) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-28T23:18:39.000000Z K 7 svn:log V 195 Print integer-typed arguments as integers. This makes sure that on 64-bit platforms the result is more reliable. For example, -1 was previously printed as 0xffffffff. Approved by: re (kensmith) END K 10 svn:author V 6 mjacob K 8 svn:date V 27 2007-07-29T01:31:33.000000Z K 7 svn:log V 103 Fix compilation problems- tcpstates is only available if TCPDEBUG is set. Approved by: re (in spirit) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-29T02:44:41.000000Z K 7 svn:log V 299 In pci_alloc_map(), restore the original value of the BAR for the duration of the function. The device we would otherwise have left in an useless state may just as well be the low-level console. When booting verbose, we do need it addressable if we want to avoid a MCA. Approved by: re (kensmith) END K 10 svn:author V 2 hm K 8 svn:date V 27 2007-07-29T13:47:13.000000Z K 7 svn:log V 363 PR: kern/111480 Submitted by: Joerg Lehners, Joerg dot Lehners at Informatik dot Uni-Oldenburg dot DE add missing '#include "opt_compat.h"' (which is already present in current), so that kernel config options 'COMPAT_FREEBSD4' and 'COMPAT_FREEBSD5' are recognized again. this made the vmware3 port running under the linuxulator run again as usual. END K 10 svn:author V 3 imp K 8 svn:date V 27 2007-07-29T18:16:43.000000Z K 7 svn:log V 111 Add missing newline in printf. Submitted by: "R.Mahmatkhanov" cvs-src at yandex ru Approved by: re (blanket) END K 10 svn:author V 4 bmah K 8 svn:date V 27 2007-07-29T20:13:22.000000Z K 7 svn:log V 79 Fix a typo in a log message: s/Reveived/Received/. Approved by: re (rwatson) END K 10 svn:author V 8 dwmalone K 8 svn:date V 27 2007-07-29T20:16:48.000000Z K 7 svn:log V 259 Mfi386 revision 1.239 of src/sys/i386/isa/clock.c. Seemingly some pc98 motherboards do not provide us with the correct day of week either. Ignore the day of week when setting the clock here too. Approved by: re (bmah) Requested from: nyan MFC after: 3 weeks END K 10 svn:author V 8 dwmalone K 8 svn:date V 27 2007-07-29T20:32:24.000000Z K 7 svn:log V 75 MFC: Add an option to make periodic(8) quiet when no output was generated. END K 10 svn:author V 4 bmah K 8 svn:date V 27 2007-07-29T23:07:12.000000Z K 7 svn:log V 96 Update the MPSAFE network stack note to reflect recent realities. Approved by: re (implicitly) END K 10 svn:author V 3 des K 8 svn:date V 27 2007-07-30T11:06:42.000000Z K 7 svn:log V 336 Make tcpstates[] static, and make sure TCPSTATES is defined before is included into any compilation unit that needs tcpstates[]. Also remove incorrect extern declarations and TCPDEBUG conditionals. This allows kernels both with and without TCPDEBUG to build, and unbreaks the tinderbox. Approved by: re (rwatson) END K 10 svn:author V 3 njl K 8 svn:date V 27 2007-07-30T15:21:26.000000Z K 7 svn:log V 487 Dynamically choose the quality of the ACPI timer depending on whether the fast or safe/slow method is in use. Fast remains at 1000, slow is now at 850 (always preferred to TSC). Since the HPET has proven slower than ACPI-fast on some systems, drop its quality to 900. In the future, it is hoped that HPET performance will improve as it is the main timer Intel supports. HPET may move back to 2000 in -current once RELENG_7 is branched to ensure that it gets tested. Approved by: re END K 10 svn:author V 4 bmah K 8 svn:date V 27 2007-07-30T16:53:55.000000Z K 7 svn:log V 53 New (somewhat belated) errata: SA-07:05.libarchive. END K 10 svn:author V 7 cvs2svn K 8 svn:date V 27 2007-07-30T16:53:56.000000Z K 7 svn:log V 70 This commit was manufactured by cvs2svn to create branch 'RELENG_6_3'. END K 10 svn:author V 8 ambrisko K 8 svn:date V 27 2007-07-30T19:59:08.000000Z K 7 svn:log V 77 MFC the manual isa attachment via hints and merge over all changes to ipmi.4 END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-07-30T20:17:22.000000Z K 7 svn:log V 327 - Propagate the largest set of interface capabilities supported by all lagg ports to the lagg interface. - Use the MTU from the first interface as the lagg MTU, all extra interfaces must be the same. This fixes using a lagg interface for a vlan or enabling jumbo frames, etc. Approved by: re (kensmith) MFC After: 3 days END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-30T22:07:01.000000Z K 7 svn:log V 203 Add casts to some of the more commonly used pointer-type atomic operations. We really should be able to make those inline functions, but this would break its use for sx_locks. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-30T22:12:53.000000Z K 7 svn:log V 241 Explicitly map the VHPT on all processors. Previously we were merely lucky that the VHPT was mapped as a side-effect of mapping the kernel, but when there's enough physical memory, this may not at all be the case. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-30T22:29:33.000000Z K 7 svn:log V 844 Rework the interrupt code and add support for interrupt filtering (INTR_FILTER). This includes: o Save a pointer to the sapic structure and IRQ for every vector, so that we can quickly EOI, mask and unmask the interrupt. o Add locking to the sapic code now that we can reprogram a sapic on multiple CPUs at the same time. o Use u_int for the vector and IRQ. We only have 256 vectors, so using a 64-bit type for it is rather excessive. o Properly handle concurrent registration of a handler for the same vector. Since vectors have a corresponding priority, we should not map IRQs to vectors in a linear fashion, but rather pick a vector that has a priority in line with the interrupt type. This is left for later. The vector/IRQ interchange has been untangled as much as possible to make this easier. Approved by: re (blacket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-30T22:42:33.000000Z K 7 svn:log V 188 Add option EXCEPTION_TRACING, which enables KTR-like functionality for processor interruptions. This is especially useful to track unexpected nested TLB faults. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-30T22:52:52.000000Z K 7 svn:log V 469 o Switch to physical addressing before dereferencing the VHPT bucket pointer. The virtual mapping may not be present in the translation cache. This will result in a nested TLB fault at a place we don't handle (and don't want to handle). o Make sure there's a stop after the rfi instruction, otherwise its behaviour is undefined. o Make sure we switch back to virtual addressing before doing a rfi. Behaviour is undefined otherwise. Approved by: re (blanket) END K 10 svn:author V 7 davidch K 8 svn:date V 27 2007-07-31T00:06:04.000000Z K 7 svn:log V 447 - Fixed a problem that would cause kernel panics and "bce0: discard frame .." errors (especially when jumbo frames are enabled or in low memory systems) because the RX chain was corrupted when an mbuf was mapped to an unexpected number of buffers. - Fixed a problem that would cause kernel panics when an excessively fragmented TX mbuf couldn't be defragmented and was released by bce_tx_encap(). Approved by: re(hrs) MFC after: 7 days END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-31T03:15:32.000000Z K 7 svn:log V 52 Enable -Werror for ia64. Approved by: re (blanket) END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-07-31T05:03:27.000000Z K 7 svn:log V 224 Two minor nits: * Allow libarchive_test to compile on Interix again. * Track the test name (not just line number) when counting skipped tests. Thanks to: Joerg Sonnenberger Approved by: re (blanket; libarchive testing) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-07-31T06:23:26.000000Z K 7 svn:log V 432 Fix backward compatibility of the "old" (i.e. FreeBSD6) lseek syscall. It was broken when a new lseek syscall was introduced. The problem is that we need to swap the 32-bit td_retval values for the __syscall indirect syscall when the actual syscall has a 32-bit return value. Hence, we need to exclude lseek(2). And this means the "old" lseek(2) as well -- which we didn't. Based on a patch from: grehan@ Approved by: re (rwatson) END K 10 svn:author V 7 bushman K 8 svn:date V 27 2007-07-31T16:09:41.000000Z K 7 svn:log V 157 - Getipnodebyname() and getipnodebyaddr() reimplemented through gethostbyname() and gethostbyaddr() accordingly Approved by: re (kensmith), brooks (mentor) END K 10 svn:author V 6 cognet K 8 svn:date V 27 2007-07-31T17:09:05.000000Z K 7 svn:log V 525 MFppc: revision 1.66 date: 2007/07/31 06:23:26; author: marcel; state: Exp; lines: +2 -2 Fix backward compatibility of the "old" (i.e. FreeBSD6) lseek syscall. It was broken when a new lseek syscall was introduced. The problem is that we need to swap the 32-bit td_retval values for the __syscall indirect syscall when the actual syscall has a 32-bit return value. Hence, we need to exclude lseek(2). And this means the "old" lseek(2) as well -- which we didn't. Based on a patch from: grehan@ Approved by: re (blanket) END K 10 svn:author V 3 imp K 8 svn:date V 27 2007-07-31T17:43:18.000000Z K 7 svn:log V 717 Make USB work on the KB9202{,A,B} boards. This has been in p4 for about 7 months. You must have JP6 in the 1-2 position to supply power to the USB devices, but I've used uftdi, uplcom and umass successfully. If you have it in 2-3, then nothing will show up. Also, if you have the FQPA packaging for the AT91RM9200 (like the KN9202 boards have), you will get the following message uhub0: device problem (IOERROR), disabling port 2 due to a hardware erratum. It is safe to ignore as it is about pins that aren't brought out on the FQPA package and aren't proeprly terminated either. Alas, there's no register to read to tell the FQPA from the BGA versions. Submitted by: Daan Vreeken Approved by: re (kensmith) END K 10 svn:author V 3 imp K 8 svn:date V 27 2007-07-31T17:45:54.000000Z K 7 svn:log V 235 Add in all the USB devices and all the wireless goo. The KB9202 has only USB 1.1 speeds available, but this shouldn't hurt. Now that we have working usb support for this board, this is a natural followup. Approved by: re (kensmith) END K 10 svn:author V 6 scottl K 8 svn:date V 27 2007-07-31T20:11:03.000000Z K 7 svn:log V 94 Fix locking mistakes in the error recovery paths of the AHC and AHD drivers. Approved by: re END K 10 svn:author V 6 scottl K 8 svn:date V 27 2007-07-31T20:16:50.000000Z K 7 svn:log V 277 Make the driver fully MPSAFE. This fixes some serious locking problems that could cause panics and corruption under moderate load. Many thanks to Matt Reimer, Tom McDonald, and the rest of the guys at VPOP.net for their help in identifying and testing this. Approved by: re END K 10 svn:author V 5 peter K 8 svn:date V 27 2007-07-31T22:11:55.000000Z K 7 svn:log V 1619 Change TCPTV_MIN to be independent of HZ. While it was documented to be in ticks "for algorithm stability" when originally committed, it turns out that it has a significant impact in timing out connections. When we changed HZ from 100 to 1000, this had a big effect on reducing the time before dropping connections. To demonstrate, boot with kern.hz=100. ssh to a box on local ethernet and establish a reliable round-trip-time (ie: type a few commands). Then unplug the ethernet and press a key. Time how long it takes to drop the connection. The old behavior (with hz=100) caused the connection to typically drop between 90 and 110 seconds of getting no response. Now boot with kern.hz=1000 (default). The same test causes the ssh session to drop after just 9-10 seconds. This is a big deal on a wifi connection. With kern.hz=1000, change sysctl net.inet.tcp.rexmit_min from 3 to 30. Note how it behaves the same as when HZ was 100. Also, note that when booting with hz=100, net.inet.tcp.rexmit_min *used* to be 30. This commit changes TCPTV_MIN to be scaled with hz. rexmit_min should always be about 30. If you set hz to Really Slow(TM), there is a safety feature to prevent a value of 0 being used. This may be revised in the future, but for the time being, it restores the old, pre-hz=1000 behavior, which is significantly less annoying. As a workaround, to avoid rebooting or rebuilding a kernel, you can run "sysctl net.inet.tcp.rexmit_min=30" and add "net.inet.tcp.rexmit_min=30" to /etc/sysctl.conf. This is safe to run from 6.0 onwards. Approved by: re (rwatson) Reviewed by: andre, silby END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-08-01T00:33:52.000000Z K 7 svn:log V 612 Add a bridge interface flag called PRIVATE where any private port can not communicate with another private port. All unicast/broadcast/multicast layer2 traffic is blocked so it works much the same way as using firewall rules but scales better and is generally easier as firewall packages usually do not allow ARP blocking. An example usage would be having a number of customers on separate vlans bridged with a server network. All the vlans are marked private, they can all communicate with the server network unhindered, but can not exchange any traffic whatsoever with each other. Approved by: re (rwatson) END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-01T03:15:35.000000Z K 7 svn:log V 179 Fix for PR bin/115033. This corrects a crash when long options are specified with the "-W option=arg" syntax and the '=' is omitted. MFC after: 3 days Approved by: re (rwatson) END K 10 svn:author V 5 ticso K 8 svn:date V 27 2007-08-01T11:59:09.000000Z K 7 svn:log V 160 declare struct tftphdr and embedded union as beeing packed, which is required for arm. Tested on: arm, i386, amd64 Approved by: re (rwatson) MFC after: 1 week END K 10 svn:author V 3 mav K 8 svn:date V 27 2007-08-01T20:38:37.000000Z K 7 svn:log V 352 This patch improves fine-grained locking for the ng_ppp node. Till now node's transmit path was completely unprotected and so wasn't thread safe in multilink mode. It's receive path was declared as WRITER as the simpliest protection method but it reduces performance when compression or encryption enabled. Approved by: re (rwatson), glebius (mentor) END K 10 svn:author V 5 simon K 8 svn:date V 27 2007-08-01T20:40:44.000000Z K 7 svn:log V 161 Correct buffer overflow in tcpdump(1). Security: FreeBSD-SA-07:06.tcpdump Security: CVE-2007-3798 Obtained from: tcpdump.org Approved by: re (security blanket) END K 10 svn:author V 5 simon K 8 svn:date V 27 2007-08-01T20:40:44.000000Z K 7 svn:log V 144 This commit was generated by cvs2svn to compensate for changes in r171682, which included commits to RCS files with non-trunk default branches. END K 10 svn:author V 5 simon K 8 svn:date V 27 2007-08-01T20:42:48.000000Z K 7 svn:log V 75 Correct buffer overflow in tcpdump(1). Security: FreeBSD-SA-07:06.tcpdump END K 10 svn:author V 5 simon K 8 svn:date V 27 2007-08-01T20:45:49.000000Z K 7 svn:log V 197 Correct buffer overflow in tcpdump(1). [SA-07:06] Correct predictable query ids in named(8). [SA-07:07] Security: FreeBSD-SA-07:06.tcpdump Security: FreeBSD-SA-07:07.bind Approved by: so (simon) END K 10 svn:author V 5 simon K 8 svn:date V 27 2007-08-01T20:47:12.000000Z K 7 svn:log V 285 Correct a bug in the patch for FreeBSD-SA-07:01.jail which prevented jails with custom fstab's from starting due to use of incorrect variable. [1] Correct buffer overflow in tcpdump(1). [SA-07:06] Reported by: Joel Hatton [1] Security: FreeBSD-SA-07:06.tcpdump END K 10 svn:author V 5 simon K 8 svn:date V 27 2007-08-01T20:48:19.000000Z K 7 svn:log V 396 Correct a bug in the patch for FreeBSD-SA-07:01.jail which prevented jails with custom fstab's from starting due to use of incorrect variable. [1] Correct buffer overflow in tcpdump(1). [SA-07:06] Correct predictable query ids in named(8). [SA-07:07] Reported by: Joel Hatton [1] Security: FreeBSD-SA-07:06.tcpdump Security: FreeBSD-SA-07:07.bind Approved by: so (simon) END K 10 svn:author V 3 mav K 8 svn:date V 27 2007-08-01T20:49:35.000000Z K 7 svn:log V 204 Add 64bit statistic counters to the ng_ppp node. 64bit counters are needed to simplify traffic accounting and reduce system load at the big PPP concentrators. Approved by: re (rwatson), glebius (mentor) END K 10 svn:author V 4 emax K 8 svn:date V 27 2007-08-01T21:38:11.000000Z K 7 svn:log V 175 Call ttyld_close() in nmdmclose() to ensure that nmdm(4) closes line discipline installed onto /dev/nmdmX device. Reviewed by: julian Approved by: re (hrs) MFC after: 3 days END K 10 svn:author V 5 dougb K 8 svn:date V 27 2007-08-01T22:53:18.000000Z K 7 svn:log V 259 Date: Wed, 1 Aug 2007 17:00:07 +0000 From: bmanning@vacation.karoshi.com To: Doug Barton please remove "B" from your list/distribution until you have received permission from the FreeBSD community that this change is what they want. END K 10 svn:author V 8 cperciva K 8 svn:date V 27 2007-08-02T02:05:23.000000Z K 7 svn:log V 145 When generating ports INDEX files from downloaded "describes" data, build an index for FreeBSD 7.x too. MFC After: 1 week Approved by: re (hrs) END K 10 svn:author V 6 avatar K 8 svn:date V 27 2007-08-02T02:20:19.000000Z K 7 svn:log V 171 MFP4(123686): Fixing various ancontrol(8) related panics by dropping locks around copyin()/copyout(). Reviewed by: sam, thompsa Tested by: dhw Approved by: re (kensmith) END K 10 svn:author V 5 kevlo K 8 svn:date V 27 2007-08-02T04:29:19.000000Z K 7 svn:log V 68 Add the device ID for the VIA CX700 chipset. Approved by: re (hrs) END K 10 svn:author V 4 bmah K 8 svn:date V 27 2007-08-02T05:19:08.000000Z K 7 svn:log V 82 New release note: SA-07:06.tcpdump, SA-07:07.bind. Approved by: re (implicitly) END K 10 svn:author V 7 rodrigc K 8 svn:date V 27 2007-08-02T06:02:06.000000Z K 7 svn:log V 555 MFC 1.16: Fix interaction with Windows 2000/XP based servers: If the complete reply on the TRANS2_FIND_FIRST2 request fits exactly into one responce packet, then next call to TRANS2_FIND_NEXT2 will return zero entries and server will close current transaction. To avoid subsequent errors we should not perform FIND_CLOSE2 request. PR: 78953 Submitted by: Jim Carroll Requested by: Antony Mawer , Peter ============================================================================= END K 10 svn:author V 2 bz K 8 svn:date V 27 2007-08-02T08:04:48.000000Z K 7 svn:log V 220 Remove the last entries to fast_ipsec. Merge in parts of the old fast_ipsec.4 man page to ipsec.4 and start updating ipsec.4 man page. Reviewed by: brueffer, sam (slightly earlier versions), bmah Approved by: re (bmah) END K 10 svn:author V 2 bz K 8 svn:date V 27 2007-08-02T08:05:56.000000Z K 7 svn:log V 80 Remove fast_ipsec.4. Was merged in parts to ipsec.4. Approved by: re (bmah) END K 10 svn:author V 5 dougb K 8 svn:date V 27 2007-08-02T09:18:53.000000Z K 7 svn:log V 590 1. Move the disable-empty-zone stuff down below the first 25 lines so that the listen-on stuff floats up to the first "page" of text. This makes it very obvious what's going on so that someone trying to enable a server for use on a network can easily see how to do that. 2. Change the default behavior back to using a hint zone for the root. 3. Leave the root slave zone config as a commented out example. 4. Remove the B and F root servers from the example at the request of their operators. Requested by: he-who-must-not-be-named [1] Requested by: many [2] Approved by: re (rwatson) END K 10 svn:author V 5 dougb K 8 svn:date V 27 2007-08-02T09:29:02.000000Z K 7 svn:log V 529 MFC version 1.25: 1. Move the disable-empty-zone stuff down below the first 25 lines so that the listen-on stuff floats up to the first "page" of text. This makes it very obvious what's going on so that someone trying to enable a server for use on a network can easily see how to do that. 2. Change the default behavior back to using a hint zone for the root. 3. Leave the root slave zone config as a commented out example. 4. Remove the F root server from the example at the request of its operator. (B was removed already.) END K 10 svn:author V 3 mav K 8 svn:date V 27 2007-08-02T10:49:27.000000Z K 7 svn:log V 137 MFC rev. 1.22 Reduce stack usage by 256 bytes per call. It helps to avoid kernel stack overflow in complicated traffic filtering setups. END K 10 svn:author V 6 loader K 8 svn:date V 27 2007-08-02T15:23:01.000000Z K 7 svn:log V 77 Add myself as delphij's mentee. Approved by: re (bmah), delphij (mentor) END K 10 svn:author V 5 peter K 8 svn:date V 27 2007-08-02T21:17:58.000000Z K 7 svn:log V 575 Move mp_topology() from apic_init(i386) and apic_setup_local(amd64) to cpu_start_mp(). This is after we have read the cpuid registers to calculate the hyperthreading_cpus value for the sysctl that enables or disables hyperthread cores. Change mp_topology() to use that information rather than trying to do it itself. This solves the problem of ULE being incorrectly told that dual core Athlon64 X2 or Operton cpus are hyperthreading cores. At the very least, we now have a single piece of code to identify hyperthreading. Obtained from: jhb Approved by: re (kensmith) END K 10 svn:author V 4 bmah K 8 svn:date V 27 2007-08-03T02:26:18.000000Z K 7 svn:log V 92 New release notes: if_bridge(4) private ports, wlandebug(8). Approved by: re (implicitly) END K 10 svn:author V 7 delphij K 8 svn:date V 27 2007-08-03T06:24:31.000000Z K 7 svn:log V 412 MFp4 - Refine locking to eliminate some potential race/panics: - Copy before testing a pointer. This closes a race window. - Use msleep with the node interlock instead of tsleep. - Do proper locking around access to tn_vpstate. - Assert vnode VOP lock for dir_{atta,de}tach to capture inconsistent locking. Suggested by: kib Submitted by: delphij Reviewed by: Howard Su Approved by: re (tmpfs blanket) END K 10 svn:author V 3 des K 8 svn:date V 27 2007-08-03T06:32:45.000000Z K 7 svn:log V 100 Use fcntl(2)-style locks instead of less-portable flock(2)-style locks. Approved by: re (kensmith) END K 10 svn:author V 3 des K 8 svn:date V 27 2007-08-03T09:20:28.000000Z K 7 svn:log V 102 Back out previous commit until I figure out why my regression test fails. Approved by: re (kensmith) END K 10 svn:author V 3 des K 8 svn:date V 27 2007-08-03T11:29:49.000000Z K 7 svn:log V 63 Add regression tests for flopen(3). Approved by: re (blanket) END K 10 svn:author V 3 kib K 8 svn:date V 27 2007-08-03T14:24:38.000000Z K 7 svn:log V 262 MFC rev. 1.273, submitted by peter: Change kn_hook value from cdev to struct tty to avoid dereferencing freed cdev. In ttygone(), wake up select(), sigio and kevent() users in addition to the queue sleepers. Return EV_EOF from kevent filters if TS_GONE is set. END K 10 svn:author V 5 maxim K 8 svn:date V 27 2007-08-03T15:45:55.000000Z K 7 svn:log V 284 o With -x switch do not pay attention at the hardcoded limit of 3 devices and dump stats for all devices in the system. User can still limit iostat -x by -n switch. Spotted by: Igor Sysoev Submitted by: kensmith Approved by: re (kensmith) MFC after: 2 weeks END K 10 svn:author V 3 mav K 8 svn:date V 27 2007-08-03T18:33:43.000000Z K 7 svn:log V 118 MFC msg.c rev 1.13, 1.14; internal.h rev 1.5 Replace select() by poll() to avoid problems with big descriptor number. END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-03T23:13:50.000000Z K 7 svn:log V 596 Oops, fix the fix for the i/o size of the fsinfo block. Its log message explained why the size is 1 sector, but the code used a size of 1 cluster. I/o sizes larger than necessary may cause serious coherency problems in the buffer cache. Here I think there were only minor efficiency problems, since a too-large fsinfo buffer could only get far enough to overlap buffers for the same vnode (the device vnode), so mappings are coherent at the page level although not at the buffer level, and the former is probably enough due to our limited use of the fsinfo buffer. Approved by: re (kensmith) END K 10 svn:author V 4 jeff K 8 svn:date V 27 2007-08-03T23:35:35.000000Z K 7 svn:log V 71 - Set SW_PREEMPT when we preempt in critical_exit(). Approved by: re END K 10 svn:author V 4 jeff K 8 svn:date V 27 2007-08-03T23:38:46.000000Z K 7 svn:log V 490 - Share scheduler locks between hyper-threaded cores to protect the tdq_group structure. Hyper-threaded cores won't really benefit from seperate locks anyway. - Seperate out the migration case from sched_switch to simplify the main switch code. We only migrate here if called via sched_bind(). - When preempted place the preempted thread back in the same queue at the head. - Improve the cpu group and topology infrastructure. Tested by: many on current@ Approved by: re END K 10 svn:author V 4 emax K 8 svn:date V 27 2007-08-04T00:30:13.000000Z K 7 svn:log V 141 MFC: Call ttyld_close() in nmdmclose() to ensure that nmdm(4) closes line discipline installed onto /dev/nmdmX device. Reviewed by: julian END K 10 svn:author V 4 jeff K 8 svn:date V 27 2007-08-04T01:21:28.000000Z K 7 svn:log V 75 - Fix one line that erroneously crept in my last commit. Approved by: re END K 10 svn:author V 8 deischen K 8 svn:date V 27 2007-08-04T13:16:09.000000Z K 7 svn:log V 153 Restore historical more(1) behavior (inhibit ti/te processing) which accidently got broke during the last less(1) import. Approved by: re(hrs), delphij END K 10 svn:author V 3 kib K 8 svn:date V 27 2007-08-04T17:43:11.000000Z K 7 svn:log V 62 Set D_NEEDGIANT. Approved by: phk Approved by: re (kensmith) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-04T19:26:42.000000Z K 7 svn:log V 98 Add ia64_srlz_d() and ia64_srlz_i() functions to aid in serialization. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-04T19:28:19.000000Z K 7 svn:log V 95 Add required data-serialization after writing to cr.itm and cr.itv. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-04T19:33:27.000000Z K 7 svn:log V 226 Replace "__asm __volatile()" by equivalent support functions from ia64_cpu.h. This improves readability and consistency and aids in auditing the code. Add data-serialization after writing to cr.tpr. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-04T19:36:14.000000Z K 7 svn:log V 298 Replace "__asm __volatile()" by equivalent support functions from ia64_cpu.h. This improves readability and consistency and aids in auditing the code. Add data-serialization after writing to the region registers and add instruction-serialization after writing to cr.pta. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-04T19:52:10.000000Z K 7 svn:log V 341 Replace "__asm __volatile()" by equivalent support functions from ia64_cpu.h. This improves readability and consistency and aids in auditing the code. Add instruction-serialization after writing to cr.pta. Delay enabling interrupts until after we setup the clocks and after we program the task priority register. Approved by: re (blanket) END K 10 svn:author V 4 csjp K 8 svn:date V 27 2007-08-04T20:35:42.000000Z K 7 svn:log V 87 Remove references to mpsafenet. This option no longer exists. Approved by: re@ (bmah) END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-08-04T21:09:04.000000Z K 7 svn:log V 346 - Ensure the path cost does not exceed 65535 in legacy STP mode. - If the path cost is calculated when the link is down, set a pending flag so it is calculated again when it comes back up. - To not use 00:00:00:00:00:00 as the bridge id, all interfaces are scanned and the lowest number wins. All zeros is too low. Approved by: re (rwatson) END K 10 svn:author V 3 kib K 8 svn:date V 27 2007-08-05T05:40:52.000000Z K 7 svn:log V 259 Do not acquire Giant unconditionally around the calls to the cdevsw d_mmap methods. prep_cdevsw() already installs the shims that acquire/drop Giant for the methods of a driver that specified the D_NEEDGIANT flag. Reviewed by: alc Approved by: re (kensmith) END K 10 svn:author V 5 maxim K 8 svn:date V 27 2007-08-05T07:38:09.000000Z K 7 svn:log V 120 o round-type -> round-trip. PR: docs/115082 Submitted by: Jordan Gordeev Approved by: re (kensmith) MFC after: 1 week END K 10 svn:author V 5 maxim K 8 svn:date V 27 2007-08-05T07:39:30.000000Z K 7 svn:log V 110 o Iomage -> Iomega. PR: docs/115208 Submitted by: John Nielsen Approved by: re (kensmith) MFC after: 1 week END K 10 svn:author V 6 marius K 8 svn:date V 27 2007-08-05T11:20:33.000000Z K 7 svn:log V 289 Initialize the rl_vlanctl field of the descriptors to zero (in order to clear RL_TDESC_VLANCTL_TAG). This fixes sending packets in the native VLAN when running both tagged and an untagged VLAN over the same trunk and descriptors are recycled. Approved by: re (kensmith) MFC after: 1 week END K 10 svn:author V 6 marius K 8 svn:date V 27 2007-08-05T11:28:19.000000Z K 7 svn:log V 1743 o In order to reduce bug and code duplication fold handling of NICs requiring DC_TX_ALIGN or DC_TX_COALESCE, which was previously done in dc_start_locked(), into dc_encap(). o In dc_encap(): - If m_defrag() fails just drop the packet like other NIC drivers do. This should only happen when there's a mbuf shortage, in which case it was possible to end up with an IFQ full of packets which couldn't be processed as they couldn't be defragmented as they were taking up all the mbufs themselves. This includes adjusting dc_start_locked() to not trying to prepend the mbuf (chain) if dc_encap() has freed it. - Likewise, if bus_dmamap_load_mbuf() fails as dc_dma_map_txbuf() failed, free the mbuf possibly allocated by the above call to m_defrag() and drop the packet. o In dc_txeof(): - Don't clear IFF_DRV_OACTIVE unless there are at least 6 free TX descriptors. Further down the road dc_encap() will bail if there are only 5 or fewer free TX descriptors, causing dc_start_locked() to abort and prepend the dequeued mbuf again so it makes no sense to pretend we could process mbufs again when in fact we won't. While at it replace this magic 5 with a macro DC_TX_LIST_RSVD. - Just always assign idx to sc->dc_cdata.dc_tx_cons; it doesn't make much sense to exclude the idx == sc->dc_cdata.dc_tx_cons case. o In dc_dma_map_txbuf() there's no need to set sc->dc_cdata.dc_tx_err to error if the latter is != 0, bus_dmamap_load_mbuf() already returns the same error value in that case anyway. o For less overhead, convert to use bus_dmamap_load_mbuf_sg() for loading RX buffers. o Remove some banal and/or outdated comments. Approved by: re (kensmith) MFC after: 1 week END K 10 svn:author V 6 marius K 8 svn:date V 27 2007-08-05T11:56:44.000000Z K 7 svn:log V 1649 - Divorce the IOTSBs, which so far where handled via a global list instead of per IOMMU, so we no longer need to program all of them identically in systems having multiple IOMMUs. This continues the rototilling of the nexus(4) done about 5 months ago, which amongst others changed nexus(4) and the drivers for host-to-foo bridges to provide bus_get_dma_tag methods, allowing to handle DMA tags in a hierarchical way and to link them with devices. This still doesn't move the silicon bug workarounds for Sabre (and in the uncommitted schizo(4) for Tomatillo) bridges into special bus_dma_tag_create() and bus_dmamap_sync() methods though, as w/o fully newbus'ified bus_dma_tag_create() and bus_dma_tag_destroy() this still requires too much hackery, i.e. per-child parent DMA tags in the parent driver. - Let the host-to-foo drivers supply the maximum physical address of the IOMMU accompanying the bridges. Previously iommu(4) hard- coded an upper limit of 16GB, which actually only applies to the IOMMUs of the Hummingbird and Sabre bridges. The Psycho variants as well as the U2S in fact can can translate to up to 2TB, i.e. translate to 41-bit physical addresses. According to the recently available Tomatillo documentation these bridges even translate to 43-bit physical addresses and hints at the Schizo bridges doing 43 bits as well. This fixes the issue the FreeBSD 6.0 todo list item "Max RAM on sparc64" was refering to and pretty much obsoletes the lack of support for bounce buffers on sparc64. Thanks to Nathan Whitehorn for pointing me at the Tomatillo manual. Approved by: re (kensmith) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-05T12:58:34.000000Z K 7 svn:log V 876 Silently fix up the estimated next free cluster number from the fsinfo sector, instead of failing the whole mount if it is garbage. Fields in the fsinfo sector are only advisory, so there are better sanity checks than this, and we already silently fix up the only other advisory field in the fsinfo (the free cluster count). This wasn't handled quite right in rev.1.92, 1.117, or in NetBSD. 1.92 also failed the whole mount for the non-garbage magic value 0xffffffff 1.117 fixed this well enough in practice since garbage values shouldn't occur in practice, but left the error handling larger and more convoluted than necessary. Now we handle the magic value as a special case of fixing up all out of bounds values. Also fix up the estimated next free cluster number when there is no fsinfo sector. We were using 0, but CLUST_FIRST is safer. Approved by: re (kensmith) END K 10 svn:author V 2 bz K 8 svn:date V 27 2007-08-05T16:16:15.000000Z K 7 svn:log V 676 Rename option IPSEC_FILTERGIF to IPSEC_FILTERTUNNEL. Also rename the related functions in a similar way. There are no functional changes. For a packet coming in with IPsec tunnel mode, the default is to only call into the firewall with the "outer" IP header and payload. With this option turned on, in addition to the "outer" parts, the "inner" IP header and payload are passed to the firewall too when going through ip_input() the second time. The option was never only related to a gif(4) tunnel within an IPsec tunnel and thus the name was very misleading. Discussed at: BSDCan 2007 Best new name suggested by: rwatson Reviewed by: rwatson Approved by: re (bmah) END K 10 svn:author V 8 truckman K 8 svn:date V 27 2007-08-05T16:33:06.000000Z K 7 svn:log V 226 The call to init_file() needs to be moved outside the loop in statd.c, otherwise mmap() gets called multiple times, which eventually fails due to address space exhaustion on i386. Approved by: re (kensmith) MFC after: 1 week END K 10 svn:author V 4 rink K 8 svn:date V 27 2007-08-05T16:55:40.000000Z K 7 svn:log V 996 Improve error handling in libdisk while parsing the kern.geom.conftxt sysctl. Previously, any parse error will result in the calling program exiting with an unpleasant message. This change will cause libdisk to issue a warning and ignore lines it cannot parse instead of bluntly terminating the unfortunate enough program. This change will allow you to use sysinstall if you have a NTFS parition with a space in the name (such as 'Win Xp'). In such a case, a line like the following will appear in the kern.geom.conftxt output: 2 LABEL ntfs/Win Xp 209818635264 512 i 0 o 0 As the fields are space-separated, libdisk would go beserk and exit the program. This would happen if using FreeBSD 7.0 snapshot images (as GEOM_LABEL is in the installation kernel as well), thus making it impossible to install FreeBSD without renaming your NTFS paritions. Reported by: Dwight Berendse Nod from: phk Reviewed by: imp Approved by: re (bmah), imp (mentor) MFC after: 1 month END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-05T18:19:38.000000Z K 7 svn:log V 277 In ia64_set_rr(), don't perform data serialization. This allows us to do the data serializations once after writing multiple region registers, as is done in pmap_switch(). All existing calls to ia64_set_rr() are followed with calls to ia64_srlz_d(). Approved by: re (blanket) END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-08-05T21:00:31.000000Z K 7 svn:log V 303 MFC if_lagg.c r1.17-18, if_lagg.h r1.10 - Avoid holding the softc lock when using copyout(). - Propagate the largest set of interface capabilities supported by all lagg ports to the lagg interface. - Use the MTU from the first interface as the lagg MTU, all extra interfaces must be the same. END K 10 svn:author V 3 alc K 8 svn:date V 27 2007-08-05T21:04:32.000000Z K 7 svn:log V 1622 Consider a scenario in which one processor, call it Pt, is performing vm_object_terminate() on a device-backed object at the same time that another processor, call it Pa, is performing dev_pager_alloc() on the same device. The problem is that vm_pager_object_lookup() should not be allowed to return a doomed object, i.e., an object with OBJ_DEAD set, but it does. In detail, the unfortunate sequence of events is: Pt in vm_object_terminate() holds the doomed object's lock and sets OBJ_DEAD on the object. Pa in dev_pager_alloc() holds dev_pager_sx and calls vm_pager_object_lookup(), which returns the doomed object. Next, Pa calls vm_object_reference(), which requires the doomed object's lock, so Pa waits for Pt to release the doomed object's lock. Pt proceeds to the point in vm_object_terminate() where it releases the doomed object's lock. Pa is now able to complete vm_object_reference() because it can now complete the acquisition of the doomed object's lock. So, now the doomed object has a reference count of one! Pa releases dev_pager_sx and returns the doomed object from dev_pager_alloc(). Pt now acquires dev_pager_mtx, removes the doomed object from dev_pager_object_list, releases dev_pager_mtx, and finally calls uma_zfree with the doomed object. However, the doomed object is still in use by Pa. Repeating my key point, vm_pager_object_lookup() must not return a doomed object. Moreover, the test for the object's state, i.e., doomed or not, and the increment of the object's reference count should be carried out atomically. Reviewed by: kib Approved by: re (kensmith) MFC after: 3 weeks END K 10 svn:author V 7 delphij K 8 svn:date V 27 2007-08-06T02:31:25.000000Z K 7 svn:log V 301 MFC revision 1.4: date: 2007/07/12 01:17:14; author: delphij; state: Exp; lines: +7 -7 - Simulate GNU gzip(1) behavior where full filename is being output in verbose mode when doing recursive[1]. - Use better representation of S: PR: bin/114470 Submitted by: Ighighi [1] END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-06T05:11:01.000000Z K 7 svn:log V 378 Keep interrupts disabled while handling external interrupts. There's no advantage in allowing nested external interrupts. In fact, it leads to a potential stack overrun. While here, put the interrupt vector in the trapframe, so as to compensate for the 36 cycle latency of reading cr.ivr. Further simplify assembly code by dealing with ASTs from C. Approved by: re (blanket) END K 10 svn:author V 6 marcel K 8 svn:date V 27 2007-08-06T05:15:57.000000Z K 7 svn:log V 437 Clear pending interrupts before we enable external interrupts. Recently the AP in my Merced box seems to have grown a habit of getting unexpected interrupts, such as redundant wake-ups and legacy interrupts that require an INTA cycle. While here, replace DELAY(0) with cpu_spinwait() so that it's clear what we're doing as well as enable the code to take advantage of cpu_spinwait() when it gets implemented. Approved by: re (blanket) END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-08-06T09:11:05.000000Z K 7 svn:log V 265 MFC Add a bridge interface flag called PRIVATE where any private port can not communicate with another private port. 1.11 src/sbin/ifconfig/ifbridge.c 1.142 src/sbin/ifconfig/ifconfig.8 1.102 src/sys/net/if_bridge.c 1.23 src/sys/net/if_bridgevar.h END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-08-06T10:00:40.000000Z K 7 svn:log V 98 MFC if_bridge.c r1.101, if_bridgevar.h r1.22 Avoid holding the softc lock when using copyout(). END K 10 svn:author V 7 thompsa K 8 svn:date V 27 2007-08-06T10:16:01.000000Z K 7 svn:log V 144 The path_cost field should have been increased to 32bits when RSTP support was merged, fix this now and sync the struct order while I am at it. END K 10 svn:author V 7 rwatson K 8 svn:date V 27 2007-08-06T14:26:03.000000Z K 7 svn:log V 559 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) END K 10 svn:author V 3 rrs K 8 svn:date V 27 2007-08-06T15:46:46.000000Z K 7 svn:log V 1038 - change number assignments for SHA225-512 (match artisync for bakeoff.. using the next sequential ones) - In cookie processing 1-2-1, we did not increment the stcb refcnt before releasing the tcb lock. We need to do this to keep the tcb from being freed by a abort or ?? unlikely but worth doing. Also get rid of unneed INP_WLOCK. - extra receive info included the rcvinfo which killed the padding/alignment. We now redefine all the fields properly so they both align properly both to 128 bytes. - A peeled off socket would not close without an error due to its misguided idea that sctp_disconnect() was not supported on it. This fixes it so it goes through the proper path. - When an assoc was being deleted after abort (via a timer) a small race condition exists where we might take a packet for the old assoc (since we are waiting for a cleanup timer). This state especially happens in mac. We now add a state in the asoc so these can properly handle the packet as OOTB. Approved by: re@freebsd.org(Ken Smith) END K 10 svn:author V 4 csjp K 8 svn:date V 27 2007-08-06T22:06:36.000000Z K 7 svn:log V 2329 Over the past couple of years, there have been a number of reports relating the use of divert sockets to dead locks. A number of LORs have been reported between divert and a number of other network subsystems including: IPSEC, Pfil, multicast, ipfw and others. Other dead locks could occur because of recursive entry into the IP stack. This change should take care of most if not all of these issues. A summary of the changes follow: - We disallow multicast operations on divert sockets. It really doesn't make semantic sense to allow this, since typically you would set multicast parameters on multicast end points. NOTE: As a part of this change, we actually dis-allow multicast options on any socket that IS a divert socket OR IS NOT a SOCK_RAW or SOCK_DGRAM family - We check to see if there are any socket options that have been specified on the socket, and if there was (which is very un-common and also probably doesnt make sense to support) we duplicate the mbuf carrying the options. - We then drop the INP/INFO locks over the call to ip_output(). It should be noted that since we no longer support multicast operations on divert sockets and we have duplicated any socket options, we no longer need the reference to the pcb to be coherent. - Finally, we replaced the call to ip_input() to use netisr queuing. This should remove the recursive entry into the IP stack from divert. By dropping the locks over the call to ip_output() we eliminate all the lock ordering issues above. By switching over to netisr on the inbound path, we can no longer recursively enter the ip_input() code via divert. I have tested this change by using the following command: ipfwpcap -r 8000 - | tcpdump -r - -nn -v This should exercise the input and re-injection (outbound) path, which is very similar to the work load performed by natd(8). Additionally, I have run some ospf daemons which have a heavy reliance on raw sockets and multicast. Approved by: re@ (kensmith) MFC after: 1 month LOR: 163 LOR: 181 LOR: 202 LOR: 203 Discussed with: julian, andre et al (on freebsd-net) In collaboration with: bms [1], rwatson [2] [1] bms helped out with the multicast decisions [2] rwatson submitted the original netisr patches and came up with some of the original ideas on how to combat this issue. END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T01:07:16.000000Z K 7 svn:log V 64 Remove unused include(s). Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T01:37:59.000000Z K 7 svn:log V 267 Include 's prerequisite instead of depending on namespace pollution in . Sort the include of instead of unsorting it after and depending on the pollution there. Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T01:40:27.000000Z K 7 svn:log V 174 Include and its prerequisite instead of depending on namespace pollution in and/or Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T02:08:06.000000Z K 7 svn:log V 64 Remove unused include(s). Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T02:11:16.000000Z K 7 svn:log V 104 Remove unused include(s). Remove banal comments before includes. Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T02:20:37.000000Z K 7 svn:log V 145 Sort includes. Remove banal comments before includes. Remove rotted banal comments attached to includes. Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T02:25:56.000000Z K 7 svn:log V 160 Forced commit to note that the log message for the previous commit should have said "Sort" where it said "Remove unused". Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T02:27:35.000000Z K 7 svn:log V 98 Sort includes. Remove banal comments attached to includes. Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T02:28:33.000000Z K 7 svn:log V 104 Sort includes. Remove rotted banal comment attached to includes. Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T03:22:10.000000Z K 7 svn:log V 89 Fix some style bugs (some whitespace errors only). Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T03:38:36.000000Z K 7 svn:log V 91 Fix some style bugs (mainly some whitespace errors). Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T03:43:28.000000Z K 7 svn:log V 179 Fix some style bugs (don't assume that off_t == int64_t; fix some comments; remove some parentheses; fix only a couple of whtespace errors). Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T03:59:49.000000Z K 7 svn:log V 330 Fix some style bugs (don't assume that off_t == int64_t; fix some comments; remove some parentheses; fix some whitespace errors; fix only one case of a boolean comparison of a non-boolean). Improve an error message by quoting ".", and by not printing large positive values as negative ones. Approved by: re (kensmith) (blanket) END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T04:32:49.000000Z K 7 svn:log V 38 MFC 1.2: Fix strict-aliasing warning. END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T04:38:22.000000Z K 7 svn:log V 37 MFC 1.9: Fill in some missing casts. END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T04:49:55.000000Z K 7 svn:log V 260 MFC tree.c 1.8: * Correct crash when files are removed during a traversal * Streamline some of the dir and link checks * Clarify comments * Guard header includes for portability Update bsdtar_platform.h to reflect that FreeBSD does indeed have . END K 10 svn:author V 7 davidxu K 8 svn:date V 27 2007-08-07T04:50:14.000000Z K 7 svn:log V 63 Output error message to STDERR_FILENO. Approved by: re (bmah) END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T04:55:21.000000Z K 7 svn:log V 61 MFC matching.c 1.11: Guard includes to improve portability. END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T05:05:03.000000Z K 7 svn:log V 26 MFC comments in bsdtar.c. END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T05:10:18.000000Z K 7 svn:log V 109 MFC include guards in bsdtar.c. Also, add HAVE_TIME_H to bsdtar_platform.h so they actually work correctly. END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T05:22:07.000000Z K 7 svn:log V 71 MFC include guards; add HAVE_GRP_H and HAVE_PWD_H to bsdtar_platform.h END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T05:30:22.000000Z K 7 svn:log V 71 MFC include guards and fill in extra definitions in bsdtar_platform.h. END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T05:34:38.000000Z K 7 svn:log V 107 MFC two minor fixes: * Message when exiting with a deferred error code. * Don't crash on bad use of -W END K 10 svn:author V 8 kientzle K 8 svn:date V 27 2007-08-07T05:38:10.000000Z K 7 svn:log V 251 MFC corrected arg handling: -o is not the same as --no-same-owner -o means different things depending on the mode in order to preserve both GNU and POSIX compatibility --no-same-owner always means the same thing, regardless of other options END K 10 svn:author V 3 bde K 8 svn:date V 27 2007-08-07T05:42:10.000000Z K 7 svn:log V 200 Fix and update the comments about the effect of the read-only flag on writing. They are still too verbose. Remove nearby unreachable code for handling symlinks. Approved by: re (kensmith) (blanket) END K 10 svn:author V 3 kib K 8 svn:date V 27 2007-08-07T09:04:50.000000Z K 7 svn:log V 131 Do not call free() while holding vnode interlock. Reported and tested by: Peter Holm Reviewed by: jeff Approved by: re (kensmith) END K 10 svn:author V 6 jkoshy K 8 svn:date V 27 2007-08-07T09:16:18.000000Z K 7 svn:log V 208 MFC rev 1.669: "Use a known good stack at the time of servicing an NMI--- reuse the space allocated for the double fault handler since this space is otherwise unused till the time a double fault occurs." END