| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
ok dlg@ deraadt@ kettenis@
|
|
|
|
|
|
| |
value.
Specs from mikeb@, ok dlg@
|
|
|
|
|
|
| |
drivers that fill that field in too.
quad types are going away.
|
|
|
|
| |
ok dlg@ krw@
|
| |
|
|
|
|
|
| |
precedence than ?:
ok guenther@ krw@ miod@
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when workqs were introduced, we provided a second argument so you
could pass a thing and some context to work on it in. there were
very few things that took advantage of the second argument, so when
i introduced pools i suggested removing it. since tasks were meant
to replace workqs, it was requested that we keep the second argument
to make porting from workqs to tasks easier.
now that workqs are gone, i had a look at the use of the second
argument again and found only one good use of it (vdsp(4) on sparc64
if you're interested) and a tiny handful of questionable uses. the
vast majority of tasks only used a single argument. i have since
modified all tasks that used two args to only use one, so now we
can remove the second argument.
so this is a mechanical change. all tasks only passed NULL as their
second argument, so we can just remove it.
ok krw@
|
| |
|
|
|
|
|
|
| |
paths. take it again when going back to other parts of the kernel.
tested by and ok kettenis@
|
|
|
|
| |
ok mpi@ kspillner@
|
|
|
|
|
|
| |
of the task structure like workq tasks did.
tested on an fc929
|
|
|
|
| |
ok dlg@
|
|
|
|
| |
ok tedu
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
| |
nvme and other stuff.
|
| |
|
|
|
|
| |
jmatthew@ agrees with me
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
on behalf of all its callers.
use htolem32 and lemtoh32 to handle the message context.
both save bytes.
|
| |
|
| |
|
| |
|
|
|
|
| |
important, as per r1.167.
|
|
|
|
|
|
|
|
|
|
|
| |
any work to do in the interrupt handler, or to clear it. the relevant bits
indicate whether there's work on the doorbell and clear when there isnt.
we need to read the doorbell if there is work to do, so lets just go that
straight away anyway.
get rid of bus_space_barriers in the io path. barriers are for enforcing
ordering. the doorbell reads and writes dont depend on any other register
values so ordering isnt applicable here.
|
|
|
|
| |
the code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. vmware advertises more scsi targets than command slots, so the maths
we did for openings gave each target 0 openings. always advertise at least
16 openings.
2. if we cant configure the ATA queue depth, dont fail to attach the
controller whole.
finally, improve the error reporting during attach so its more obvious
where things fail.
mostly figured out by jmatthew@
|
|
|
|
| |
ok dlg
|
|
|
|
| |
ok mikeb
|
| |
|
|
|
|
|
| |
their types to fit the iopools api rather than doing awful typecasts to
shove them into iopool_init.
|
|
|
|
|
|
| |
is causing problems when trying to boot sparc64 from an isp(4).
Verified to fix the sparc64/isp(4) regression by krw@; ok deraadt@
|
|
|
|
|
|
| |
saa_luns instead of adapter_buswidth and luns in the prototype link.
ok dlg@, miod@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
issues scsi commands against that target. it might be a normal device and
the firmware is just being picky about which headers you can fetch.
tested by and ok deraadt@
|
|
|
|
|
|
|
| |
yanked. we want to reschedule them down active paths rather than wait for
a minute while mpi decides that a path isnt coming back.
discussed with and tested by deraadt@
|
|
|
|
|
| |
rather than the default of XS_DRIVER_STUFFUP. mpath(4) likes this better
when you unplug paths.
|
|
|
|
|
|
|
|
|
| |
some fc parts dont like the header requests against missing devices with
bus addressing, so now we do the magic iteration over active ports.
the original problem was reported by deraadt@
lots of testing and debugging by deraadt@
tested on fc929 and fc949 adapters
|
|
|
|
|
|
|
|
| |
queue. In some situations this prevents us from reading a garbled reply.
If this commit breaks your mpi, please report ASAP.
The issue was reported and the fix was verified by Emeric Boit. Thanks!
Ok dlg, kettenis, marco (who warned us and wanted to test more)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
devices.
my theory is that some devices report queue full conditions in ways
the firmware doesnt understand, or some firmwares default to NOT
doing the queue full handling internally. either way it reports
queue full conditions as faulted io which gets passed up to the
block layer as errors.
this makes us conservative again and safe.
this fixes panics from ajacout
ok sthen@ deraadt@
|
| |
|
|
|
|
| |
firmware has it configured lower.
|
|
|
|
| |
ok dlg@ matthew@
|
|
|
|
|
|
| |
provide. spi parts are still limited.
ok krw@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
never complete.
when we get a detach event from the firmware, we currently deactivate the
device and then request the scsi midlayer attempt to detach the device.
this diff now deactivates the device and then resets the target, forcing
the ioc to complete the pending operations. once the reset has completed
we then request a detach of the kernel device.
this lets me hotplug busy sas disks without leaking scsi_xfers or bufs or
anything.
|
| |
|
|
|
|
|
|
|
| |
steals^Wleverages the code used in mpii for handling a list of events to
acknowlede.
tested by hotplugging sas disks.
|
|
|
|
| |
fc devices.
|
| |
|