summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Clean up the memory mapped/Programmed I/O stuff so that the driver completelygibbs1996-11-111-69/+73
| | | | | | | | | | | | | | uses one or the other. This required some changes to the ahc_reset() function, and how early the probes had to allocate their softc. Turn the AHC_IN/OUT* macros into inline functions and lowercase their names to indicate this change. Geting AHC_OUTSB to work as a macro doing conditional memory mapped I/O would have been too gross. Be smart about the STPWEN control bit in SCFRCTL1. It should only be set if the low byte of the bus is to be terminated. We figure this out either by "caching" the value left over from the BIOS setup before we reset the card or by using the values stored in the seeprom if it is availible.
* Clean up the memory mapped/Programmed I/O stuff so that the driver completelygibbs1996-11-112-302/+337
| | | | | | | | | | | | | | | | | | | uses one or the other. This required some changes to the ahc_reset() function, and how early the probes had to allocate their softc. Turn the AHC_IN/OUT* macros into inline functions and lowercase their names to indicate this change. Geting AHC_OUTSB to work as a macro doing conditional memory mapped I/O would have been too gross. Stop setting STPWEN in the main driver and let the PCI front end do it instead. It knows better. Add the clearing of the QOUTQCNT variable during command complete processing in the SCB paging case. Go back to doing unconditional retries for the QUEUE FULL status condition. This is really a kludge, but the code to handle it properly is on the SCSI branch and will not make it into 2.2.
* Clean up the memory mapped/Programmed I/O stuff so that the driver completelygibbs1996-11-111-16/+22
| | | | | | | | | uses one or the other. This required some changes to the ahc_reset() function, and how early the probes had to allocate their softc. Turn the AHC_IN/OUT* macros into inline functions and lowercase their names to indicate this change. Geting AHC_OUTSB to work as a macro doing conditional memory mapped I/O would have been too gross.
* Add the AHC_FORCE_PIO option.gibbs1996-11-113-12/+24
| | | | Update comment on AHC_SCBPAGING_ENABLE since I think it works now.
* Fix two problems with SCB Paging.gibbs1996-11-112-36/+29
| | | | | | | | | | 1) get_free_or_disc_scb was not being passed its argument correctly in one case 2) Add protection in the form of the QOUTQCNT variable to prevent overflowing the QOUTFIFO. This should make SCB Paging work. Really, I mean it now. 8-)
* Add the IP_RECVIF socket option, which supplies a packet's incoming interfacefenner1996-11-119-112/+180
| | | | | | | | using a sockaddr_dl. Fix the other packet-information socket options (SO_TIMESTAMP, IP_RECVDSTADDR) to work for multicast UDP and raw sockets as well. (They previously only worked for unicast UDP).
* Support the PG_G flag on Pentium-Pro processors. This prettydyson1996-11-117-89/+255
| | | | | much eliminates the unnecessary unmapping of the kernel during context switches and during invtlb...
* Allow us to enable the 'XT_KEYBOARD' code using a configuration flag.nate1996-11-106-24/+60
| | | | | | | | This allows the user to add modify syscons's configuration flags using UserConfig that will allow older/quirky hardware (most notably older IBM ThinkPad laptops) to work with the standard boot kernel. Inspired by: The Nomads
* Put the packet error printf inside #ifdef DIAGNOSTIC.dg1996-11-102-2/+6
|
* Re-enable the TCP SYN-attack protection code. I was the one who didn'tfenner1996-11-102-6/+2
| | | | | | understand the socket state flag. 2.2 candidate.
* Fixed lookup of ".." in checkpath. It always failed, so renames ofbde1996-11-092-2/+2
| | | | | | | | directories to a different parent directory always failed. This bug was caused by 4.4Lite2 changing the directory format and ext2fs not keeping up. Should be in 2.2.
* Fix an ordering bug -- pmap_remove_pages should be called BEFOREdyson1996-11-091-2/+2
| | | | | | vm_map_remove, not after... 2.2-RELEASE candidate.
* Back out my previous change.max1996-11-091-2/+2
| | | | | | It probably broke the support for the device. Pointed-Out by: joerg
* Re-sync with -current. Should be in 2.2.asami1996-11-0911-127/+158
| | | | Submitted by: The FreeBSD(98) Development Team
* (1) Updateasami1996-11-0910-30/+38
| | | | | | | | | | (2) Don't depend on BOOTSEG (3) Change BOOTSEG from 0x9000 to 0x1000 Should be in 2.2. Submitted by: FreeBSD(98) Development Team
* Only access the specific interrupt status registers if required.se1996-11-081-4/+4
| | | | | | | | | This follows more closely the suggestions in the latest NCR docs, and has been running on my system for weeks with no problem. It does improve the quality of diagnostic messages and does allow to better understand the sequence of events in case of an error. This should go into 2.2 and 2.1.6.
* Fixed spacefree calculation in ext2_direnter(). This bug sometimes causedbde1996-11-082-2/+2
| | | | | | | | | panics. This should be in 2.2, of course. Submitted by: davidg Obtained from: bouyer@antioche.ibp.fr (Manuel BOUYER) (fix for NetBSD)
* Removed gratuitous differences between ext2_readwrite.c and ufs_readwrite.c.bde1996-11-082-24/+34
| | | | | | | | | | | | | | | | | This fixes several bugs and one missing feature: - cluster_read() was needlessly used for reading files of size exactly 1 block. - EFAULT errors for read didn't terminate the loop. This was probably harmless. - IO_VMIO handling was missing near line 275. I don't know what this does. - B_CLUSTEROK was only set if (doclusterwrite) nead line 293. This was harmless, if only because another bug prevents doclusterwrite from being 0. - MNT_NOATIME wasn't implemented. This should be in 2.2, of course. Reviewed by: davidg
* Remove option I586_FAST_BCOPY. The code will be included by defaultasami1996-11-088-52/+38
| | | | | | | if I586_CPU is defined. Note there is a runtime check so the code won't be run for non-Pentium CPUs anyway. 2.2 candidate, this code has been tested for almost half year in -current.
* Typo, MATSHITA -> MATSUSHITA.max1996-11-071-2/+2
| | | | 2.2 & 2.1.6 candidate.
* Fix the message buffer mapping. This actually allows to increasejoerg1996-11-074-68/+66
| | | | | | | the message buffer size in <sys/msgbuf.h>. Reviewed by: davidg,joerg Submitted by: bde
* Bzero the kernel scb array after it is allocated otherwise the control bytegibbs1996-11-071-3/+5
| | | | | | used on the first transaction on an SCB is indeterminate. Spaces -> tabs.
* Don't switch from fast interrupt handlers to normal interruptbde1996-11-073-12/+24
| | | | | | | | | | | | | handlers if interrupts are nested more than a few (3) deep. This only reduces the maximum nesting level by 1 with the standard drivers unless there is a related bug somewhere, but can't hurt much (the worst case is returning to hoggish interrupt handler like wdintr(), but such interrupt handlers hurt anyway). Fixed a previously harmless race incrementing the interrupt nesting level. This should be in 2.1.6 and 2.2.
* Add the 'piix' device, to get the right flags for it. This appears tomsmith1996-11-071-2/+3
| | | | | | | | fix Joerg's freeze. Definitely a 2.2 candidate. Reviewed by: joerg
* Fix the sequence at odopen() time so the driver actually notices if ajoerg1996-11-061-12/+8
| | | | | | | | | | medium with another size is being inserted. Right now, this case was broken and led to a situation where a medium could only be replaced with another one of the same size. Closes PR #kern/1830: Can't mount optical disk... Submitted by: akiyama@kme.mei.co.jp (Shunsuke Akiyama)
* Count only hardware interrupts in cnt.v_intr, so that the individualbde1996-11-063-6/+6
| | | | | | | hardware interrupt counts add up to the total. Previously, software interrupts generated by splz() were counted in the total. These software interrupts seem to be very rare - there have apparently been 0 of them on freefall among the last 352448857 interrupts.
* Compile linux_genassym with the same options as genassym. ${PARAM} andbde1996-11-062-6/+6
| | | | | - were missingUKERNEL. This was harmless until I declared the kernel's main().
* Compile genassym without -static (undo rev.1.20). The default can bebde1996-11-063-6/+6
| | | | depended on now, and linux_genassym has depended on it for a long time.
* Rewrote the COMMENT about the bogus options CHILD_MAX and OPEN_MAX. Thesebde1996-11-063-39/+60
| | | | | | | | | | | will be renamed. Fixed comments about unsupported network protocols. ncr0 is a controller, not a device. This make no difference. Added undocumented options DEVFS_ROOT, I586_CTR_GUPROF and I586_PMC_GUPROF. Sorted undocumented options.
* Updates and bugfixes to the worm driver:joerg1996-11-062-13/+21
| | | | | | | | | | | | | . also detect the Phlips CDD2000; it's software-compatible with the HP part Submitted by: cau@cc.gatech.edu (Carlos Ugarte) . correct the blocksize handling for CD-DA tracks, and fix multitrack handling Submitted by: nsayer@quack.kfu.com (Nick Sayer) 2.2 candidates!
* Improve the queuing algorithms used by NFS' asynchronous i/o. Thedfr1996-11-0623-226/+384
| | | | | | | | | | | | | | | | | | existing mechanism uses a global queue for some buffers and the vp->b_dirtyblkhd queue for others. This turns sequential writes into randomly ordered writes to the server, affecting both read and write performance. The existing mechanism also copes badly with hung servers, tending to block accesses to other servers when all the iods are waiting for a hung server. The new mechanism uses a queue for each mount point. All asynchronous i/o goes through this queue which preserves the ordering of requests. A simple mechanism ensures that the iods are shared out fairly between active mount points. This removes the sysctl variable vfs.nfs.dwrite since the new queueing mechanism removes the old delayed write code completely. This should go into the 2.2 branch.
* Update to changes in generic SCSI layer.gibbs1996-11-051-36/+21
|
* A little 80 column cleanup.gibbs1996-11-051-15/+28
|
* Add missing parenthesis. That's what I get for having e different versionsgibbs1996-11-051-2/+2
| | | | of this driver in three different trees. <sigh>
* Eliminate an unnecessary synchronous write (and an 8K bcopy+bzero) whendg1996-11-051-17/+22
| | | | | | | | truncating/deleting large files. Reviewed by: mckusick, dyson Submitted by: Kirk McKusick <mckusick@mckusick.com>, modified for FreeBSD by me.
* Clean up some code having to do with the 398X cards. We can't rely on thegibbs1996-11-051-10/+30
| | | | | | | | | 7810 being either the last of the first device to be probed, so use a counting scheme instead to determine when one card ends and another begins. There may be a better way to do this by decoding the PCI tag, which I will investigate later. 2.2 Candidate.
* Move the include opt_aic7xxx in aic7xxx.h so that all of the driver files getgibbs1996-11-052-24/+16
| | | | | | | | | | | | | | | | | | | it automatically. The AHC_FORCE_PIO option wasn't having any effect because the PCI probe code didn't include this file. Fix some problems with the new sync and wide negotiation code. First off, go back to async transfers by using a message reject again. The SCSI II and III spec indicate that if a target's response to an initiater does not suit (i.e. its too low), then performing a message reject is the appropriate response. If, on the other hand, the initiator begins the negotiation and we want to go async, we will send back an SDTR message with a 0 period and offset. Also fix a really bad negotiation problem caused by a missing "break". This would usually hit people that had "smart" wide devices that immediately attempt sync negotiation after a successful wide negotiation. 2.2 Candidate.
* index_untagged_scb should rely solely on the argument passed in SINDEX andgibbs1996-11-051-3/+3
| | | | | | | not access SCB_TCL directly. This could have caused problems on twin channel adapters. 2.2 Candidate.
* Protect against PCI devices which may have their 'changed' flag set,msmith1996-11-051-2/+6
| | | | | | | | or list items which may look like devices but which don't have an isa_device structure attached to them. This _shouldn't_ be possible, but it appears to have been observed-by: Joerg
* Vastly improved contigmalloc routine. It does not solve thedyson1996-11-051-63/+153
| | | | | | | | | problem of allocating contiguous buffer memory in general, but make it much more likely to work at boot-up time. The best chance for an LKM-type load of a sound driver is immediately after the mount of the root filesystem. This appears to work for a 64K allocation on an 8MB system.
* Add audio mixer ioctls.smpatel1996-11-054-4/+184
| | | | Only writing to the mixer is implemented.
* New vx driver for:guido1996-11-0410-1272/+1873
| | | | | | | | | | | | | | | | | | | | 3COM 3C590 Etherlink III PCI, 3COM 3C595 Fast Etherlink PCI, 3COM 3C592 Etherlink III EISA, 3COM 3C590 Fast Etherlink EISA, 3COM 3C900 Etherlink XL PCI and 3COM 3C905 Fast Etherlink XL PCI. This driver is based on OpenBSD's driver. I modified it to run under FreeBSd and made it actually work usefully. Afterwards, nao@tom-yam.or.jp (HAMADA Naoki) added EISA support as well as early support for 3C900 Etherlink XL PCI and 3C905 Fast Etherlink XL PCI. He also split up the driver in a bus independant and bus dependant parts. Especially the 3c59X support should be pretty stable now. Submitted by: partly nao@tom-yam.or.jp (HAMADA Naoki) Obtained from:partly OpenBSD
* Fix the hanging keyboard problem under Xaccel. Apprently we are loosingsos1996-11-043-87/+132
| | | | | an interrupt somewhere. The solution here is to check for keyboard input each time the screen update timer ticks. Not pretty, but works.
* struct mfsnode bloated in size by 12 bytes, so reduce spare padding by 3 longs.hsu1996-11-041-2/+2
| | | | We now only have 4 spare bytes before hitting the dreaded 32 byte threshold.
* Don't clobber max_ncyls, ending up guessing thetotal number of cylinders asbde1996-11-042-12/+20
| | | | | | | | the number in the 4th slot. Fixes PR 1893. Should be in 2.1.5 and 2.2.
* Fixed some races and misleading comments in ufs_rename().bde1996-11-041-6/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. When a directory is renamed to an existing (empty) directory, it is possible for the target vnode to become the source vnode underneath you (because another process may complete the same rename). It was assumed that this can't happen, and the bogus errno EINVAL was returned. This was fairly harmless. Fix: return ENOENT instead, as if the source directory was renamed a little earlier. 2. The same metamorphosis is possible for non-directories. It was assumed that this can't happen, and the code for handling "just removing a link name" happened to be used. This would have worked except for fatal bugs in the link name removal - the link name was assumed to still be there, and a null pointer was followed. Fix: check the result of relookup(). This fixes PR 1930. Notes: (a) POSIX seems to say that removing link names shall have no effect. BSD (4.4Lite2 at least) does something reasonable instead. (b) The relookup() may find a file unrelated to the original. Removing this isn't correct. Consider 3 existing files A, B and C, and concurrent renames: AB = rename(A, B), another AB, and CA = rename("c", "a"). If rename() is atomic, then only the following results are possible: AB, AB (fails), CA: A = original C, B = original A, C = gone AB, CA, AB: A = gone, B = original C, C = gone CA, AB, AB (fails): A = gone, B = original C, C = gone but ufs_rename() can give: A,AB,CA,B (sorta): A = gone, B = original A, C = gone This usually doesn't matter, since getting into a race is usually an error. --- These fixes should be in 2.1.6 and 2.2.
* Set REVISION=3.0 and RELDATE=199701phk1996-11-031-3/+3
|
* Fix a problem with running down processes that have left wireddyson1996-11-032-6/+20
| | | | | | | | | | | | | mappings with mlock. This problem only occurred because of the quick unmap code not respecting the wired-ness of pages in the process. In the future, we need to eliminate the dependency intrinsic to the design of the code that wired pages actually be mapped. It is kind-of bogus not to have wired pages mapped, but it is also a weakness for the code to fall flat because of a missing page. This show fix a problem that Tor Egge has been having, and also should be included into 2.2-RELEASE.
* Fix the broken EOF handling in the floppy driver. The most obviousjoerg1996-11-023-84/+108
| | | | | | | | | appearance of this bug was the malfunctioning -M option in GNU tar (it worked only by explicitly specifying -L). Reviewed by: bde, and partially corrected accoring to his comments Candidate for 2.2, IMHO even for 2.1.6.
* Avoid touching the LEDs too early in the game. After the recentjoerg1996-11-021-4/+0
| | | | | | | | | | | changes to the keyboard code in pcvt, this update_led() very often caused pcvt to hang early at boot time. (Eventually, a better solution should be found, but the simple omission serves well as a workaround for something that is actually a show-stopper class problem.) Candidate for 2.2.
OpenPOWER on IntegriCloud