summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite the SMP filedesc locking in knote_attach() in order tohsu2003-01-211-23/+11
| | | | | | | | | | | | | 1. eliminate unnecessary loop which frees and re-allocates the just allocated array 2. eliminate the newsize recomputation 3. eliminate unnecessary unlock and relock around free 4. correctly match the free with the malloc into M_KQUEUE instead of M_TEMP 5. eliminate conditional assignment of oldlist, which is equivalent to a simple assignment 6. eliminate the oldlist temporary variable completely Reviewed by: jhb
* GC an unused reference to vop_refreshlabel_desc; reference torwatson2003-01-211-3/+0
| | | | | | | opt_mac.h was removed previously so it was never compiled in. Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
* Perform VOP_GETATTR() before mac_check_vnode_exec() so thatrwatson2003-01-211-5/+5
| | | | | | | the cached attributes are available to MAC modules. Submitted by: mike halderman <mrh@nosc.mil> Obtained from: TrustedBSD Project
* Resolve relative relocations in klds before trying to parse the module'sjake2003-01-2110-96/+232
| | | | | | | | | | | | metadata. This fixes module dependency resolution by the kernel linker on sparc64, where the relocations for the metadata are different than on other architectures; the relative offset is in the addend of an Elf_Rela record instead of the original value of the location being patched. Also fix printf formats in debug code. Submitted by: Hartmut Brandt <brandt@fokus.gmd.de> PR: 46732 Tested on: alpha (obrien), i386, sparc64
* Fix a missed goal.period -> goal.offset change. Ingibbs2003-01-201-2/+2
| | | | | this case, the bug resulted in comparing a period against an offset.
* include cdefs.h so as to unbreak the libc buildgallatin2003-01-201-0/+2
|
* move sysctl's under hw.hifn; change max batching default to 1 (no batching)sam2003-01-201-7/+9
| | | | based on what I learned from the Broadcom h/w
* move sysctl's under hw.ubsecsam2003-01-201-9/+10
|
* correct default setting of hw.wi.txerate; it must be -1, not zero,sam2003-01-201-2/+2
| | | | to silence all msgs (like the old driver)
* correct sysctl names and move them to hw.wi: hw.wi.txerate controls the ratesam2003-01-201-4/+6
| | | | | | | | at which tx errors are printed (default to 0); hw.wi.debug control the debug msgs and is only present when WI_DEBUG is defined at compile time (the default for the moment) Requested by: imp
* aic7xxx.reg:gibbs2003-01-206-138/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a constant for the controller's stack size and the maximum scsi offset. aic7xxx.seq: Style nit. The source is implied to be the destination unless overridden in an "and" instruction. Update target mode code for changes in identify seen sequencer flags. aic7xxx_pci.c: Ensure that the PCIERRGENDIS bit is set in the PCIERRGEN config space register. Perhaps this is a reason for the spurios parity errors reported on U160 controllers. Honor the AHC_NO_BIOS_INIT flag. Allow PCI interrupt reporting to be disabled, by clearing the PERRRESEN bit in the command register. This option is now enabled via a new softc flag: AHC_DISABLE_PCI_PERR. Disable SERR and pause the controller prior to performing our mmapped I/O test. This should handle the case of controllers that do not "auto-access pause". For legacy controllers, use SCB ram instead of scratch ram since the latter may contain settings left over from the BIOS that we will use if an seeprom is not found. Make use of new ahc_inl/outl() inlines. aic7xxx.h: Reformat a few comments to follow driver style. Add a controller flags that indicate that a controller has not been initialized by the BIOS and whether to disable PCI parity errors.. Remove stack probing softc members. Add a few more syncrate constants that are useful in speed fallback calculations. Add the SHOW_MASKED_ERRORS debug flag. aic7xxx.h: aic7xxx.c: Implement the SCB_SILENT flag. This is useful for hushing up the driver during DV or other operations that we expect to cause transmission errors. The messages will still print if the SHOW_MASKED_ERRORS debug option is enabled. aic7xxx_inline.h: Implement ahc_[in|out][w|l|q]. This removes the need for manual 'or and shift" type operations throughout the driver. aic7xxx.c: Move SELTO dignostic so that the SCB is still valid when we use it for printing path information. If we are narrow, limit syncrate to Ultra2. Don't clobber ppr_options when forcing a renegotiation. The current ppr_options may be referenced while queuing new commands. Don't set our width to unknown when forcing negotiation on narrow controllers. This will confuse the negotiation code into negotiating with a wide message on narrow controllers. Add an "asserting atn" diagnostic with controller/target information. Remove the probe_stack code. The stack is always 4 deep on legacy controllers, so probing is pointless. This also avoids an issue where probing the stack would upset the aic7770. In ahc_reset(), record whether or not we found the controller in a reset state. If the controller was already reset, assume that no BIOS has initialized the controller and ignore left over scratch ram settings. Fix an ifdef bug that caused sequencer debugging to be enabled always. Clear the ultraenb flag in our tstate during startup. The ultraenbled'ness of a device is recorded in the user transfer settings. tstate->ultraenb bitmask indicates which devices we have negotiated an ultra speed with. Just after initialization, we are async. Setting the ultraenb flag while async seems to be harmless, but it was confusing to see the ULTRAENB flag set in the SCB. Enhance residual diagnostic to indicate if the residual if for sense information or normal data transfers. Indicate the features, bugs, and flags set in the softc that are used to control firmware patch download when booting verbose. In ahc_dump_card_state() fix a logic reversal. The SCSIPHASE register only exists on U160 controllers. The SCSISIGI register exists on all controllers. Not the other way around. Also print out the ERROR register. Allow ahc_dump_card_state() to be called when the sequencer is not paused. Add dump card state markers as in the U320 driver.
* Fix typo in comment: inlcude -> include.olgeni2003-01-201-1/+1
|
* aic79xx.c:gibbs2003-01-207-152/+844
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement the SCB_SILENT flag. This is useful for hushing up the driver during DV or other operations that we expect to cause transmission errors. The messages will still print if the SHOW_MASKED_ERRORS debug option is enabled. Save and restore the NEGOADDR address when setting new transfer settings. The sequencer performs lookups in the negotiation table too and it expects NEGOADDR to remain consistent across pause/unpause sessions. Consistently use "offset" instead of "period" to determine if we are running sync or not. Add a SHOW_MESSAGES diagnostic for when we assert ATN during message processing. Print out IU, QAS, and RTI features when showing transfer options. Limit the syncrate after all option conformance changes have taken place in ahd_devlimited_syncrate. Changes in options may change the final syncrate we accept. Keep a copy of the hs_mailbox in our softc so that we can perform read/modify/write operations on the hs_mailbox without having to pause the sequencer to read the last written value. Use the ENINT_COALESS flag in the hs_mailbox to toggle interrupt coalessing. Add entrypoints for enabling interrupt coalessing and setting both a timeout (how long to wait for commands to be coalessed) and a maximum commands to coaless value. Add a statistics timer that decides when to enable or disable interrupt coalessing based on load. Add a routine, ahd_reset_cmds_pending() which is used to update the CMDS_PENDING sequencer variable whenever error recovery compeltes SCBs without notifying the sequencer. Since ahd_reset_cmds_pending is called during ahd_unpause() only if we've aborted SCBs, its call to ahd_flush_qoutfifo should not cause recursion through ahd_run_qoutfifo(). A panic has been added to ensure that this recursion does not occur. In ahd_search_qinfifo, update the CMDS_PENDING sequencer variable directly. ahd_search_qinififo can be called in situations where using ahd_reset_cmds_pending() might cause recursion. Since we can safely determine the exact number to reduce CMDS_PENDING by in this scenario without running the qoutfifo, the manual update is sufficient. Clean up diagnostics. Add ahd_flush_qoutfifo() which will run the qoutfifo as well as complete any commands sitting on the sequencer's COMPLETE_SCB lists or the good status FIFO. Use this routine in several places that did similar things in an add-hoc, but incomplete, fashion. A call to this routine was also added to ahd_abort_scbs() to close a race. In ahd_pause_and_flushwork() only return once selections are safely disabled. Flush all completed commands via ahd_flush_qoutfifo(). Remove "Now packetized" diagnostic now that this information is incorperated into the actual negotiation messages that are displayed. When forcing renegotiation, don't clober the current ppr_options. Much of the driver uses this information to determine if we are currently packetized or not. Remove some stray spaces at column 1 in ahd_set_tags. When complaining about getting a host message loop request with no pending messages, print out the SCB_CONTROL register down on the card. Modify the ahd_sent_msg() routine to handle a search for an outgoing identify message. Use this to detect a msg reject on an identify message which typically indicates that the target thought we were packetized. Force a renegotiation in this case. In ahd_search_qinfifo(), wait more effectively for SCB DMA activities to cease. We also disable SCB fetch operations since we are about to change the qinfifo and any fetch in progress will likely be invalidated. In ahd_qinfifo_count(), fix the qinfifo empty case. In ahd_dump_card_state(), print out CCSCBCTL in the correct mode. If we are a narrow controller, don't set the current width to unknown when forcing a future negotiation. This just confuses the code into attempting a wide negotiation on a narrow bus. Add support for task management function completions. Modify ahd_handle_devreset so that it can handle lun resets in addition to target resets. Use ahd_handle_devreset for lun and target reset task management functions. Handle the abort task TMF race case better. We now wait until any current selections are over and then set the TMF back to zero. This should cause the sequencer to ignore the abort TMF completion should it occur. Correct a bug in the illegal phase handler that caused us to drop down to narrow when handling the unexpected command phase case after 3rd party reset of a packetized device. Indicate the features, bugs, and flags set in the softc that are used to control firmware patch download when booting verbose. aic79xx.h: Add coalessing and HS_MAILBOX fields. Add per-softc variables for the stats "daemon". Add a debug option for interrupt coalessing activities. Add two new softc flags: o AHD_UPDATE_PEND_CMDS Run ahd_reset_cmds_pending() on the next unpause. o AHD_RUNNING_QOUTFIFO Used to catch recursion through ahd_run_qoutfifo(). aic79xx.reg: Correct register addresses related to the software timer and the DFDBCTL register. Add constants paramaterizing the software timer. Add scratch ram locations for storing interrupt coalessing tunables. Break INTMASK in SEQITNCTL out into INTMASK1 and INTMASK2. In at least the REV A, these are writable bits. We make use of that for a swtimer workaround in the sequencer. Since HS_MAILBOX autoclears, provide a sequencer variable to store its contents. Add SEQINT codes for handling task management completions. aic79xx.seq: Correct ignore wide residue processing check for a wide negotiation being in effect. We must be in the SCSI register window in order to access the negotiation table. Use the software timer and a commands completed count to implement interrupt coalessing. The command complete is deferred until either the maximum command threshold or a the expiration of a command deferral timer. If we have more SCBs to complete to the host (sitting in COMPLETE_SCB lists), always try to coaless them up to our coalessing limit. If coalessing is enabled, but we have fewer commands oustanting than the host's min coalessing limit, complete the command immediately. Add code to track the number of commands outstanding. Commands are outstanding from the time they are placed into the execution queue until the DMA to post completion is setup. Add a workaround for intvec_2 interrupts on the H2A4. In H2A4, the mode pointer is not saved for intvec2, but is restored on iret. This can lead to the restoration of a bogus mode ptr. Manually clear the intmask bits and do a normal return to compensate. We use intvec_2 to track interrupt coalessing timeouts. Since we cannot disable the swtimer's countdown, simply mask its interrupt once we no longer care about it firing. In idle_loop_cchan, update LOCAL_HS_MAILBOX everytime we are notified of an HS_MAILBOX update via the HS_MAILBOX_ACT bit in QOFF_CTLSTA. We have to use a local copy of persistant portions of the HS_MAILBOX as the mailbox auto-clears on any read. Move the test for the cfg4istat interrupt up an instruction to hopefully close a race between the next outgoing selection and our disabling of selections. Add a missing ret to the last instruction in load_overrun_buf. Add notifications to the host of task management completions as well as the completions for commands that completed successfully before their corresponding TMF could be sent. Hold a critical section during select-out processing until we have a fully identified connection. This removes a race condition with the legacy abort handler. Correct a few spelling errors in some comments. aic79xx_inline.h: Call ahd_reset_cmds_pending() in ahd_unpause if required. Update cmdcmplt interrupt statistics in our interrupt handler. Allow callers to ahd_send_scb() to set the task management function. aic79xx_pci.c: Disable SERR and pause the controller prior to performing our mmapped I/O test. The U320 controllers do not support "auto-access-pause". aic79xx_osm.c: Set the task management function now that ahd_send_scb() doesn't do it for us. We also perform a lun reset in response to BDR requests to packetized devices.
* Fix swapping to a file, it was broken when SPECSTRATEGY was introduced.dillon2003-01-201-1/+4
|
* gc dead codesam2003-01-201-7/+0
|
* #if 0 one more line to make this compile without subr_disklabel.c.phk2003-01-201-0/+4
| | | | Hopefully forgiven by: scottl
* o add BIOCGDLTLIST and BIOCSDLT ioctls to get the data link type listsam2003-01-202-4/+111
| | | | | | | | | | | | and set the link type for use by libpcap and tcpdump o move mtx unlock in bpfdetach up; it doesn't need to be held so long o change printf in bpf_detach to distinguish it from the same one in bpfsetdlt Note there are locking issues here related to ioctl processing; they have not been addressed here. Submitted by: Guy Harris <guy@alum.mit.edu> Obtained from: NetBSD (w/ locking modifications)
* Remove the deprecated IOCTL bits raidframe used, it doesn't anymore.phk2003-01-201-8/+0
|
* Add definitions for the task management codes sent in SPI4gibbs2003-01-201-0/+8
| | | | command information units.
* Allow constants to be complex expressions so long as thosegibbs2003-01-201-15/+6
| | | | | | | expressions can be fully evaluated during assembly. Remove the numerical_value portion of the grammer which is no longer referenced.
* Fix the last reference to the reg_print.c file handlegibbs2003-01-201-2/+2
| | | | | in symtable_dump. This allows the assembler to operate without generating this file.
* Close the remaining user address mapping races for physicaldillon2003-01-207-16/+94
| | | | | | | I/O, CAM, and AIO. Still TODO: streamline useracc() checks. Reviewed by: alc, tegge MFC after: 7 days
* Remove stale reference to deprecated mini-disklayer stuff.scottl2003-01-201-13/+0
|
* Hide the ioctls behind #ifdef _KERNEL to avoid kdump getting upset.phk2003-01-201-0/+2
|
* De-anonymity a couple of messages I missed in a previous sweep.maxim2003-01-201-2/+2
| | | | | | Move one of them under DEB macro. Noticed by: Wiktor Niesiobedzki <w@evip.pl>
* If the first action is O_LOG adjust a pointer to the real one, unbreaksmaxim2003-01-201-0/+2
| | | | | | | skipto + log rules. Reported by: Wiktor Niesiobedzki <w@evip.pl> MFC after: 1 week
* #ifdef this file into three pieces: The bit which raidframe needs tophk2003-01-201-5/+8
| | | | | stop using. The bit which the sys/boot code needs to stop using and the bit which is NO_GEOM only.
* disk_dev_synth() is a NO_GEOM hack.phk2003-01-202-9/+4
|
* Only include <sys/diskslice.h> ifdef NO_GEOMphk2003-01-201-1/+1
|
* Remove need for <sys/diskslice.h> but retain numerical compatibilty just in ↵phk2003-01-201-2/+1
| | | | case.
* Use NEXTDOSPART instead of MAX_SLICES.phk2003-01-202-5/+4
|
* We need neither <sys/diskslice.h> nor <sys/disklabel.h> here.phk2003-01-201-2/+0
|
* Add a NEXTDOSPART definition here as well, for the benefit of biosdisk.c inphk2003-01-201-0/+1
| | | | | | the bootcode. I don't think there acturally are any extended partitions on pc98, and this define may merely help cover up the fact that the biosdisk.c was insufficiently scrubbed when copy&pasted from i386.
* Add NEXTDOSPART (N-Extended-Dos-Partitions) as replacement for thephk2003-01-201-0/+1
| | | | misplaced MAX_SLICES from <sys/diskslice.h>.
* - Hold the page queues lock around vm_page_hold().alc2003-01-202-1/+4
| | | | | - Assert that the page queues lock rather than Giant is held in vm_page_hold().
* Move the vm_page_busy() in pmap_dispose_thread() to a place where it isalc2003-01-201-1/+1
| | | | | covered by the page queues lock. (This actually makes alpha's pmap_dispose_thread() look more like the i386's.)
* Remove a KASSERT that can now happen and add a missing setrunnable.julian2003-01-203-2/+4
|
* - M_WAITOK is 0 and not a real flag. Test for this properly.jeff2003-01-201-5/+4
| | | | | Submitted by: tmm Pointy hat to: jeff
* Re-implemention of the interpolation code used for sample rateorion2003-01-201-53/+308
| | | | | | | | conversion. The new version has improved interpolation accuracy and maintains the timing relationship between the input and output signals exactly. Approved by: cg
* Regenjoe2003-01-202-2/+9
|
* default tx error rate limiting to 0 to disable tx error msgs; this issam2003-01-201-1/+1
| | | | consistent with how the old driver worked
* Support for the "Seiko Epson Perfection 1260 scanner".joe2003-01-202-0/+2
| | | | | Submitted by: Michael Lestinsky <michael@lestinsky.de> MFC After: 3 days
* Small change to the previous commit, zero out the 48BIT flag in ata_commandsos2003-01-192-10/+10
| | | | instead of in dmadone.
* accept short WEP keys for backward compatibilitysam2003-01-191-2/+1
|
* Change BUS_SPACE_UNRESTRICTED (~0ul) to plain ~0 when used in themike2003-01-191-1/+1
| | | | | | | 'int nsegments' argument to bus_dma_tag_create(). ~0ul does not fit in an int on machines with 64 bit longs. Noticed by: alpha tinderbox
* Finally give CCD the disk mini-layer treatment:phk2003-01-193-863/+288
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CAUTION: Previously CCD would be different from all other disks in the system in that there were no "ccd0" device, only a "ccd0c" device. This is no longer so after this commit. If you access a ccd device through the "/dev/ccd0c" device _and_ have not actually put a BSD disklabel on the device, you will have to use the name "/dev/ccd0". If your CCD device contains a BSD disklabel there should be no difference. You need to recompile ccdconfig(8) using the changed src/sys/sys/ccdvar.h for the -g "show me" option to work. I have run the regression test I created before I started overhauling CCD and it flags no problems, but this code is mildly evil, so take care. If you would cry if you lost what's on CCD, make a back before you upgrade. Create separate cdevsw for the /dev/ccd.ctl device. Remove the cloning function, the disk-minilayer will do all naming for us. Remove the ccdunit and ccdpart functions and carry the softc pointer in the relevant dev_t's and structures. Release all memory when a CCD device is unconfigured, previously the softc would linger behind. Remove all traces of BSD disklabel fiddling code. Remove ccdpsize, the disk mini-layer does this for us. Don't allocate memory with M_WAITOK in ccdstrategy(). Remove boundary checks which the disk mini-layer does for us. Don't allocate space for more than 2 ccdbuf, RAID was never implemented. NB: I have not tried to address any of the preexisting ailments of CCD.
* Unifdef -UDEBUG on the CCD driver. The debugging is mostly uselessphk2003-01-192-290/+0
| | | | | | | | and can be added back selectively, should anybody start to interest themselves for the internal workings of ccd. This commit will make the diffs for the following commits much more readable.
* Add support for the ServerWorks CSB6.sos2003-01-192-1/+12
| | | | The support for the 3'rd channel is only experimental.
* #ifdef NO_GEOM these files entirely. When NO_GEOM is removed as anphk2003-01-193-0/+6
| | | | option the files can be removed.
* Remove the last stray NO_GEOM option in our example kernel config files.phk2003-01-191-2/+0
|
OpenPOWER on IntegriCloud