Age | Commit message (Collapse) | Author |
|
Balance calls to disk_busy() and disk_unbusy() properly to avoid
dk_busy < 0 panics. Count seeks.
|
|
|
|
|
|
|
|
|
|
|
|
"command aborted" status)
Handle cases like the following:
- controller calls scsi_done() with error XS_TIMEOUT
- scsi_done() calls sddone()
- sddone() calls disk_unbusy()
- scsi_done() calls controller to retry command (missing the
call to disk_busy())
- controller calls scsi_done()
- scsi_done() calls sddone()
- sddone() calls disk_busy(), which panics because of the imbalance.
Bug noticed by Leo Weppleman, who also suggested this fix; pass an additional
boolean argument ("complete") to the device's "done" routine, with a
value of `0' passed from the previous call to "done", and add an additional
call to "done" when the xfer resources are freed.
|
|
This might be a transient error. Do complain about it, though.
|
|
Still apparently not getting interrupts for some reason, so this is more
or less just a checkpoint.
|
|
segment. Ordinary cachectl is for userlevel virtual addresses.
|
|
|
|
|
|
|
|
|
|
Patch to at least recognise FOCUS EtherLAN. From Erik Bertelson
<erik@sockdev.uni-c.dk>
|
|
|
|
kernel diffs from Tim Newsham <newsham@hookomo.aloha.net> found in his
well-known audio LKM kit.
|
|
|
|
|
|
helping me find this bug. On execution of an atomic load/store instruction
the chip will only say that a read fault is happening, we then load up a
readonly translation to the accessed page, and we get the fault again still
showing a read-fault. We end up faulting in a loop forever and the process
appears to be completely stuck. The algorithm to fix this problem goes like
this. If we get a non-text fault, and the fault type is VM_PROT_READ, and
the SER_PROT bit is set in the syncronous fault error register, we take
a peek at the instruction at pc. If this instruction is indeed an ldstub
or a swap variant we or in VM_PROT_WRITE to the fault type.
|
|
|
|
Instead, check the inquiry_flag. Also allow enabling and disabling
linked command issuance on target-by-target basis.
|
|
- move disk_attach() to before reading the disk label as per Jason.
otherwise we are reading into an unallocated buffer (oops!)
|
|
zero since xdcmatch/xycmatch no longer sets it). [if you call
mapiodev() with a zero size it will reuse the KVA it returns, swiping
the device out from under you!]
- make xdc/xyc->iopbase point in the kernels DVMA space rather than at the
normal malloc'd KVA. this isn't compatable with sun4m [doesn't
have a kernel DVMA space] and will need to be changed later (XXX).
- move disk_attach() to before reading the disk label as per Jason.
otherwise we are reading into an unallocated buffer (oops!)
|
|
|
|
device address (bus_tmp, bus_map, and mapiodev now do this for us).
also, we handle all our mappings, so don't have obio.c do any for us
(i.e. don't set ra->ra_len in xycmatch).
nuke uneeded variable in match function.
|
|
and thus probed the wrong address on the 4/300 (but it worked because
it was probing the esp0 registers!).
now that bus_tmp() adds the offset in for us [as of obio 1.15] i
discoved that a byte access to the dma registers is not allowed.
so, i've change probeget to use a word access.
|
|
page boundaries:
- change bus_tmp() to include the offset from the start of page in the
returned KVA [rather than forcing each driver to add it back in
individually]
- changed bus_map() to include the offset from the start of page in the
the returned value if a mapping is found in the PROM's KVA area
- clarified a few comments
|
|
page in the virtual address it returns.
|
|
|
|
Kludge around a case where a flaky HP-IB disk might be slow to respond
to the identification request in rdmatch(). Similar in spirit to a
patch from Jason Downs (written eons ago), but limited to the broken
device we're trying to reach. My patch tested (and fixed :-) by
Herb Peyerl.
|
|
PR #1918.
|
|
|
|
|
|
|
|
raeburn@raeburn.org; netbsd pr#1934
|
|
New generic disk framework. Highlights:
New metrics handling. Metrics are now kept in the new `struct disk'.
Busy time is now stored as a timeval, and transfer count in bytes.
Storage for disklabels is now dynamically allocated, so that the size
of the disk structure is not machine-dependent.
Several new functions for attaching and detaching disks, and handling
metrics calculation.
Old-style instrumentation is still supported in drivers that did it
before. However, old-style instrumentation is being deprecated, and
will go away once the userland utilities are updated for the new
framework.
For usage and architectural details, see the forthcoming disk(9)
manual page.
|
|
|
|
|
|
|
|
Make dlopen() search for libraries if given a name of the form
`lib<name>.so[.xx[.yy]]' (per Erik M. Theisen; PR#1763; patch from PR
used in simplified form).
Deal with v.2 hint files (hint srch dirs not yet used).
|
|
Create v.2 hint files.
Note: don't bother to understand v.1 files..
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|