2315
2315
// Was an abort issued for this command earlier
2316
2316
if (scb->state & SCB_ABORT) {
2317
2317
con_log(CL_ANN, (KERN_NOTICE
2318
"megaraid: aborted cmd %lx[%x] completed\n",
2319
scp->serial_number, scb->sno));
2318
"megaraid: aborted cmd [%x] completed\n",
2472
2472
raid_dev = ADAP2RAIDDEV(adapter);
2474
2474
con_log(CL_ANN, (KERN_WARNING
2475
"megaraid: aborting-%ld cmd=%x <c=%d t=%d l=%d>\n",
2476
scp->serial_number, scp->cmnd[0], SCP2CHANNEL(scp),
2475
"megaraid: aborting cmd=%x <c=%d t=%d l=%d>\n",
2476
scp->cmnd[0], SCP2CHANNEL(scp),
2477
2477
SCP2TARGET(scp), SCP2LUN(scp)));
2479
2479
// If FW has stopped responding, simply return failure
2496
2496
list_del_init(&scb->list); // from completed list
2498
2498
con_log(CL_ANN, (KERN_WARNING
2499
"megaraid: %ld:%d[%d:%d], abort from completed list\n",
2500
scp->serial_number, scb->sno,
2501
scb->dev_channel, scb->dev_target));
2499
"megaraid: %d[%d:%d], abort from completed list\n",
2500
scb->sno, scb->dev_channel, scb->dev_target));
2503
2502
scp->result = (DID_ABORT << 16);
2504
2503
scp->scsi_done(scp);
2527
2526
ASSERT(!(scb->state & SCB_ISSUED));
2529
2528
con_log(CL_ANN, (KERN_WARNING
2530
"megaraid abort: %ld[%d:%d], driver owner\n",
2531
scp->serial_number, scb->dev_channel,
2529
"megaraid abort: [%d:%d], driver owner\n",
2530
scb->dev_channel, scb->dev_target));
2534
2532
scp->result = (DID_ABORT << 16);
2535
2533
scp->scsi_done(scp);
2561
2559
if (!(scb->state & SCB_ISSUED)) {
2562
2560
con_log(CL_ANN, (KERN_WARNING
2563
"megaraid abort: %ld%d[%d:%d], invalid state\n",
2564
scp->serial_number, scb->sno, scb->dev_channel,
2561
"megaraid abort: %d[%d:%d], invalid state\n",
2562
scb->sno, scb->dev_channel, scb->dev_target));
2569
2566
con_log(CL_ANN, (KERN_WARNING
2570
"megaraid abort: %ld:%d[%d:%d], fw owner\n",
2571
scp->serial_number, scb->sno, scb->dev_channel,
2567
"megaraid abort: %d[%d:%d], fw owner\n",
2568
scb->sno, scb->dev_channel, scb->dev_target));
2576
2572
spin_unlock_irq(&adapter->lock);
2579
con_log(CL_ANN, (KERN_WARNING
2580
"megaraid abort: scsi cmd:%ld, do now own\n",
2581
scp->serial_number));
2575
con_log(CL_ANN, (KERN_WARNING "megaraid abort: do now own\n"));
2583
2577
// FIXME: Should there be a callback for this command?
2584
2578
return SUCCESS;
2650
2644
if (scb->scp == scp) { // Found command
2651
2645
con_log(CL_ANN, (KERN_WARNING
2652
"megaraid: %ld:%d[%d:%d], reset from pending list\n",
2653
scp->serial_number, scb->sno,
2654
scb->dev_channel, scb->dev_target));
2646
"megaraid: %d[%d:%d], reset from pending list\n",
2647
scb->sno, scb->dev_channel, scb->dev_target));
2656
2649
con_log(CL_ANN, (KERN_WARNING
2657
2650
"megaraid: IO packet with %d[%d:%d] being reset\n",
3452
3445
* megaraid_mbox_setup_device_map - manage device ids
3453
3446
* @adapter : Driver's soft state
3455
* Manange the device ids to have an appropraite mapping between the kernel
3448
* Manange the device ids to have an appropriate mapping between the kernel
3456
3449
* scsi addresses and megaraid scsi and logical drive addresses. We export
3457
3450
* scsi devices on their actual addresses, whereas the logical drives are
3458
3451
* exported on a virtual scsi channel.
3973
3966
* NOTE: The commands issuance functionality is not generalized and
3974
3967
* implemented in context of "get ld map" command only. If required, the
3975
3968
* command issuance logical can be trivially pulled out and implemented as a
3976
* standalone libary. For now, this should suffice since there is no other
3969
* standalone library. For now, this should suffice since there is no other
3977
3970
* user of this interface.
3979
3972
* Return 0 on success.