return cmd;
}
-static void sbp2util_free_command_dma(struct sbp2_command_info *cmd)
+/*
+ * Unmaps the DMAs of a command and moves the command to the completed ORB list.
+ * Must be called with lu->cmd_orb_lock held.
+ */
+static void sbp2util_mark_command_completed(struct sbp2_lu *lu,
+ struct sbp2_command_info *cmd)
{
- struct sbp2_lu *lu = (struct sbp2_lu *)
- cmd->Current_SCpnt->device->host->hostdata[0];
- struct hpsb_host *host;
-
- if (!lu) {
- SBP2_ERR("%s: lu == NULL", __FUNCTION__);
- return;
- }
-
- host = lu->ud->ne->host;
+ struct hpsb_host *host = lu->ud->ne->host;
if (cmd->cmd_dma) {
if (cmd->dma_type == CMD_DMA_SINGLE)
cmd->dma_type = CMD_DMA_NONE;
cmd->cmd_dma = 0;
}
-
if (cmd->sge_buffer) {
pci_unmap_sg(host->pdev, cmd->sge_buffer,
cmd->dma_size, cmd->dma_dir);
cmd->sge_buffer = NULL;
}
-}
-
-/*
- * This function moves a command to the completed orb list.
- * Must be called with lu->cmd_orb_lock held.
- */
-static void sbp2util_mark_command_completed(
- struct sbp2_lu *lu,
- struct sbp2_command_info *cmd)
-{
- sbp2util_free_command_dma(cmd);
list_move_tail(&cmd->list, &lu->cmd_orb_completed);
}