summaryrefslogtreecommitdiff
path: root/sys
AgeCommit message (Collapse)Author
2014-03-26Increase max data size. 32G is the new 640K.Ted Unangst
Using this much memory may have negative side effects, but at least now you have the option. Here's some rope; have fun. maybe ok a few people.
2014-03-26Service R4[04]00SC-specific virtual coherency exceptions directly from theMiod Vallat
lowest bowels of the exception handling code, rather than in trap(). They won't get recorded in the trap history, but there is a measurable speedup. No change for non-CPU_R4000 kernels.
2014-03-26bcmp -> memcmpMartin Pieuchot
2014-03-26No need to include <sys/lock.h> when only <sys/rwlock.h> is needed,Martin Pieuchot
so remove the former and include the latter instead of pulling it in <dev/pci/agpvar.h>. This header already requires various other types anyway. While here remove unneeded headers.
2014-03-26No need to check here if the destination address is ours, because inMartin Pieuchot
such case loouput() is called not ether_output(). ok claudio@, mikeb@
2014-03-26Simply cansignal(), passing it processes instead of procs andPhilip Guenther
dropping the pcred argument. Fix handling of kill(-1, sig) from a thread other than the original thread. ok deraadt@
2014-03-26Move p_emul and p_sigcode from proc to process.Philip Guenther
Tweak the handling of ktrace EMUL when changing ktracing: only generate one per process (not one per thread) and pass the correct proc pointer down to the VFS layer. Permit generating of NAMI and CSW records inside ktrace(2) itself. ok deraadt@ millert@
2014-03-25Instead of matching root hubs with a custom address, that only worksMartin Pieuchot
because USB_START_ADDR is defined to 0 and the softc is M_ZERO'd, assume that root hubs are the only devices with a depth of 0. Root hubs can now happily be detached and reattached.
2014-03-25Remove and shuffle some includes to reduce their number since drmP.hMartin Pieuchot
is included by a lot of files.
2014-03-25Upon resume do a full reset of the HC, including the command and eventMartin Pieuchot
rings, and rewrite all the addresses in the registers. While here don't keep a copy of our usb(4) child device, autoconf(9) knows how to reach our children.
2014-03-25when working with the cdb its better to use cmdlen than datalen.David Gwynne
ok jmatthew@
2014-03-25use lemtohXX and htolemXX as much as possibleDavid Gwynne
2014-03-25when reading from the chip you use letoh32, not htole32.David Gwynne
jmatthew@ agrees with me
2014-03-25rework qle_put_cmd to use hto[lb]emXX as best it can.David Gwynne
ok jmatthew@
2014-03-25everything is at least 4 byte aligned.David Gwynne
2014-03-25use htolem32 to write out qle sg elements, and annotate the structure asDavid Gwynne
being 4 byte aligned. rewrite qle_put_data_seg so it takes an address and length rather than a dma descriptor so it can be used to write sges for arbitrary things rather than just dmamaps. use it to write out all sges. ok jmatthew@
2014-03-25the memory constraints are correct, so we dont need volatile to provideDavid Gwynne
extra restrictions on ordering.
2014-03-25As long as we're pulling in "systrace.h", might as well conditionalizePhilip Guenther
the inclusion of <dev/systrace.h>
2014-03-25the memory constraints are correct on the MD_SWAPIO bits, so we dont needDavid Gwynne
the extra restrictions that __volatile provides on the __asm statements.
2014-03-25Add a driver for simple usb serial devices, it attachesJonathan Gray
ucom but doesn't set any custom callbacks. John Long has a HPx9G+ device that requires this.
2014-03-25regenJonathan Gray
2014-03-25add HP-x9G+Jonathan Gray
2014-03-24add support for aux button strip on newer thinkpads like the 2ndjoshua stein
generation x1 carbon that have done away with regular F1-F12 keys from rivo nurges <rix at estpak.ee> and reportedly tested on x1 carbon, x220, and x61s
2014-03-24Only need to call tlb_probe() once per pair, instead of once per page.Miod Vallat
2014-03-24Make sure tlb_probe() reads the probe result before reenabling interruptsMiod Vallat
(egads!). While there, remove leftover instructions from an early flavour of tlb_update_indexed(), which crept in by accident.
2014-03-24Another round of reducing diffs with the Linux codebase.Mark Kettenis
2014-03-24shrink the iopath a bit by using htolemXX and lemtohXX.David Gwynne
2014-03-24scsi io bits are at least 4 byte alignedDavid Gwynne
2014-03-24mpii_sges are 4 byte aligned. makes storing the flags field a bit easierDavid Gwynne
on strict alignment archs.
2014-03-24make mpii_sge look like mpi_sge, and provide a wrapper for setting theDavid Gwynne
address in it like the one in mpi too. shrinks load_xs a bit
2014-03-24bcopy to memcpyDavid Gwynne
2014-03-24replace bzero with memsetDavid Gwynne
2014-03-24rework mpii to use tasks instead of scsi_tasks for sas event handling.David Gwynne
scsi_tasks are still backed by workq, and i dont like having to allocate storage to defer work. sas events that cause hotplug events are queued in the softc to be handled by a single task that loops on the queue for work. think levelled interrupts. this has a side effect that interrupts are necessary to enumerate devices for attachment. i wrote this toward the end of last year, but thought it best to wait for 5.5 unlock.
2014-03-24use htolemXX and lemtohXX in the scsi_cmd paths.David Gwynne
apart from the flags handling in sgls, this shrinks the io hot path on sparc64 and powerpc a lot. its pretty much the same on i386/amd64/alpha.
2014-03-24mpi scatter gather lists are 24 bytes long and next to each other inDavid Gwynne
memory. that means you cant do 8 byte loads and stores on the sg_addr member cos it wont be 8 byte aligned half the time which makes strict alignment archs (ie, the fun ones ones) upset. annotate the sge as being 4 byte aligned. replace the sg_addr member with sg_addr_lo and sg_addr_hi. replace htole64 assignment of the sg addr with a wrapper that does the right thing with a couple of htolem32 calls. generated code shrinks again.
2014-03-24The kernel isn't involved in times(3); <sys/times.h> should never bePhilip Guenther
included there
2014-03-24factor out the setting of the request context field so mpi_start does itDavid Gwynne
on behalf of all its callers. use htolem32 and lemtoh32 to handle the message context. both save bytes.
2014-03-24annotate some packed structures with the alignment the hardwareDavid Gwynne
requires and the driver provides. without this gcc assumes the alignment of these structures is 1, which leads to some horrible asm. this is particularly interesting when reading stuff from the myx_status struct (like the txdone count) which needs to be atomic. doing byte reads and shifting them into a word in registers isnt atomic. its also probably a bit slow. specifying the alignment fixes this. deraadt@ warned me about this maybe 8 years ago.
2014-03-24nothing after the irq ack posting relies on it being ordered.David Gwynne
2014-03-24Split the API: struct ucred remains the kernel internal structure whilePhilip Guenther
struct xucred becomes the structure for syscalls (mount(2) and nfssvc(2)). ok deraadt@ beck@
2014-03-23Unbreak after last commit.Miod Vallat
2014-03-23Initialize additional BATs (IBAT4-IBAT7 and DBAT4-IBAT7). The rb600 firmwareMark Kettenis
has these enabled and this leads to memory corruption that (surprisingly) only shows up when running PIE.
2014-03-23Fix uhidev_detach() when detaching a device which did not claimed for allandre
report IDs, on those cases some positions on sc_subdevs[] can be null. Initial analysis by guenther@. ok mpi@
2014-03-23Revert audio key handling, requested by ratchov@Martin Pieuchot
2014-03-23my bad, last commit was not ok deraadt, revert it.Alexandre Ratchov
2014-03-23Repair R5000SC and R4600SC external L2 cache setup, broken in previousMiod Vallat
revision.
2014-03-22Move p_sigacts from struct proc to struct process.Philip Guenther
testing help mpi@
2014-03-22<sys/agpio.h> is gone; this compiles fine without itPhilip Guenther
2014-03-22Second draft of my attempt to workaround the infamous R4000 end-of-page errata,Miod Vallat
affecting R4000 processors revision 2.x and below (found on most R4000 Indigo and a few R4000 Indy). Since this errata gets triggered by TLB misses when the code flow crosses a page boundary, this code attempts to identify code pages prone to trigger the errata, and force the next page to be mapped for at least as long as the current pc lies in the troublesome page, by creating wiring extra TLB entries. These entries get recycled in a lazy-but-aggressive-enough way, either because of context switches, or because of further tlb exceptions reaching trap(). The errata workaround code is only compiled on R4000-capable kernels (i.e. sgi GENERIC-IP22 and nothing else), and only enabled on affected processors (i.e. not on R4000 revision 3, or on R4400). There is still room for improvemnt in unlucky cases, but in this simple enough incarnation, this allows my R4000 2.2 Indigo to finally reliably boot multiuser, even though both /sbin/init and /bin/sh contain code pages which can trigger the errata.
2014-03-22Shuffle tlblo-related defines, to better show which bits are software only,Miod Vallat
and which bits end up in the actual tlb registers. On non-R8000 kernels, shrink the actual physical address bits to add a new software bit, PG_SP (for `special'), which will be used shortly. This halves the physical memory addressable by non-MIPS_PTE64 kernels, which should not be a problem anyway.