summaryrefslogtreecommitdiffstats
path: root/sys/arch/sparc64 (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* There is a bunch of places in the kernel entry points where we don'tart2011-07-073-65/+3
| | | | | | | | | | | hold the kernel lock, but still need call one function that needs it. Instead of grabbing the lock all over the place, move the locks into the affected functions: trapsignal, scdebug*, ktrsyscall, ktrsysret, systrace_redirect and ADDUPROF. In the cases we already hold the biglock we'll just recurse. kettenis@, beck@ ok
* Handle pci_conf_read() faults on reading non-existent registers that resultkettenis2011-07-062-6/+34
| | | | | | | in master aborts. Return 0xffffffff to emulate what happens on non-perfect architectures in that case. ok deraadt@
* Handle pci_conf_read() faults on reading non-existent registers that resultkettenis2011-07-063-5/+30
| | | | | | | in master aborts. Return 0xffffffff to emulate what happens on non-perfect architectures in that case. ok deraadt@
* Clean up after P_BIGLOCK removal.art2011-07-063-79/+79
| | | | | | | KERNEL_PROC_LOCK -> KERNEL_LOCK KERNEL_PROC_UNLOCK -> KERNEL_UNLOCK oga@ ok
* Add MSI support to pyro(4). Tested on a v215 with the on-board mpi(4).kettenis2011-07-063-7/+198
|
* Split some generic MSI code out into its own file.kettenis2011-07-064-76/+124
|
* Move pci_msi_enable() out of the vpci(4) driver into the MD pci(4) code.kettenis2011-07-063-24/+25
| | | | Soon to be used by pyro(4) as well.
* make clean should clean .d files, so as to leave a fresh canvas.tedu2011-07-061-2/+2
| | | | ok beck deraadt
* Replace last remaining users of link->scsibus withmatthew2011-07-051-2/+2
| | | | link->bus->sc_dev.dv_unit.
* Recommit the reverted sigacts change now that the NFS use-after-freeguenther2011-07-051-8/+8
| | | | | | | | problem has been tracked down. This fixes the sharing of the signal handling state: shared bits go in sigacts, per-rthread bits goes in struct proc. ok deraadt@
* remove compat_svr4 support. ok deraadttedu2011-07-042-31/+3
|
* Rip out and burn support for UVM_HIST.oga2011-07-031-18/+1
| | | | | | | | The vm hackers don't use it, don't maintain it and have to look at it all the time. About time this 800 lines of code hit /dev/null. ``never liked it'' tedu@. ariane@ was very happy when i told her i wrote this diff.
* Per recommandation in the the sparc docs, use unlocked reads whenguenther2011-07-021-17/+20
| | | | | | spinning on a contended lock. ok kettenis@
* Replace all instances of "scsibus* at hba?" with a single "scsibus* atmatthew2011-06-294-33/+8
| | | | | | scsi?" rule, similar to how ethernet PHY drivers attach at mii. Discussed on icb.
* If an shared interrupt handler returns -1, continue running other handlers.deraadt2011-06-271-3/+6
| | | | | | | If it returns 1, skip calling the handlers further down the list. The interrupt pin will remain asserted, and the handler will be called on the next go-around. This makes sparc64 "similar" to other architectures. ok kettenis jsing
* When adding interrupt handlers to a chain, install them in priority order.jsing2011-06-271-9/+25
| | | | | | This results in the higher IPL handlers being run first. ok deraadt@ kettenis@
* if_downall() cannot be done MI in sys_reboot() because vfs_shutdown()deraadt2011-06-261-1/+3
| | | | | might need network (ie. nfs). Move the call to the MD boot() routines. This cause for boot hangs diagnosed by kettenis.
* First stab at MSI support for vpci(4). Still a few rough edges, but seemskettenis2011-06-261-1/+257
| | | | to work fine on a t1k and a t5120, so let's enable this right from the start.
* In the shared interrupt handler, return the pil and ci_handled_intr_levelderaadt2011-06-261-2/+4
| | | | | | to the level they were at before we started splraise'ing for the various handlers. with jsing, ok kettenis
* Fix some inconsistencies in how we build 64-bit addresses from OF properties.kettenis2011-06-264-9/+9
|
* Implement pci_intr_map_msi().kettenis2011-06-262-4/+23
|
* Missed a parameter in the pci_msi_setmsiq hypervisor call.kettenis2011-06-261-2/+2
|
* Add MSI hypervisor calls.kettenis2011-06-252-2/+210
|
* machdep.kbdreset enables a shutdown by Ctrl-Alt-Del on amd64 andnaddy2011-06-244-17/+13
| | | | | | | | | | | | | | | i386. Stop abusing it on other archs for controling a shutdown by pressing the soft power button: * Add a MI sysctl hw.allowpowerdown; if set to 1 (the default) it allows a power button shutdown. * Make acpi(4)/acpibtn(4) honor hw.allowpowerdown. * Switch the various power button intercepts on landisk, sgi, sparc64 and zaurus over to hw.allowpowerdown. * Garbage collect the machdep.kbdreset sysctl on all archs other than amd64 and i386. ok miod@
* We should only ack a shared interrupt once, after we've run all the handlers.kettenis2011-06-241-1/+4
| | | | | | | So let the intr_list_handler do this, and prevent the real handlers from doing it as well. tested by deraadt@
* Fix the error path in bus_dmamem_map.ariane2011-06-231-6/+2
| | | | | | | As discussed on icb: remove the comment, remove pmap_remove (uvm_km_free does that for us). ok oga@, deraadt@
* enable myx(4), now that it worksderaadt2011-06-221-1/+2
|
* M_WAITOK cleanup of two cases:mk2011-06-171-2/+3
| | | | | | | | | | | | | | | | 1) Allocating with M_WAITOK, checking for NULL, and calling panic() is pointless (malloc() will panic if it can't allocate) so remove the check and the call. 2) Allocating with M_WAITOK, checking for NULL, and then gracefully handling failure to allocate is pointless. Instead also pass M_CANFAIL so malloc() doesn't panic so we can actually handle it gracefully. 1) was done using Coccinelle. Input from oga. ok miod.
* Set FEF bit in the %fprs register when handling an fp_disabled trap fromkettenis2011-06-061-1/+2
| | | | | | | | | userland. Prevents userland applications from trapping forever on the next floating point instruction executed after clearing this flag. Fixes issues with threaded applications, sinc our pthreads library clears the FEF bit under some circumstances. ok miod@, tested by ajacoutot@
* Move the bufcachepercent setting code to MI locations -- set it to 42%deraadt2011-06-051-15/+1
| | | | | | | for now; that is unlikely to hit some of the remaining starvation bugs. Repair the bufpages calculation too; i386 was doing it ahead of time (incorrectly) and then re-calculating it. ok thib
* Drop kernel support for the useless DIOCWLABEL ioctl and prune a lotmatthew2011-06-051-7/+1
| | | | | | | | | of silly flag twiddling code in various disk drivers. ok deraadt@, miod@ N.B., users will need a -current disklabel(8) to be able to write new disklabels to disk now.
* Remove the freelist member from vm_physsegoga2011-05-302-9/+4
| | | | | | | | | | | | | | | | | | The new world order of pmemrange makes this data completely redundant (being dealt with by the pmemrange constraints instead). Remove all code that messes with the freelist. While touching every caller of uvm_page_physload() anyway, add the flags argument to all callers (all but one is 0 and that one already used PHYSLOAD_DEVICE) and remove the macro magic to allow callers to continue without it. Should shrink the code a bit, as well. matthew@ pointed out some mistakes i'd made. ``freelist death, I like. Ok.' ariane@ `I agree with the general direction, go ahead and i'll fix any fallout shortly'' miod@ (68k 88k and vax i could not check would build)
* Also enclose variable names with external linkage in __BEGIN_DECLS.martynas2011-05-251-1/+3
| | | | | | | Doesn't matter much since C++ ABI used by GCC doesn't mangle variable names; however technically is required by Section 7.5 of the C++ spec. Discussed with/OK guenther@, matthew@.
* On OpenBSD, we've always attached scsibus(4) to umass(4), even formatthew2011-05-242-4/+2
| | | | | | | ATAPI devices. atapiscsi(4) is only for handling ATAPI devices on an ATA bus, so umass(4) shouldn't care about it. ok krw@, dlg@; no objections from deraadt@
* It's better to have the pci_intr_map_msi() stub return -1.kettenis2011-05-211-2/+2
|
* Add pci_intr_map_msi() stub.kettenis2011-05-211-1/+2
|
* When the sparc64 iommu fails to lookup a vaddr, it prints a message andariane2011-05-182-22/+10
| | | | | | | | | | returns EFBIG. This cannot be recovered from and is usually indicative of a damaged pmap. Therefor, panic right here instead. This diff meant the difference between dropping into single-user mode versus getting a traceable panic. ok kettenis@
* Turns out VA_ALIAS_MASK is indeed a mask, but with the PAGE_MASK deceptivelyariane2011-05-181-3/+4
| | | | | | | | zeroed out. Documented this in code and updated PMAP_PREFER_* macros to use the corrected values. Discussed with and ok miod@
* Better make PMAP_PREFER_ALIGN() a rounded value, as done on other arches;miod2011-05-181-2/+2
| | | | while there fix PMAP_PREFER_OFFSET() for good too, after discussion with ariane@
* Off-by-two in PMAP_PREFER_ALIGN definition; found the hard way by matthieu@miod2011-05-181-1/+1
|
* Expose pmap_prefer parameters.ariane2011-04-281-0/+5
| | | | | | Enables future uvm_map code to make intelligent decisions during allocation. No functional change.
* fenv improvements and cleanupsmartynas2011-04-281-34/+59
|
* support rooting off multipath disks.dlg2011-04-271-2/+12
| | | | | | | | | | | if you boot from a disk that ends up behind mpath(4) on sparc64, it wont be able to resolve it to the actual disk device since a path driver (eg sym(4)) sits where ofw tells us a disk is. this diff allows the bootpath code to match on path drivers, and then asks mpath to swap the path for the disk device. ok kettenis@
* MMU address space holes are at a fixed position (ofcourse).ariane2011-04-261-2/+3
| | | | | | Therefore set UVM_FLAG_FIXED and enforce this. ok oga@
* fenv for sparc; mostly cloned from sparc64martynas2011-04-251-3/+3
|
* fenv for i386, and sparc64; from matthew@martynas2011-04-241-0/+81
| | | | not reviewed yet, but it's better to track changes in cvs
* spacesmarco2011-04-221-2/+2
|
* Revert the sigacts diff: NFS can apparently retain pointers to processesguenther2011-04-181-8/+8
| | | | | | until they're zombies and then send them signals (for intr mounts). Until that is untangled, the sigacts change is unsafe. sthen@ was the victim for this one
* Use 'CLR(<buf>->b_flags, B_READ | B_WRITE | B_DONE)' regardless ofkrw2011-04-161-3/+3
| | | | | what the previous IO was. Less chance of copy and paste errors. Suggested by miod@.
* In days of yore one could arbitrarily whack buffer flags. Those dayskrw2011-04-151-3/+5
| | | | | | | | | | | | | are past. Use CLR() and SET() to modify necessary flags while leaving the flags used by the buffer cache in peace. Should make bufcache code much less confused about the state of the bufs used in reading/writing disklabels. Other such flag abuses no doubt await a visit. Errors in original diff found by miod@. ok beck@ deraadt@