summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Enhance reassignbuf(). When a buffer cannot be time-optimally inserteddillon2000-01-0511-43/+201
| | | | | | | | | | | | | | | | | | | into vnode dirtyblkhd we append it to the list instead of prepend it to the list in order to maintain a 'forward' locality of reference, which is arguably better then 'reverse'. The original algorithm did things this way to but at a huge time cost. Enhance the append interlock for NFS writes to handle intr/soft mounts better. Fix the hysteresis for NFS async daemon I/O requests to reduce the number of unnecessary context switches. Modify handling of NFS mount options. Any given user option that is too high now defaults to the kernel maximum for that option rather then the kernel default for that option. Reviewed by: Alfred Perlstein <bright@wintelcom.net>
* Add device driver support for USB ethernet adapters based on thewpaul2000-01-0523-10/+2062
| | | | | | | | | | | | | | | | | | | | | | | | Kawasaki LSI KL5KUSB101B chip, including the LinkSys USB10T, the Entrega NET-USB-E45, the Peracom USB Ethernet Adapter, the 3Com 3c19250 and the ADS Technologies USB-10BT. This device is 10mbs half-duplex only, so there's miibus or ifmedia support. This device also requires firmware to be loaded into it, however KLSI allows redistribution of the firmware images (I specifically asked about this; they said it was ok). Special thanks to Annelise Anderson for getting me in touch with KLSI (eventually) and thanks to KLSI for providing the necessary programming info. Highlights: - Add driver files to /sys/dev/usb - update usbdevs and regenerate attendate files - update usb_quirks.c - Update HARDWARE.TXT and RELNOTES.TXT for i386 and alpha - Update LINT, GENERIC and others for i386, alpha and pc98 - Add man page - Add module - Update sysinstall and userconfig.c
* argh, forgot the bus_dma_tag_creates.cg2000-01-055-4/+8
| | | | also, panic if channel init fails instead of derefing null.
* set up the pci regs properly for busmastering. this makes the card work oncg2000-01-051-0/+3
| | | | my smp box.
* Remove the unused 'func' arguments to the deregistration functions.msmith2000-01-051-4/+4
| | | | Submitted by: Darrell Anderson <anderson@cs.duke.edu>
* allocate isa bounce buffers of the right size for ess/mss cards, fixescg2000-01-054-8/+14
| | | | panics reported
* Fix at least one source of the continued 'NFS append race'. close()dillon2000-01-052-6/+42
| | | | | | | | | | | | | | | was calling nfs_flush() and then clearing the NMODIFIED bit. This is not legal since there might still be dirty buffers after the nfs_flush (for example, pending commits). The clearing of this bit in turn prevented a necessary vinvalbuf() from occuring leaving left over dirty buffers even after truncating the file in a new operation. The fix is to simply not clear NMODIFIED. Also added a sysctl vfs.nfs.nfsv3_commit_on_close which, if set to 1, will cause close() to do a stage 1 write AND a stage 2 commit synchronously. By default only the stage 1 write is done synchronously. Reviewed by: Alfred Perlstein <bright@wintelcom.net>
* Remove non-functional 'all:' target.grog2000-01-041-19/+10
| | | | | | | | | | | | | Remove unused 'state.h' and 'maketabs' targets. Fix white space style bugs. Submitted-by: bde Sort module names in SRCS. Suggested-by: bde Correct breakage committed in revision 1.16.
* Update some of the network driver documentation in the LINT file, whichdillon2000-01-043-12/+27
| | | | | | is where most people look to match drivers up with cards. Reviewed by: wpaul
* ISA device drivers use the ISA source interrupt number in locations wheretegge2000-01-0415-87/+589
| | | | | | | | | | | | | | the low level interrupt handler number should be used. Change setup_apic_irq_mapping() to allocate low level interrupt handler X (Xintr${X}) for any ISA interrupt X mentioned in the MP table. Remove an assumption in the driver for the system clock (clock.c) that interrupts mentioned in the MP table as delivered to IOAPIC #0 intpin Y is handled by low level interrupt handler Y (Xintr${Y}) but don't assume that low level interrupt handler 0 (Xintr0) is used. Don't allocate two low level interrupt handlers for the system clock. Reviewed by: NOKUBI Hirotaka <hnokubi@yyy.or.jp>
* Fix race condition caused by missing splnet()'s.archie2000-01-041-0/+4
|
* Be more careful about NOUDEV and NODEV.phk2000-01-041-0/+8
| | | | Submitted by: bde
* Create a separate pps_offset variable to use for applying thephk2000-01-041-1/+8
| | | | | | | | | | | hardpps() produced offset component. This is tested and behaved stable with frequency offsets from -338.05 to +499.91 PPM. Interestingly the machine I tested this on would fail if the clock were slower than 14.3132 MHz whereas it was perfectly happy to run at 16.384 MHz, in other words [-340PPM ... +14.4%] Make pps_shift tweakable with sysctl.
* Per BDE- make this more like the i386 code in that, as per the comment,mjacob2000-01-041-2/+5
| | | | | the simple calculation is good enough. Submitted by: bde@freebsd.org
* add wx0 drivermjacob2000-01-047-0/+16
|
* Add first pass of the Intel Gigabit Ethernet (wiseman) driver. Thismjacob2000-01-043-0/+2551
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | driver seems relatively functional, but could use some souping up, particularly in the performance area. This has both NetBSD and FreeBSD attachment code and a fair amount of effort has been put into making it easy to port to different *BSD platforms. The basic design is a one tfd per mbuf transmit (with no transmit related interrupts- tfds are gc'd as needed). The receive ring uses a 2K buffer per rfd with a +2 byte adjust for the ethernet header (so the payload is aligned). There's support that *almost* works for doing large packets- the rfd chaining code works, but there's some problem with getting good checksums at the IP reassembly level (ditto for doing short tfd's too). The chip has support for TCP checksums insertion for transmit and TCP checksum calculation on receive (for both you have to do some appropriate backoff && twiddling), but this isn't in place. This is nearly entirely reverse engineered from the released Intel driver, so there's a lot of "We have to do this but do not know why" stuff. There is somebody who has the chip specs who works in FreeBSD but they're being a bit standoffish about even sharing hints which is somewhat annoying. It's also apparent that all I had to work with were the first rev boards. This driver has been lightly tested on intel && alpha, but only point-to-point. There may be some issues with switches- use of boot time environment variables that override EEPROM settings (e.g., 'set wx_ilos=1' which inverts the sense of optical signal loss) may help with this. I had this out for review for three weeks, and nobody said anything negative or positive, ergo, this checkin has no 'reviewed by' field which I would have preferred.
* add wx (Intel Wiseman Gig Ethernet) drivermjacob2000-01-041-0/+1
|
* oop, use PRINTF not printf in MI codemjacob2000-01-041-1/+1
|
* - Fixed warnings.nyan2000-01-0412-183/+136
| | | | - Removed unnecessary include files.
* Clean up some debug printing. Find the correct lun when SCCLUN ismjacob2000-01-041-25/+43
| | | | | defined. If we complete with a check condition but no sense data, say we had an AUTOSENSE failure.
* Make Fibre Channel cards correctly note the presence/absencemjacob2000-01-041-3/+11
| | | | | of ARQ data and punt the dealing with its presence/absence to the platform layers.
* set default target mode debug to 0mjacob2000-01-041-1/+1
|
* add clarifying tag define for FCmjacob2000-01-041-0/+1
|
* Add in an isp_tdebug environment variable. Clean up some debuggingmjacob2000-01-042-20/+130
| | | | printouts for clarity.
* fix leap year calculationmjacob2000-01-041-1/+2
|
* Ho, ho, ho... this clock chip is not y2k compliant. Motorolamjacob2000-01-041-1/+14
| | | | | | has it blacklisted. Silly us for not planning ahead. Tsk. Anyway- a 10 year window patch is probably sufficient to still detect nonsense in the clock but allow us to roll past the year 2000.
* Add in ISP_TARGET_MODE description.mjacob2000-01-043-0/+9
|
* Add in isp_target.c to be compiled for isp- it'd be nice if we couldmjacob2000-01-041-0/+1
| | | | do conditional file inclusing based on options.
* These are platform independent functions for target mode support.mjacob2000-01-041-0/+1227
| | | | | This is just a first pass at this and is likely to change a bit over the next month.
* These are platform independent definitions for target mode support-mjacob2000-01-031-0/+619
| | | | | | | code gratefully borrowed from Patrick Stirling who did a lot of the grunt work on this years ago. There are also some beginnings of swizzle macros in case we go to a big endian machine. This is just a first pass at this and is likely to change a bit over the next
* Make a static chain of isp softcs- gdb usage becomes a lot easier.mjacob2000-01-031-17/+1079
| | | | | | | | | Add in a very large amount of target mode support code- this is just a first pass at this. It's a difficult thing because some of the code can be in platform independent areas (see isp_target.?) but a lot has to be in platform dependent areas because of not only the tight coupling of received commands/events and the specific OS subsystem but because the platform independent code has (deliberately) no event/wait mechanisms.
* Raise default FCP logintime to 60 seconds. Move the positionmjacob2000-01-031-21/+53
| | | | | | | of where we could have seen the loop up at least once so it makes sense. Change some stuff in ispscsicmd so we don't get stuck there if the loop has never come up yet. Add in some target mode support code.
* Support target mode operations. This involves having some variantmjacob2000-01-032-90/+700
| | | | | | dma mapping callback routines to select from as target mode entries are handled a fair bit differently from normal initiator mode entries.
* Role platform minor revision. Add in some target mode onlymjacob2000-01-031-1/+35
| | | | private structure definitions.
* add isp_print_qentry inline functionmjacob2000-01-031-0/+23
|
* Roll minor revision number and add a more finalized listmjacob2000-01-031-8/+7
| | | | of target mode related enums.
* Add missing target mode flag and fix the RQSTYPE_CTIO0mjacob2000-01-031-1/+2
| | | | to be CTIO as it should be.
* Add options for COMPAT_SVR4 and DEBUG_SVR4 for completeness.newton2000-01-033-0/+6
|
* Need to #include vm_zone.h to pick up inline definition of zfree() so thatnewton2000-01-032-0/+2
| | | | NDFREE() macro from namei.h will be happy.
* Fix link problem on ISA only systems..sos2000-01-031-4/+2
|
* Use MAP_NOSYNC for vnodes without any links in their filesystem.guido2000-01-031-0/+7
| | | | | | | | | This is necessary for vmware: it does not use an anonymous mmap for the memory of the virtual system. In stead it creates a temp file an unlinks it. For a 50 MB file, this results in a ot of syncing every 30 seconds. Reviewed by: Matthew Dillon <dillon@backplane.com>
* Fix typos per PR 15649. Also did some rewording for clarity.archie2000-01-032-34/+38
| | | | | PR: docs/15649 Submitted by: Kazuo Horikawa <horikawa@jp.FreeBSD.org>
* prevent kernel panic at suspend/resume.shin2000-01-031-1/+1
| | | | | | confirmed by: sanpei, joe PR: kern/15742
* Make offsetof equivalent with <stddef.h>. This paves the way formarcel2000-01-034-14/+17
| | | | | | further enhancements/reorganisations. Discussed with: bde
* Merge from the following changes.nyan2000-01-033-48/+121
| | | | | | sys/boot/i386/libi386/biosmem.c Rev 1.4 sys/boot/i386/libi386/time.c Rev 1.3 sys/boot/i386/loader/main.c Rev 1.16
* It appears that under certain circumstances that I still can't quite pinwpaul2000-01-033-5/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | down, the dc driver and receiver can fall out of sync with one another, resulting in a condition where the chip continues to receive packets but the driver never notices. Normally, the receive handler checks each descriptor starting from the current producer index to see if the chip has relinquished ownership, indicating that a packet has been received. The driver hands the packet off to ether_input() and then prepares the descriptor to receive another frame before moving on to the next descriptor in the ring. But sometimes, the chip appears to skip a descriptor. This leaves the driver testing the status word in a descriptor that never gets updated. The driver still gets "RX done" interrupts but never advances further into the RX ring, until the ring fills up and the chip interrupts again to signal an error condition. Sometimes, the driver will remain in this desynchronized state, resulting in spotty performance until the interface is reset. Fortunately, it's fairly simple to detect this condition: if we call the rxeof routine but the number of received packets doesn't increase, we suspect that there could be a problem. In this case, we call a new routine called dc_rx_resync(), which scans ahead in the RX ring to see if there's a frame waiting for us somewhere beyond that the driver thinks is the current producer index. If it finds one, it bumps up the index and calls the rxeof handler again to snarf up the packet and bring the driver back in sync with the chip. (It may actually do this several times in the event that there's more than one "hole" in the ring.) So far the only card supported by if_dc which has exhibited this problem is a LinkSys LNE100TX v2.0 (82c115 PNIC II), and it only seems to happen on one particular system, however the fix is general enough and has low enough overhead that we may as well apply it for all supported chipsets. I also implemented the same fix for the 3Com xl driver, which is apparently vulnerable to the same problem. Problem originally noted and patch tested by: Matt Dillon
* Fixed to get the BIOS geometry.nyan2000-01-031-4/+5
|
* truss /usr/bin/suphk2000-01-031-2/+2
| | | | | | | | | | | | | | | | login (or not if root) then exit the shell truss will get stuct in tsleep I dont know if this is correct, but it fixes the problem and according to the commends in pioctl.h, PF_ISUGID is set when we want to ignore UID changes. The code is checking for when PF_ISUGID is not set and since it never is set, we always ignore UID changes. Submitted by: Paul Saab <ps@yahoo-inc.com>
* Remove -g compiler flag.marcel2000-01-031-1/+0
|
* o Add build-tools target for maketabs although it doesn't seem tomarcel2000-01-031-3/+5
| | | | | be used. I therefore won't add it to Makefile.inc1. o Remove -g compilation flags.
OpenPOWER on IntegriCloud