summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* - Divorce the IOTSBs, which so far where handled via a global listmarius2007-08-057-143/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* o In order to reduce bug and code duplication fold handling of NICsmarius2007-08-052-69/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Initialize the rl_vlanctl field of the descriptors to zero (in ordermarius2007-08-051-0/+1
| | | | | | | | | 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
* o Iomage -> Iomega.maxim2007-08-051-1/+1
| | | | | | | PR: docs/115208 Submitted by: John Nielsen Approved by: re (kensmith) MFC after: 1 week
* o round-type -> round-trip.maxim2007-08-051-1/+1
| | | | | | | PR: docs/115082 Submitted by: Jordan Gordeev Approved by: re (kensmith) MFC after: 1 week
* Do not acquire Giant unconditionally around the calls to the cdevswkib2007-08-051-5/+0
| | | | | | | | | 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)
* - Ensure the path cost does not exceed 65535 in legacy STP mode.thompsa2007-08-042-2/+31
| | | | | | | | | - 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)
* Remove references to mpsafenet. This option no longer exists.csjp2007-08-041-14/+1
| | | | Approved by: re@ (bmah)
* Replace "__asm __volatile()" by equivalent support functions frommarcel2007-08-041-6/+6
| | | | | | | | | | | 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)
* Replace "__asm __volatile()" by equivalent support functions frommarcel2007-08-041-3/+5
| | | | | | | | | 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)
* Replace "__asm __volatile()" by equivalent support functions frommarcel2007-08-041-16/+18
| | | | | | | | 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)
* Add required data-serialization after writing to cr.itm and cr.itv.marcel2007-08-041-0/+1
| | | | Approved by: re (blanket)
* Add ia64_srlz_d() and ia64_srlz_i() functions to aid in serialization.marcel2007-08-041-0/+12
| | | | Approved by: re (blanket)
* Set D_NEEDGIANT.kib2007-08-041-0/+1
| | | | | Approved by: phk Approved by: re (kensmith)
* Restore historical more(1) behavior (inhibit ti/te processing) whichdeischen2007-08-041-1/+1
| | | | | | accidently got broke during the last less(1) import. Approved by: re(hrs), delphij
* - Fix one line that erroneously crept in my last commit.jeff2007-08-041-1/+0
| | | | Approved by: re
* - Share scheduler locks between hyper-threaded cores to protect thejeff2007-08-031-114/+200
| | | | | | | | | | | | | 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
* - Set SW_PREEMPT when we preempt in critical_exit().jeff2007-08-031-1/+1
| | | | Approved by: re
* Oops, fix the fix for the i/o size of the fsinfo block. Its logbde2007-08-032-2/+2
| | | | | | | | | | | | | | | 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)
* o With -x switch do not pay attention at the hardcoded limit of 3 ↵maxim2007-08-031-5/+7
| | | | | | | | | 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
* Add regression tests for flopen(3).des2007-08-033-1/+189
| | | | Approved by: re (blanket)
* Back out previous commit until I figure out why my regression test fails.des2007-08-033-23/+17
| | | | Approved by: re (kensmith)
* Use fcntl(2)-style locks instead of less-portable flock(2)-style locks.des2007-08-033-17/+23
| | | | Approved by: re (kensmith)
* MFp4 - Refine locking to eliminate some potential race/panics:delphij2007-08-032-21/+22
| | | | | | | | | | | | | - 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)
* New release notes: if_bridge(4) private ports, wlandebug(8).bmah2007-08-031-0/+17
| | | | Approved by: re (implicitly)
* Move mp_topology() from apic_init(i386) and apic_setup_local(amd64) topeter2007-08-024-36/+12
| | | | | | | | | | | | | | 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)
* Add myself as delphij's mentee.loader2007-08-021-0/+2
| | | | Approved by: re (bmah), delphij (mentor)
* 1. Move the disable-empty-zone stuff down below the first 25 lines sodougb2007-08-021-13/+13
| | | | | | | | | | | | | | | | | | 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)
* Remove fast_ipsec.4. Was merged in parts to ipsec.4.bz2007-08-021-134/+0
| | | | Approved by: re (bmah)
* Remove the last entries to fast_ipsec.bz2007-08-026-42/+116
| | | | | | | | 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)
* New release note: SA-07:06.tcpdump, SA-07:07.bind.bmah2007-08-021-0/+9
| | | | Approved by: re (implicitly)
* Add the device ID for the VIA CX700 chipset.kevlo2007-08-021-2/+9
| | | | Approved by: re (hrs)
* MFP4(123686): Fixing various ancontrol(8) related panics by dropping locksavatar2007-08-021-12/+60
| | | | | | | | around copyin()/copyout(). Reviewed by: sam, thompsa Tested by: dhw Approved by: re (kensmith)
* When generating ports INDEX files from downloaded "describes" data, buildcperciva2007-08-021-0/+1
| | | | | | | an index for FreeBSD 7.x too. MFC After: 1 week Approved by: re (hrs)
* Call ttyld_close() in nmdmclose() to ensure that nmdm(4)emax2007-08-011-1/+6
| | | | | | | | closes line discipline installed onto /dev/nmdmX device. Reviewed by: julian Approved by: re (hrs) MFC after: 3 days
* Add 64bit statistic counters to the ng_ppp node.mav2007-08-013-6/+93
| | | | | | | 64bit counters are needed to simplify traffic accounting and reduce system load at the big PPP concentrators. Approved by: re (rwatson), glebius (mentor)
* This commit was generated by cvs2svn to compensate for changes in r171682,simon2007-08-011-8/+39
|\ | | | | | | which included commits to RCS files with non-trunk default branches.
| * Correct buffer overflow in tcpdump(1).simon2007-08-011-8/+39
| | | | | | | | | | | | | | Security: FreeBSD-SA-07:06.tcpdump Security: CVE-2007-3798 Obtained from: tcpdump.org Approved by: re (security blanket)
* | This patch improves fine-grained locking for the ng_ppp node.mav2007-08-011-68/+137
| | | | | | | | | | | | | | | | | | 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)
* | declare struct tftphdr and embedded union as beeing packed, which isticso2007-08-011-2/+2
| | | | | | | | | | | | | | | | required for arm. Tested on: arm, i386, amd64 Approved by: re (rwatson) MFC after: 1 week
* | Fix for PR bin/115033. This corrects a crash when long optionskientzle2007-08-011-0/+4
| | | | | | | | | | | | | | are specified with the "-W option=arg" syntax and the '=' is omitted. MFC after: 3 days Approved by: re (rwatson)
* | Add a bridge interface flag called PRIVATE where any private port can notthompsa2007-08-014-34/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | Change TCPTV_MIN to be independent of HZ. While it was documented topeter2007-07-312-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Make the driver fully MPSAFE. This fixes some serious locking problemsscottl2007-07-311-12/+32
| | | | | | | | | | | | | | | | 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
* | Fix locking mistakes in the error recovery paths of the AHC and AHD drivers.scottl2007-07-312-4/+0
| | | | | | | | Approved by: re
* | Add in all the USB devices and all the wireless goo. The KB9202 hasimp2007-07-311-0/+44
| | | | | | | | | | | | | | 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)
* | Make USB work on the KB9202{,A,B} boards. This has been in p4 for aboutimp2007-07-313-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | MFppc:cognet2007-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | - Getipnodebyname() and getipnodebyaddr() reimplemented throughbushman2007-07-311-1387/+72
| | | | | | | | | | | | gethostbyname() and gethostbyaddr() accordingly Approved by: re (kensmith), brooks (mentor)
* | Fix backward compatibility of the "old" (i.e. FreeBSD6) lseekmarcel2007-07-312-4/+4
| | | | | | | | | | | | | | | | | | | | | | 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)
OpenPOWER on IntegriCloud