{
ipr_reinit_ipr_cmnd(ipr_cmd);
ipr_cmd->u.scratch = 0;
- ipr_cmd->sibling = NULL;
init_timer(&ipr_cmd->timer);
}
**/
static void ipr_internal_cmd_done(struct ipr_cmnd *ipr_cmd)
{
- if (ipr_cmd->sibling)
- ipr_cmd->sibling = NULL;
+ if (ipr_cmd->u.sibling)
+ ipr_cmd->u.sibling = NULL;
else
complete(&ipr_cmd->completion);
}
* If abort has not completed, indicate the reset has, else call the
* abort's done function to wake the sleeping eh thread
*/
- if (ipr_cmd->sibling->sibling)
- ipr_cmd->sibling->sibling = NULL;
+ if (ipr_cmd->u.sibling->u.sibling)
+ ipr_cmd->u.sibling->u.sibling = NULL;
else
- ipr_cmd->sibling->done(ipr_cmd->sibling);
+ ipr_cmd->u.sibling->done(ipr_cmd->u.sibling);
list_add_tail(&ipr_cmd->queue, &ioa_cfg->free_q);
LEAVE;
ipr_sdev_err(ipr_cmd->u.sdev, "Abort timed out. Resetting bus\n");
reset_cmd = ipr_get_free_ipr_cmnd(ioa_cfg);
- ipr_cmd->sibling = reset_cmd;
- reset_cmd->sibling = ipr_cmd;
+ ipr_cmd->u.sibling = reset_cmd;
+ reset_cmd->u.sibling = ipr_cmd;
reset_cmd->ioarcb.res_handle = ipr_cmd->ioarcb.res_handle;
cmd_pkt = &reset_cmd->ioarcb.cmd_pkt;
cmd_pkt->request_type = IPR_RQTYPE_IOACMD;
ipr_reinit_ipr_cmnd_for_erp(ipr_cmd);
- if (!res->tcq_active) {
- ipr_erp_request_sense(ipr_cmd);
- return;
- }
-
cmd_pkt = &ipr_cmd->ioarcb.cmd_pkt;
cmd_pkt->request_type = IPR_RQTYPE_IOACMD;
cmd_pkt->cdb[0] = IPR_CANCEL_ALL_REQUESTS;