Lines Matching refs:scmd

1257 static int myrb_host_reset(struct scsi_cmnd *scmd)
1259 struct Scsi_Host *shost = scmd->device->host;
1267 struct scsi_cmnd *scmd)
1270 struct myrb_cmdblk *cmd_blk = scsi_cmd_priv(scmd);
1274 struct scsi_device *sdev = scmd->device;
1283 nsge = scsi_dma_map(scmd);
1286 scmd->result = (DID_ERROR << 16);
1287 scmd->scsi_done(scmd);
1292 mbox->type3.id = scmd->request->tag + 3;
1296 switch (scmd->sc_data_direction) {
1311 if (scmd->request->timeout <= 10)
1313 else if (scmd->request->timeout <= 60)
1315 else if (scmd->request->timeout <= 600)
1321 sgl = scsi_sglist(scmd);
1330 dcdb->cdb_len = scmd->cmd_len;
1332 memcpy(&dcdb->cdb, scmd->cmnd, scmd->cmd_len);
1341 struct scsi_cmnd *scmd)
1360 scsi_sg_copy_from_buffer(scmd, (void *)inq, 36);
1364 myrb_mode_sense(struct myrb_hba *cb, struct scsi_cmnd *scmd,
1371 dbd = (scmd->cmnd[1] & 0x08) == 0x08;
1397 scsi_sg_copy_from_buffer(scmd, modes, mode_len);
1401 struct scsi_cmnd *scmd)
1403 scsi_build_sense_buffer(0, scmd->sense_buffer,
1405 scsi_sg_copy_from_buffer(scmd, scmd->sense_buffer,
1409 static void myrb_read_capacity(struct myrb_hba *cb, struct scsi_cmnd *scmd,
1414 dev_dbg(&scmd->device->sdev_gendev,
1419 scsi_sg_copy_from_buffer(scmd, data, 8);
1423 struct scsi_cmnd *scmd)
1426 struct myrb_cmdblk *cmd_blk = scsi_cmd_priv(scmd);
1429 struct scsi_device *sdev = scmd->device;
1441 scmd->result = (DID_BAD_TARGET << 16);
1442 scmd->scsi_done(scmd);
1445 switch (scmd->cmnd[0]) {
1447 scmd->result = (DID_OK << 16);
1448 scmd->scsi_done(scmd);
1451 if (scmd->cmnd[1] & 1) {
1453 scsi_build_sense_buffer(0, scmd->sense_buffer,
1455 scmd->result = (DRIVER_SENSE << 24) |
1458 myrb_inquiry(cb, scmd);
1459 scmd->result = (DID_OK << 16);
1461 scmd->scsi_done(scmd);
1464 scmd->result = (DID_OK << 16);
1465 scmd->scsi_done(scmd);
1468 if ((scmd->cmnd[2] & 0x3F) != 0x3F &&
1469 (scmd->cmnd[2] & 0x3F) != 0x08) {
1471 scsi_build_sense_buffer(0, scmd->sense_buffer,
1473 scmd->result = (DRIVER_SENSE << 24) |
1476 myrb_mode_sense(cb, scmd, ldev_info);
1477 scmd->result = (DID_OK << 16);
1479 scmd->scsi_done(scmd);
1482 if ((scmd->cmnd[1] & 1) ||
1483 (scmd->cmnd[8] & 1)) {
1485 scsi_build_sense_buffer(0, scmd->sense_buffer,
1487 scmd->result = (DRIVER_SENSE << 24) |
1489 scmd->scsi_done(scmd);
1492 lba = get_unaligned_be32(&scmd->cmnd[2]);
1495 scsi_build_sense_buffer(0, scmd->sense_buffer,
1497 scmd->result = (DRIVER_SENSE << 24) |
1499 scmd->scsi_done(scmd);
1502 myrb_read_capacity(cb, scmd, ldev_info);
1503 scmd->scsi_done(scmd);
1506 myrb_request_sense(cb, scmd);
1507 scmd->result = (DID_OK << 16);
1510 if (scmd->cmnd[1] != 0x04) {
1512 scsi_build_sense_buffer(0, scmd->sense_buffer,
1514 scmd->result = (DRIVER_SENSE << 24) |
1518 scmd->result = (DID_OK << 16);
1520 scmd->scsi_done(scmd);
1525 scsi_build_sense_buffer(0, scmd->sense_buffer,
1527 scmd->result = (DRIVER_SENSE << 24) |
1529 scmd->scsi_done(scmd);
1534 lba = (((scmd->cmnd[1] & 0x1F) << 16) |
1535 (scmd->cmnd[2] << 8) |
1536 scmd->cmnd[3]);
1537 block_cnt = scmd->cmnd[4];
1542 scsi_build_sense_buffer(0, scmd->sense_buffer,
1544 scmd->result = (DRIVER_SENSE << 24) |
1546 scmd->scsi_done(scmd);
1553 lba = get_unaligned_be32(&scmd->cmnd[2]);
1554 block_cnt = get_unaligned_be16(&scmd->cmnd[7]);
1559 scsi_build_sense_buffer(0, scmd->sense_buffer,
1561 scmd->result = (DRIVER_SENSE << 24) |
1563 scmd->scsi_done(scmd);
1570 lba = get_unaligned_be32(&scmd->cmnd[2]);
1571 block_cnt = get_unaligned_be32(&scmd->cmnd[6]);
1575 scsi_build_sense_buffer(0, scmd->sense_buffer,
1577 scmd->result = (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION;
1578 scmd->scsi_done(scmd);
1583 mbox->type5.id = scmd->request->tag + 3;
1584 if (scmd->sc_data_direction == DMA_NONE)
1586 nsge = scsi_dma_map(scmd);
1588 sgl = scsi_sglist(scmd);
1589 if (scmd->sc_data_direction == DMA_FROM_DEVICE)
1610 if (scmd->sc_data_direction == DMA_FROM_DEVICE)
1621 scsi_for_each_sg(scmd, sgl, nsge, i) {
1636 struct scsi_cmnd *scmd)
1638 struct scsi_device *sdev = scmd->device;
1641 scmd->result = (DID_BAD_TARGET << 16);
1642 scmd->scsi_done(scmd);
1646 return myrb_ldev_queuecommand(shost, scmd);
1648 return myrb_pthru_queuecommand(shost, scmd);
2327 struct scsi_cmnd *scmd)
2334 scsi_dma_unmap(scmd);
2337 memcpy(scmd->sense_buffer, &cmd_blk->dcdb->sense, 64);
2351 scmd->result = (DID_OK << 16) | status;
2354 dev_dbg(&scmd->device->sdev_gendev,
2356 if (scmd->sc_data_direction == DMA_FROM_DEVICE)
2358 scsi_build_sense_buffer(0, scmd->sense_buffer,
2362 scsi_build_sense_buffer(0, scmd->sense_buffer,
2364 scmd->result = (DID_OK << 16) | SAM_STAT_CHECK_CONDITION;
2367 scmd_printk(KERN_ERR, scmd, "Irrecoverable Data Error\n");
2368 if (scmd->sc_data_direction == DMA_FROM_DEVICE)
2370 scsi_build_sense_buffer(0, scmd->sense_buffer,
2374 scsi_build_sense_buffer(0, scmd->sense_buffer,
2376 scmd->result = (DID_OK << 16) | SAM_STAT_CHECK_CONDITION;
2379 dev_dbg(&scmd->device->sdev_gendev,
2381 scmd->result = (DID_BAD_TARGET << 16);
2384 dev_dbg(&scmd->device->sdev_gendev,
2387 scsi_build_sense_buffer(0, scmd->sense_buffer,
2391 dev_dbg(&scmd->device->sdev_gendev, "Device nonresponsive\n");
2392 scmd->result = (DID_BAD_TARGET << 16);
2395 scmd_printk(KERN_ERR, scmd,
2397 scmd->result = (DID_ERROR << 16);
2400 scmd->scsi_done(scmd);
2781 struct scsi_cmnd *scmd = NULL;
2789 scmd = scsi_host_find_tag(cb->host, id - 3);
2790 if (scmd)
2791 cmd_blk = scsi_cmd_priv(scmd);
2807 myrb_handle_scsi(cb, cmd_blk, scmd);
3059 struct scsi_cmnd *scmd = NULL;
3067 scmd = scsi_host_find_tag(cb->host, id - 3);
3068 if (scmd)
3069 cmd_blk = scsi_cmd_priv(scmd);
3084 myrb_handle_scsi(cb, cmd_blk, scmd);
3264 struct scsi_cmnd *scmd = NULL;
3272 scmd = scsi_host_find_tag(cb->host, id - 3);
3273 if (scmd)
3274 cmd_blk = scsi_cmd_priv(scmd);
3288 myrb_handle_scsi(cb, cmd_blk, scmd);
3430 struct scsi_cmnd *scmd = NULL;
3441 scmd = scsi_host_find_tag(cb->host, id - 3);
3442 if (scmd)
3443 cmd_blk = scsi_cmd_priv(scmd);
3486 myrb_handle_scsi(cb, cmd_blk, scmd);