aboutsummaryrefslogtreecommitdiff
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
* Unchanged files that are off the vendor branch.Nate Lawson2004-05-253-12/+24
| | | | Notes: svn path=/head/; revision=129687
* This commit was generated by cvs2svn to compensate for changes in r129684,Nate Lawson2004-05-2549-1117/+2045
|\ | | | | | | | | | | | | which included commits to RCS files with non-trunk default branches. Notes: svn path=/head/; revision=129685
| * Vendor import of Intel ACPI-CA 20040514.Nate Lawson2004-05-2558-1192/+2201
| | | | | | | | Notes: svn path=/vendor-sys/acpica/dist/; revision=129684
| * Only avoid disabling bus mastering on the sleep path. This should fixNate Lawson2004-04-141-13/+13
| | | | | | | | | | | | | | | | | | power off for some users. The patch has been submitted to Intel. Bug: http://bugme.osdl.org/show_bug.cgi?id=2109 Notes: svn path=/vendor-sys/acpica/dist/; revision=128245
* | Use NG_NODESIZ instead of (NG_NODELEN + 1)Julian Elischer2004-05-241-1/+1
| | | | | | | | | | | | | | Noted by: jhb Notes: svn path=/head/; revision=129675
* | Use NG_HOOKSIZ instead of the deprecated (NG_HOOKLEN + 1)Julian Elischer2004-05-241-1/+1
| | | | | | | | Notes: svn path=/head/; revision=129674
* | Use PCI_BAR() rather than PCIR_MAPS.John Baldwin2004-05-241-5/+5
| | | | | | | | | | | | | | Noticed by: phk Notes: svn path=/head/; revision=129673
* | Wrap the code to save/restore PCI config registers on suspend/resume inJohn Baldwin2004-05-243-0/+18
| | | | | | | | | | | | | | | | | | #ifndef BURN_BRIDGES. Noticed by: phk Notes: svn path=/head/; revision=129672
* | Change a if (...) panic() to a KASSERT().Maxime Henrion2004-05-241-2/+2
| | | | | | | | Notes: svn path=/head/; revision=129671
* | Use PCI_BAR() in preference to PCI_MAPS + x * 4.Warner Losh2004-05-241-2/+2
| | | | | | | | | | | | | | Submitted by: jhb Notes: svn path=/head/; revision=129669
* | Grammar.Maxim Konovalov2004-05-241-1/+1
| | | | | | | | Notes: svn path=/head/; revision=129668
* | Do not write to those config registers that are unambiguously definedWarner Losh2004-05-241-19/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in the various pci specifications as readonly. vendor, subvendor, device and subdevice are required to be loaded in hardware by some means that isn't the system BIOS or other system software (although some devices do have ways of accomplishing this). class and subclass are defined to be read-only in section 6.2.1 (v2.2). Apart from the status register, which we weren't touching, these are the only read-only registers I could find in the 2.2 spec. progif is also defined as being read-only in section 6.2.1. However, the PCI IDE programming document specifically states that some of the bits are read/write. Since we may have to restore registers before we have a driver attached, go ahead and restore this one byte when transitioning between D3 and D0. The PCI spec also says that writes to reserved and unimplemented registers must be completed normally. It makes no statements about writes to read-only registers, so be as conservative as possible, while covering the exception to the rule that is documented in a subpart of the standard. Requested by: socttl Notes: svn path=/head/; revision=129664
* | Revert part of rev 1.230 and assume that all EISA IRQs use active highJohn Baldwin2004-05-241-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | polarity rather than assuming that level triggered IRQs use active low and edge triggered IRQs use active high. Both the MultiProcessor 1.4 and ACPI 2.0 Specifications state in their examples that level triggered EISA IRQs are active low, but in practice they seem to be active high. Reported by: Nik Azim Azam nskyline_r35 at yahoo dot com Notes: svn path=/head/; revision=129663
* | Oops, ".align 4" for the data section in the previous commit shouldBruce Evans2004-05-241-3/+3
| | | | | | | | | | | | | | | | have been ".p2align 4". This bug is cosmetic since the data section happens to be empty. Notes: svn path=/head/; revision=129656
* | Fixed profiling of trap, syscall and interrupt handlers and someBruce Evans2004-05-244-9/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ordinary functions, essentially by backing out half of rev.1.115 of amd64/exception.S. The handlers must be between certain labels for the purposes of profiling, and this was broken by scattering them in separately compiled .S files, especially for ordinary functions that ended up between the labels. Merge the files by #including them as before, except with different pathnames and better comments and organization. Changes to the scattered files are minimal -- just move the labels to the file that does the #includes. This also partly fixes profiling of IPIs -- all IPI handlers are now correctly classified as interrupt handlers, but many are still missing mcount calls. Notes: svn path=/head/; revision=129653
* | Don't repeat the definition of IDTVEC(). It is in asmacros.h.Bruce Evans2004-05-241-3/+0
| | | | | | | | Notes: svn path=/head/; revision=129649
* | Remove another redundant if_output initialization.Maxime Henrion2004-05-241-1/+0
| | | | | | | | Notes: svn path=/head/; revision=129648
* | Fixed insertion sort error in previous commit (prof_machdep.c).Bruce Evans2004-05-241-4/+4
| | | | | | | | | | | | | | | | | | Fixed apparently-intentional disorder of the crypto files. Lists of files should be sorted first on the pathname, not on the option name or subsystem. Notes: svn path=/head/; revision=129646
* | Store the target handles in a separate list from normal commands. Add aNate Lawson2004-05-246-15/+125
| | | | | | | | | | | | | | | | | | CTIO fast post routine to handle CTIO completions. Submitted by: mjacob Notes: svn path=/head/; revision=129643
* | Add support for BCM5705KPaul Saab2004-05-242-0/+3
| | | | | | | | | | | | | | | | Submitted by: candy@kgc.co.jp PR: kern/67110 Notes: svn path=/head/; revision=129640
* | The socket code upcalls into the NFS server using the so_upcallRobert Watson2004-05-247-84/+642
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mechanism so that early processing on mbufs can be performed before a context switch to the NFS server threads. Because of this, if the socket code is running without Giant, the NFS server also needs to be able to run the upcall code without relying on the presence on Giant. This change modifies the NFS server to run using a "giant code lock" covering operation of the whole subsystem. Work is in progress to move to data-based locking as part of the NFSv4 server changes. Introduce an NFS server subsystem lock, 'nfsd_mtx', and a set of macros to operate on the lock: NFSD_LOCK_ASSERT() Assert nfsd_mtx owned by current thread NFSD_UNLOCK_ASSERT() Assert nfsd_mtx not owned by current thread NFSD_LOCK_DONTCARE() Advisory: this function doesn't care NFSD_LOCK() Lock nfsd_mtx NFSD_UNLOCK() Unlock nfsd_mtx Constify a number of global variables/structures in the NFS server code, as they are not modified and contain constants only: nfsrvv2_procid nfsrv_nfsv3_procid nonidempotent nfsv2_repstat nfsv2_type nfsrv_nfsv3_procid nfsrvv2_procid nfsrv_v2errmap nfsv3err_null nfsv3err_getattr nfsv3err_setattr nfsv3err_lookup nfsv3err_access nfsv3err_readlink nfsv3err_read nfsv3err_write nfsv3err_create nfsv3err_mkdir nfsv3err_symlink nfsv3err_mknod nfsv3err_remove nfsv3err_rmdir nfsv3err_rename nfsv3err_link nfsv3err_readdir nfsv3err_readdirplus nfsv3err_fsstat nfsv3err_fsinfo nfsv3err_pathconf nfsv3err_commit nfsrv_v3errmap There are additional structures that should be constified but due to their being passed into general purpose functions without const arguments, I have not yet converted. In general, acquire nfsd_mtx when accessing any of the global NFS structures, including struct nfssvc_sock, struct nfsd, struct nfsrv_descript. Release nfsd_mtx whenever calling into VFS, and acquire Giant for calls into VFS. Giant is not required for any part of the operation of the NFS server with the exception of calls into VFS. Giant will never by acquired in the upcall code path. However, it may operate entirely covered by Giant, or not. If debug.mpsafenet is set to 0, the system calls will acquire Giant across all operations, and the upcall will assert Giant. As such, by default, this enables locking and allows us to test assertions, but should not cause any substantial new amount of code to be run without Giant. Bugs should manifest in the form of lock assertion failures for now. This approach is similar (but not identical) to modifications to the BSD/OS NFS server code snapshot provided by BSDi as part of their SMPng snapshot. The strategy is almost the same (single lock over the NFS server), but differs in the following ways: - Our NFS client and server code bases don't overlap, which means both fewer bugs and easier locking (thanks Peter!). Also means NFSD_*() as opposed to NFS_*(). - We make broad use of assertions, whereas the BSD/OS code does not. - Made slightly different choices about how to handle macros building packets but operating with side effects. - We acquire Giant only when entering VFS from the NFS server daemon threads. - Serious bugs in BSD/OS implementation corrected -- the snapshot we received was clearly a work in progress. Based on ideas from: BSDi SMPng Snapshot Reviewed by: rick@snowhite.cis.uoguelph.ca Extensive testing by: kris Notes: svn path=/head/; revision=129639
* | Consult parent's if_capenable for active VLAN-related capabilities.Yaroslav Tykhiy2004-05-231-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | This change is possible since all the relevant drivers have been fixed to set if_capenable properly. The field if_capabilities tracks supported capabilities, which may be disabled administratively. Inheriting checksum offload support from the parent interface isn't that easy because the checksumming capabilities of the parent may be toggled on the fly. Disable the code for now. Notes: svn path=/head/; revision=129637
* | Only initialize the if_sis callout as MPSAFE if debug.mpsafenet is setRobert Watson2004-05-231-1/+4
| | | | | | | | | | | | | | | | | | | | true. Otherwise, assertion checks for Giant in the network stack will fail causing a panic. Reported by: simon Notes: svn path=/head/; revision=129636
* | A handler for ioctl(SIOCSIFCAP) should not alter a bit inYaroslav Tykhiy2004-05-238-8/+17
| | | | | | | | | | | | | | | | | | | | if_capenable unless the interface driver is actually able to toggle the respective capability on and off. Reviewed by: ru Notes: svn path=/head/; revision=129633
* | According to the design of checksum offloading framework,Yaroslav Tykhiy2004-05-231-2/+5
| | | | | | | | | | | | | | | | if_hwassist should be in accord with the IFCAP_TXCSUM bit of if_capenable. Notes: svn path=/head/; revision=129632
* | Mark the VLAN_MTU capability as initially enabled since it'sYaroslav Tykhiy2004-05-232-0/+2
| | | | | | | | | | | | | | hardcoded to "ON" for these interfaces. Notes: svn path=/head/; revision=129631
* | Added profiling support for Xint0x80_syscall.Bruce Evans2004-05-231-0/+2
| | | | | | | | Notes: svn path=/head/; revision=129630
* | Don't try to copy out the result payload if there isn't one. This ioctlDoug Rabson2004-05-231-6/+14
| | | | | | | | | | | | | | | | interface really needs changing to split out the various async request types. Notes: svn path=/head/; revision=129628
* | Build prof_machdep.c if profiling.Bruce Evans2004-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kernel profiling for amd64's (normal and high resolution) should now compile and work as (un)well as on i386's. It works better than user profiling because: - it uses _cyg_profile_func_*() instead of .mcount(), so it doesn't suffer from gcc misspelling .mcount as mcount. - it doesn't neglect saving %rax in .mcount(). The SMP case hasn't been tested. The high resolution subcase of this uses the i8254, and as on i386's, the locking for this is deficient and the i8254 is too inefficient. The acpi timer is also too inefficient. Notes: svn path=/head/; revision=129627
* | Adjusted for amd64 after repo-copy. The adjustments are routine, except:Bruce Evans2004-05-231-23/+53
| | | | | | | | | | | | | | | | | | | | | | | | - perfmon headers must be avoided until perfmon is supported. - all call-used registers including return registers must be preserved by .mcount(), etc., not quite as in profile.h. __cyg_profile_func_*() don't require this, but they are (mis)implemented as aliases for .mcount(), etc. so they preserve the registers. - i386 ifdefs related to perfmon have not been adjusted yet. Notes: svn path=/head/; revision=129625
* | MFamd64 (1.117: made the FAKE_MCOUNT() in doreti work non-accidentally,Bruce Evans2004-05-231-2/+1
| | | | | | | | | | | | | | and removed buggy unnecessary FAKE_MCOUNT() in calltrap). Notes: svn path=/head/; revision=129624
* | Restored FAKE_MCOUNT() and MEXITCOUNT invocations and adjusted them forBruce Evans2004-05-231-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | amd64 as necessary. This is routine, except: - the FAKE_MCOUNT($bintr) in doreti was missing the '$'. This gave a a garbage address made up of padding bytes (with the nop byte 0x90 as the MSB) instead of the intended address of bintr. This accidentally worked on i386's because (0x90 << 24) is close enough to bintr, but it doesn't work on amd64's because (0x90 << 56) is much further away from bintr. - the FAKE_MCOUNT($btrap) in calltrap was similarly broken. It hasn't been needed since FreeBSD-1, so just delete it. Notes: svn path=/head/; revision=129623
* | Update URL to HID spec.Lukas Ertl2004-05-231-1/+1
| | | | | | | | | | | | | | Obtained from: NetBSD Notes: svn path=/head/; revision=129622
* | Update URL to HID spec.Lukas Ertl2004-05-231-1/+1
| | | | | | | | | | | | | | Obtained from: NetBSD Notes: svn path=/head/; revision=129621
* | MFamd64 (put TF_EIP in assym.s and use it instead of a magic offset inBruce Evans2004-05-234-7/+8
| | | | | | | | | | | | | | FAKE_MCOUNT()s). Notes: svn path=/head/; revision=129620
* | Adjusted FAKE_MCOUNT()s for amd64. This is needed for both ordinaryBruce Evans2004-05-232-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | and high resolution profiling of interrupt handlers. The adjustments are routine once the magic stack offset 13*4 is decoded to be TF_RIP (there were originally more types of stack frames so using TF_EIP for one of them wouldn't have been much simpler). Removed garbage comments attached to some of the FAKE_MCOUNT()s. Notes: svn path=/head/; revision=129618
* | We don't need to initialize if_output, ether_ifattach() does itMaxime Henrion2004-05-2337-37/+0
| | | | | | | | | | | | | | for us. Notes: svn path=/head/; revision=129616
* | MFamd64 (1.111: fixed missing call to .mexitcount in lgdt()).Bruce Evans2004-05-231-0/+1
| | | | | | | | Notes: svn path=/head/; revision=129615
* | Spell "retq" as "ret" in pagezero() like it is everywhere, else soBruce Evans2004-05-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | that the usual macro for "ret" hides the detail of calling .mexitcount before returning. Fixed missing call to .mexitcount in lgdt(). This was missing on i386's, mainly because lgdt() uses lret[q] insted of ret. This is very unimportant since lgdt() is not (normally?) called until after profiling is initialized. Notes: svn path=/head/; revision=129612
* | Initialise OHCI_CROMHDR and OHCI_BUS_OPT in fwohci_ibr to make sure thatDoug Rabson2004-05-231-0/+7
| | | | | | | | | | | | | | they have the right values at the first bus reset. Notes: svn path=/head/; revision=129611
* | MFNetBSD 1.80; author: wizLukas Ertl2004-05-231-2/+3
| | | | | | | | | | | | | | | | | | URL updates, from Jared Yanovich and jmc@openbsd, forwarded by the latter. Obtained from: NetBSD Notes: svn path=/head/; revision=129610
* | Replace the static "qdat" structure with a per-instance softc fieldIan Dowse2004-05-2312-32/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in all USB ethernet drivers. The qdat structure contains a pointer to the interface's struct ifnet and is used to process incoming packets, so simultaneous use of two similar devices caused crashes and confusion. The if_udav driver appeared in the tree since Daan's PR, so I made similar changes to that driver too. PR: kern/59290 Submitted by: Daan Vreeken <Danovitsch@Vitsch.net> Notes: svn path=/head/; revision=129607
* | Diff reduction to NetBSD.Lukas Ertl2004-05-231-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MFNetBSD 1.177; author: toshii Use the correct wValue to get hub desriptors. Also, make wValue checks of root hub codes less strict. MFNetBSD 1.178: author: martin Interrupt descriptors might become invalid while being processed in uhci_check_intr - so remember their next pointer before calling it. Patch provided by Matthew Orgass in PR kern/24542. Obtained from: NetBSD Notes: svn path=/head/; revision=129606
* | Use __FBSDID.Maxime Henrion2004-05-232-4/+6
| | | | | | | | Notes: svn path=/head/; revision=129605
* | Apply fix for long timeouts on driver initialisation.Duncan Barclay2004-05-231-2/+7
| | | | | | | | | | | | | | | | | | PR: 64656 Submitted by: Jianqin Qu <jqu@its.brooklyn.cuny.edu> Reviewed by: dmlb Notes: svn path=/head/; revision=129602
* | In agp_generic_bind_memory(), grab the needed pages before acquiringMaxime Henrion2004-05-232-60/+84
| | | | | | | | | | | | | | | | | | | | the agp mutex. We do this because vm_page_grab() called with the VM_ALLOC_RETRY flag can sleep. Pointed out by: alc Notes: svn path=/head/; revision=129601
* | Implement the new KERN_PROC_RGID option, and also implement theGarance A Drosehn2004-05-221-0/+28
| | | | | | | | | | | | | | | | | | | | | | KERN_PROC_SESSION option which had been previously defined but never implemented. PR: bin/65803 (a very tiny piece of the PR)` Submitted by: Cyrille Lefevre Notes: svn path=/head/; revision=129599
* | Define a KERN_PROC_RGID option for kvm_getprocs().Garance A Drosehn2004-05-221-0/+1
| | | | | | | | | | | | | | Submitted by: Cyrille Lefevre Notes: svn path=/head/; revision=129597
* | Revert the previous commit. The bus accessor macros do not check theNate Lawson2004-05-221-3/+56
| | | | | | | | | | | | | | | | | | | | return value for BUS_READ_IVAR and thus don't generate the proper NULL in cases where a device (i.e. on PCI) does not have a handle. Found by: peadar, tjr Notes: svn path=/head/; revision=129594
* | - Rearrange a comment to fit in 80 chars per line, like the rest of thisMarius Strobl2004-05-221-4/+4
| | | | | | | | | | | | | | | | file. - Remove a superfluous ';'. Notes: svn path=/head/; revision=129588