summaryrefslogtreecommitdiff
path: root/sys
AgeCommit message (Collapse)Author
2009-04-07after i took everything in this fiule apart and reassembled with a lot ofHenning Brauer
new stuff asserting copyright is in order
2009-04-07turn fragment reassembly on by default. the is little to no reason toHenning Brauer
not do fragment reassembly. discussed with dlg and ryan in basel. ok ryan dlg sthen jdixon todd deraadt
2009-04-07dont enable checksumming. it appears to be broken on fragmented packets.David Gwynne
discovered by deraadt@, fix tested by deraadt@
2009-04-07Eliminate useless loop over partitions and ignore zero lengthKenneth R Westerback
partitions in bsd_to_sun(), even if their offsets are nonsense. Theo says if sparc64 compiles so will sparc. Fixes some useless disklabel warning messages. ok miod@ deraadt@
2009-04-07Remove some dead and if 0ed out code in the ragedrm freelist, while i'm hereOwain Ainsworth
detypedef the buf_priv structure and do a little cleanup.
2009-04-06Convert the savage freelist over to TAILQ.Owain Ainsworth
2009-04-06Convert the mgadrm freelist code from handrolled lists to TAILQs,Owain Ainsworth
simplifying while I do it.
2009-04-06factor a bit more functionality into common code instead of repeating itOwain Ainsworth
in both drivers.
2009-04-06Actually remove the file this time...Owain Ainsworth
2009-04-06Turns out that the intel version of the heap interface isn't usedOwain Ainsworth
anywhere. And hasn't been for a long time. The ddx sets up the heap (so just always pass that call and do nothing), but nothing that touches inteldrm actually uses the other ioctls. So just kill them and have one lese thing to worry about. Still got sis and radeon using the common code though.
2009-04-06Set a first step on the road towards proper accounting of PCI resources byMark Kettenis
keeping a per-bus extent containing the address space available to the bus. Address space assigned to devices will be removed from these extents when we attach a bus. And when we try to map a PCI BAR that hasn't had address space assigned to it, we will allocate free space from this extent. This won't do anything until the parent devices actually allocate and initialize the extents. ok oga@
2009-04-06Remove the only (commented) instance of UVM_PAGE_INLINE from the treeOwain Ainsworth
now that it has been removed. uncommenting that would not even have been the correct way to enable it. ok miod@
2009-04-06do not panic when the device is unplugged.Damien Bergamini
fix 802.11a rate set for dual-band devices (spotted by Fukaumi Naoki). + usual cleanup
2009-04-06In the case where VM_PHYSSEG_MAX == 1 make vm_physseg_find andOwain Ainsworth
PHYS_TO_VM_PAGE inline again. This should stop function call overhead killing the vax and other slow archs while keeping the benefit for the faster platforms. suggested by miod. ok miod@, toby@.
2009-04-06Adjust for renaming the DEC 21554 in pcidevs.Mark Kettenis
2009-04-06regenMark Kettenis
2009-04-06Fix entry for DEC 21554 non-transparent PCI bridge (which may be used in someMark Kettenis
Compaq RAID controllers, but there are other applications too).
2009-04-061) scrub rules are completely gone.Henning Brauer
2) packet reassembly: only one method remains, full reassembly. crop and drop-ovl are gone. . set reassemble yes|no [no-df] if no-df is given fragments (and only fragments!) with the df bit set have it cleared before entering the fragment cache, and thus the reassembled packet doesn't have df set either. it does NOT touch non-fragmented packets. 3) regular rules can have scrub options. . pass scrub(no-df, min-ttl 64, max-mss 1400, set-tos lowdelay) . match scrub(reassemble tcp, random-id) of course all options are optional. the individual options still do what they used to do on scrub rules, but everything is stateful now. 4) match rules "match" is a new action, just like pass and block are, and can be used like they do. opposed to pass or block, they do NOT change the pass/block state of a packet. i. e. . pass . match passes the packet, and . block . match blocks it. Every time (!) a match rule matches, i. e. not only when it is the last matching rule, the following actions are set: -queue assignment. can be overwritten later, the last rule that set a queue wins. note how this is different from the last matching rule wins, if the last matching rule has no queue assignments and the second last matching rule was a match rule with queue assignments, these assignments are taken. -rtable assignments. works the same as queue assignments. -set-tos, min-ttl, max-mss, no-df, random-id, reassemble tcp, all work like the above -logging. every matching rule causes the packet to be logged. this means a single packet can get logged more than once (think multiple log interfaces with different receivers, like pflogd and spamlogd) . almost entirely hacked at n2k9 in basel, could not be committed close to release. this really should have been multiple diffs, but splitting them now is not feasible any more. input from mcbride and dlg, and frantzen about the fragment handling. speedup around 7% for the common case, the more the more scrub rules were in use. manpage not up to date, being worked on.
2009-04-06Instead of doing splbio(); simple_lock(&uvm.aiodoned_lock); just replaceOwain Ainsworth
the simple lock with a real lock - a IPL_BIO mutex. While i'm here, make the sleeping condition one hell of a lot simpler in the aio daemon. some ideas from and ok art@.
2009-04-06Don't bother to keep a count of irqs recieved, the os does that for us.Owain Ainsworth
2009-04-06Don't forget to TAILQ_INIT() the heap...Owain Ainsworth
2009-04-06sisdrm depends on the heap interface too, now.Owain Ainsworth
2009-04-06extra or missing blank lines.Owain Ainsworth
2009-04-06Remove the context constructor and destructor driver hooks. sisdrm's oldOwain Ainsworth
code was the only that that needed them.
2009-04-06sisdrm is disabled. That does not mean that the code doesn't offend me.Owain Ainsworth
This driver is a very thin wrapper for doling out memory to userland, everything else is handled by the userland drivers, therefore I really want to rewrite this driver before even thinking about enabling it, userland mapping graphics registers makes it hard for me to sleep at night. Anyway, remove a huge pile of scary code by switching the memory allocation ioctls to user the drm_heap.c code instead of the very complicated mess that it uses right now, probably saves some space, too. Turns out linux made some similar (but far from identical) changes ages ago, They did more, that may come later.
2009-04-06merge radeon_mem_release() and radeon_mem_takedown() into the drm_heapOwain Ainsworth
interface as drm_mem_release() and drm_mem_takedown() respectively. While this interface's days are numbered, I'm about to make another driver use it to remove even worse code. Roll on memory management...
2009-04-05In the rare case where after we've loaded the iomap into the hardware,Owain Ainsworth
if we fail while assembling the dmamap due to the memory not fitting into our constraints we'll return from the function with the iomap still loaded, and more importantly with memory still allocated from the extent(9). So in such a case, make sure we clean up after outselves. In order to make this cleaner, remove an impossible condition check (kettenis and myself are satisfied that it will never happen), and make iomap_load_map void (it can't fail), so that we can only fail after both the extent is allocated and the iomap is loaded, and not inbetween the two. I tested iommu, kettenis tested viommu. ok kettenis@.
2009-04-05In the unlikely even that we do the final unref on a uvm_vnode objectOwain Ainsworth
while there's io pending (async io makes that possible, but not often hit), then we'll be waiting for the pgo_releasepg hook to free the object when all of our pages disappear. However, uvn_releasepg, while it does everything else that unreferencing the object would do, it neglects to do the final vrele() on the vnode. So in this rare situation we'd end up with the vnode waiting around until it was forcibly recycled. Fix this by adding in the missing vrele(). ok thib@
2009-04-05Rework the vblank subsystem so that instead of having various bits inOwain Ainsworth
the drm softc, we only have one pointer, with the rest in that struct. This is so that vblank-less drivers (yes, they exist) don't need to waste space on useless crud. While i'm reworking most of this code anyway, accept that on openbsd all of the #defined atomic functions are not atomic other than set and clear bit. Also, realise that the vb_lock is held whenever we manipulate these counts anyway. With those two facts in mind just remove the atomic_blah() and just use ++ and --.
2009-04-05kill DRM_VERIFYAREA_READ, it's part of a linux optimisation where we canOwain Ainsworth
guarrantee that copyin won't pagefault and use a faster version in that case. Since we just use plain copyin, it's stupid.
2009-04-04Make extent_print() use printf to avoid the pagination that db_printfMark Kettenis
provides, while keeping this behaviour for extent_print_all() which is only called by ddb. Based on a diff from deraadt@.
2009-04-04Bump the size of the array that we use to store bootpath components. Makes theMark Kettenis
t5120 and similar systems boot from our install CD-ROM.
2009-04-04A couple of fixes (based mostly on stuff from upstream) to stopOwain Ainsworth
breaking vblanks over suspend. Firstly, when we turn off the irq, wait up anyone waiting on vblanks, and prepare for the fact that interrupts are going off. Secondly, only reduce the refcount for vblanks over modeset if they were actually turned on. Fixes gl apps running while you suspend an x40 (as in they still work when it comes back).
2009-04-04Remove an unused function inherited from NetBSD that deals with a brokenMark Kettenis
SiS chipset that we'll never see on and amd64 machine. ok oga@
2009-04-04Remove the three inline functions from drmP.h.Owain Ainsworth
deiline drm_core_findmap(), and merge drm_core_ioremap{,free}() into drm_ioremap{,free}() instead of having an inline that just calls another function.
2009-04-04Remove unused #include.Mark Kettenis
2009-04-04make bus_dmamap_load_raw respect the constraints of the dmamap we'reDavid Gwynne
loading the raw memory into. similair to the change made to src/sys/arch/amd64/amd6/bus_dma.c 1.18
2009-04-04make bus_dmamap_load_raw respect teh constraints of the dmamap we'reDavid Gwynne
loading the raw memory into, particularly the segment size constraint. written in june/july last year, but my studies held me back from handling it.
2009-04-04use time_uptime instead of time_second internally. time_uptime isntDavid Gwynne
affected by adjusting the clock.
2009-04-04Cleanup debug printfs.Mark Kettenis
2009-04-04Cleanup debug printf.Mark Kettenis
2009-04-04scrub more fields in the ccb when returning them to the free list afterDavid Gwynne
theyve been used, in particular the mfi header flags which has a bit that specifies if a command should be completed via the interrupt path. if we use a ccb during boot we set that bit, but it isnt necessarily cleared by things that use it later on. this means a ccb we expected to complete via an interrupt never actually generates an interrupt or appears in the reply queue. this obviously stalls the io.
2009-04-04- make sure codec->nsense_pins is initilized to 0Jacob Meuser
- don't mix use of const and non-const pointers problem noted by Jordi Beltran Creix on tech@
2009-04-03detypedef drm_local_map.Owain Ainsworth
2009-04-03detypedef drm_device_dma_t.Owain Ainsworth
2009-04-03detypedef drm_buf_entry_t too.Owain Ainsworth
2009-04-03detypedef struct drm_buf from the dma_buffers api. Just because it'sOwain Ainsworth
dying as soon as I can make it doesn't mean I shouldn't be able to look at it in the meantime.
2009-04-03Change a bunch of "printk" in commented out debug code into "printf" andOwain Ainsworth
kill the compat define. Should have done this ages ago.
2009-04-03More dead typdefs and defines.Owain Ainsworth
2009-04-03dead function.Owain Ainsworth