summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Fix some locking and logic bugs pointed out by jhb. These fix driver detach ↵nwhitehorn2008-07-033-40/+26
| | | | | | and speed up data transfer by nearly a factor of 2. Approved by: marcel (mentor)
* Be smarter about disabling interface capabilities. TOE/TSO/TXCSUM will only bethompsa2008-07-031-23/+51
| | | | | | | disabled if one (or more) of the member interfaces does not support it. Always turn off LRO since we can not bridge a combined frame. Tested by: Stefan Lambrev
* Add module dependancy on nfs.dfr2008-07-031-0/+1
|
* Remove a bogusly introduced rtalloc_ign() in rev. 1.335/SVN 178029,bz2008-07-031-1/+0
| | | | | | | | | | | generating an RTM_MISS for every IP packet forwarded making user space routing daemons unhappy. PR: kern/123621, kern/124540, kern/122338 Reported by: Paul <paul gtcomm.net>, Mike Tancsa <mike sentex.net> on net@ Tested by: Paul and Mike Reviewed by: andre MFC after: 3 days
* Remove GIANT_REQUIRED from IPv6 input, forward, and frag6 code. The frag6rwatson2008-07-033-7/+1
| | | | | | code is believed to be MPSAFE, and leaving aside the IPv6 route cache in forwarding, Giant appears not to adequately synchronize the data structures in the input or forwarding paths.
* Change a variable name to not shadow a globaljulian2008-07-031-2/+2
| | | | Obtained from: vimage
* Update copyright date in light of soreceive_dgram(9).rwatson2008-07-031-1/+1
|
* Increase the ceiling on the kmem map's size to 3.6GB. Also, define thealc2008-07-031-1/+2
| | | | | | ceiling as a fraction of the kernel map's size rather than an absolute quantity. Thus, scaling of the kmem map's size will be automatic with changes to the kernel map's size.
* Add soreceive_dgram(9), an optimized socket receive function for use byrwatson2008-07-023-0/+238
| | | | | | | | | | | | | | datagram-only protocols, such as UDP. This version removes use of sblock(), which is not required due to an inability to interlace data improperly with datagrams, as well as avoiding some of the larger loops and state management that don't apply on datagram sockets. This is experimental code, so hook it up only for UDPv4 for testing; if there are problems we may need to revise it or turn it off by default, but it offers *significant* performance improvements for threaded UDP applications such as BIND9, nsd, and memcached using UDP. Tested by: kris, ps
* Set the IPv6 netisr handler as NETISR_MPSAFE on the basis that, despiterwatson2008-07-021-1/+1
| | | | | | there still being some well-known races in mld6 and nd6, running with Giant over the netisr handler provides little or not additional synchronization that might cause mld6 and nd6 to behave better.
* Use msleep_spin() instead of unlock/tsleep/lock. This wasrdivacky2008-07-021-6/+2
| | | | | | | | | | already commited but with a wrong msleep variant and then backed out. Note that this changes the semantic a little as msleep_spin does not let us to specify priority after wakeup. Approved by: wkoszek, cognet Approved by: kib (mentor)
* Add RTL8211C(L) support.yongari2008-07-022-2/+15
| | | | | | | Disable advanced link-down power saving in phy reset. Reported by: nork Tested by: nork
* Add a new RTL8169 variant, 8169SB(L)/8110SB(L).yongari2008-07-022-1/+4
| | | | | Reported by: nork Tested by: nork
* Add basic support for RTL8168C, RTL8168CP, RTL8111C and RTL8111CP.yongari2008-07-022-43/+158
| | | | | | | | | | | | | | | | ATM Tx/Rx checksum offload is supported but TSO and jumbo frame is not yet supported. Because these newer controllers use different descriptor formats, a flag RL_FLAG_DESCV2 flag was introduced to handle that case in Tx/Rx handler. Also newer controllers seems to require to not touch 'enable Tx/Rx bit' in RL_CPLUS_CMD register so don't blindly try to set that bits. Note, it seems that there is still power-saving related issue where driver fails to attach PHY. Rebooting seems to fix that issue but number of required reboots varys. Many thanks to users that helped during developement. I really appreciate their patient and test/feedbacks.
* Display detected chip revision in device attach. This will help toyongari2008-07-021-2/+5
| | | | | diagnose revision specific issues in future. Also add 0x to notify that the revision number is in hex form.
* If MSI is not active make sure to disable MSI in EEPROM.yongari2008-07-021-0/+11
|
* In device detach don't access ifnet structure unless device isyongari2008-07-021-4/+4
| | | | | attached. This fixes NULL pointer dereference when polling(9) is active and unsupported hardware is detected in device attach.
* Toggling IFF_ALLMULTI flag does not require full interfaceyongari2008-07-021-1/+1
| | | | reintialization.
* Instead of allocating variables for each events/hardware flags, useyongari2008-07-022-49/+47
| | | | | | | | | a dedicated flag that represents controller capabilities/events. This will simplify many part of code that requires different workaround for each controller revisions and will enhance readability. While I'm here move PHY wakeup code up before mii_phy_probe() which seems to help to wake PHY in some cases.
* Eliminate an unnecessary static variable: nkpt.alc2008-07-021-9/+2
|
* Switch to memory space register mapping over IO space. If thatyongari2008-07-022-21/+23
| | | | mapping fails fall back to traditional IO space access.
* While accessing EEPROM command register use pre-defined constantyongari2008-07-021-3/+3
| | | | instead of hardcoded value.
* After the change of r176757 re(4) no longer relys on readingyongari2008-07-021-32/+18
| | | | | | | | RL_TXCFG register to identify a device in device probe. Reflect the fact by modifing device description with general ethernet controller family. Note, rl_basetype in struct rl_type is not used and the more detailed information is provided with rl_hwrev structure.
* Remove duplicated H/W revision check.yongari2008-07-021-5/+0
|
* Rework how the mpt_user personality handles buffers for config pages.jhb2008-07-011-67/+105
| | | | | | | | | | | | | | Previously we reused the space in the request buffer after the request header to hold config pages during a transaction. This does not work when reading large pages however. Also, we were already malloc'ing a buffer to do a copyin/copyout w/o holding locks that was then copied into/out of the request buffer. Instead, go ahead and use bus dma to alloc a buffer for each config page request (and RAID actions that have an associated ActionSGE). This results in fewer data copies and allows for larger sized requests. For now the maximum size of a request is arbitrarily limited to 16 MB. MFC after: 2 weeks
* During shutdown, deregister the shutdown hook from the correct eventjhb2008-07-011-1/+1
| | | | | | handler. MFC after: 2 weeks
* Fix instances of bogus #elsif directive.dds2008-07-011-21/+21
| | | | | Found by: CScout MFC after: 2 weeks
* Fix off-by-one error.nyan2008-07-011-1/+1
| | | | MFC after: 1 week
* Set bridge MAC addresses to the MAC address of their first interface unlessphilip2008-07-011-6/+33
| | | | | | | | | locally configured. This is more in line with the behaviour of other popular bridging implementations and makes bridges more predictable after reboots for example. Reviewed by: thompsa MFC after: 1 week
* Remove unused 'td' arguments from smbfs_hash_lock() andrwatson2008-07-011-9/+9
| | | | | | smbfs_hash_unlock(). MFC after: 3 days
* Do not set IFF_DEBUG directly from the driver.rik2008-06-308-29/+63
| | | | MFC after: 1 month.
* Remove spls from NFS server setup call; expand receive socket bufferrwatson2008-06-301-8/+3
| | | | | | | locking to cover full setup of socket upcalls; remove XXX about locking. MFC after: 3 weeks
* In udp_append() and udp_input(), make use of read locking on incpbsrwatson2008-06-301-8/+8
| | | | | | | | | | | | | | | rather than write locking: while we need to maintain a valid reference to the inpcb and fix its state, no protocol layer state is modified during an IPv4 UDP receive -- there are only changes at the socket layer, which is separately protected by socket locking. While parallel concurrent receive on a single UDP socket is currently relatively unusual, introducing read locking in the transmit path, allowing concurrent receive and transmit, will significantly improve performance for loads such as BIND, memcached, etc. MFC after: 2 months Tested by: gnn, kris, ps
* Avoid NULL deference.delphij2008-06-301-0/+5
| | | | Reviewed by: ivoras
* Correct SB600 AC97 Audio PCI ID, otherwise we will attach to thedelphij2008-06-301-1/+1
| | | | SBx00 PCI to PCI Bridge which causes problems.
* Document the layout of the address space, borrowing heavily fromalc2008-06-301-2/+12
| | | | http://lists.freebsd.org/pipermail/freebsd-amd64/2005-July/005578.html
* Compute NKPDPE from NKPT. This reduces the number of knobs that must bealc2008-06-301-1/+1
| | | | turned in order to change the size of the kernel virtual address space.
* Strictly speaking, the definition of VM_MAX_KERNEL_ADDRESS is wrong. However,alc2008-06-292-2/+1
| | | | | | | in practice, the error (currently) makes no difference because the computation performed by KVADDR() hides the error. This revision fixes the error. Also, eliminate a (now) unused definition.
* Increase the size of the kernel virtual address space to 6GB. Until thealc2008-06-291-4/+3
| | | | | | | maximum size of the kmem map can be greater than 4GB, there is little point in making the kernel virtual address space larger than 6GB. Tested by: kris@
* Remove an unneeded error variable to make clear that if reachingbz2008-06-291-3/+1
| | | | the end of the function we never return an error.
* Add a new priv 'PRIV_SCHED_CPUSET' to check if manipulating cpusets isbz2008-06-292-1/+2
| | | | | | allowed and replace the suser() call. Do not allow it in jails. Reviewed by: rwatson
* Remove the unused softc from the lo(4) driver.ed2008-06-291-20/+2
| | | | | | | | | Now that the pseudo-interface cloner has an internal list of instances, there is no need to create a softc. The softc only contains a pointer to the ifp, which means there is no valid reason to keep it. While there, remove the corresponding malloc-pool. Approved by: philip (mentor)
* Try to fix errors introduced in svn180085/cvs rev. 1.10:bz2008-06-291-1/+2
| | | | | | | | * Include ip6_var.h for ip6stat. * Use the correct name under ip6stat: `ip6s_cantforward' instead of its IPv4 counterpart. MFC after: 10 days
* Repair botched variable rename.kan2008-06-291-4/+4
| | | | Pointy hat to: julian
* It may be #if 0'd out code, but change a varname to not shadow a global.julian2008-06-291-4/+4
|
* Enter the 1990s. Use real function declaration.julian2008-06-291-1/+1
|
* Oops, we've been incrementing the wrong cantforward variable.julian2008-06-291-1/+2
| | | | Obtained from: vimage tree
* Rename two vars so that they are different from the same vars in ipv4.julian2008-06-291-7/+7
| | | | | | | They are static so it was not a problem 'per se' but it was confusing to the reader. Obtained from: vimage tree
* Remove stray "miibus0" reference from ancient kernel config file times.philip2008-06-281-1/+1
| | | | MFC after: 1 day
* Style fix (space into tab).remko2008-06-281-1/+1
| | | | Approved by: imp (mentor, implicit)
OpenPOWER on IntegriCloud