Project

General

Profile

Bug #6967

tran_setup_pkt(9E) should document constraints on failure

Added by David Gwynne over 4 years ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
manpage - manual pages
Start date:
2016-05-12
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:

Description

the tran_setup_pkt() handler a HBA driver implements should only fail on a recoverable condition, it should not fail because of a property of the pkt it is setting up is incorrect.

this is because the SCSI layer (and sd(7D) in particular) consider tran_setup_pkt failures as transient. if setup_pkt fails against a certain pkt, it will be queued and the setup call will be retried in the future. if a tran_setup_pkt fails a pkt because of something like a cdblen or scblen check, the pkt will remain in the waitq and can block further commands from being setup correctly and running on the hba. setup_pkt handlers should limit themselves to reporting allocation or queue full errors, which may clear and therefore succeed in the future.

pkt property checks should instead be implemented in the tran_start handler and cause TRAN_BADPKT to be returned.

Also available in: Atom PDF