MFC r257916:
Save one more register read per command by not reading rqstoutrp register every time. The purpose of that register is unlikely output queue overflow detection, so read it only when its last known (and probably stale now) value signals overflow.
This commit is contained in:
parent
2ef8e6e39b
commit
116abbfd1f
@ -322,9 +322,13 @@ isp_destroy_handle(ispsoftc_t *isp, uint32_t handle)
|
||||
void *
|
||||
isp_getrqentry(ispsoftc_t *isp)
|
||||
{
|
||||
isp->isp_reqodx = ISP_READ(isp, isp->isp_rqstoutrp);
|
||||
if (ISP_NXT_QENTRY(isp->isp_reqidx, RQUEST_QUEUE_LEN(isp)) == isp->isp_reqodx) {
|
||||
return (NULL);
|
||||
uint32_t next;
|
||||
|
||||
next = ISP_NXT_QENTRY(isp->isp_reqidx, RQUEST_QUEUE_LEN(isp));
|
||||
if (next == isp->isp_reqodx) {
|
||||
isp->isp_reqodx = ISP_READ(isp, isp->isp_rqstoutrp);
|
||||
if (next == isp->isp_reqodx)
|
||||
return (NULL);
|
||||
}
|
||||
return (ISP_QUEUE_ENTRY(isp->isp_rquest, isp->isp_reqidx));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user