diff options
author | Patrick Wildt <patrick@cvs.openbsd.org> | 2016-10-02 18:53:29 +0000 |
---|---|---|
committer | Patrick Wildt <patrick@cvs.openbsd.org> | 2016-10-02 18:53:29 +0000 |
commit | 215615798f244b35152e5e0839f6c12dd6d61bb2 (patch) | |
tree | c0ec02276da712113bab2d710d65cf9bd7c7aec4 /sys/dev/ic/adwlib.c | |
parent | 1fd447882b95ebf3b29bca73039223b116c4db2d (diff) |
Given that ahci_port_alloc() grabs one CCB for use during NCQ error
recovery from the CCB pool sized based on the NCS capability, i. e.
number of command slots reported by the controller, it is necessary
to pretend at least 2 slots in sc->sc_ncmds for devices without NCQ
support. That way, also at least 1 available slot is made available
for atascsi(4). Otherwise, controllers having only a single command
slot will trigger "no free xfers on a new port" in atascsi(4).
Note that pretending 2 command slots is also fine with the abuse of
the NCQ error recovery CCB in ahci_port_softreset().
From Marius Strobl
tested by awolk (amd64), bluhm (amd64, i386), myself (amd64, armv7)
ok jmatthew@
Diffstat (limited to 'sys/dev/ic/adwlib.c')
0 files changed, 0 insertions, 0 deletions