diff options
author | Tejun Heo <tj@kernel.org> | 2008-07-30 18:52:40 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-31 01:47:05 -0400 |
commit | 2486fa561a3192bbbec39c7feef87a1e07bd6342 (patch) | |
tree | 4241264273c63714e4c2021e7de69aee8bb2b20c /drivers/ata/libata-scsi.c | |
parent | bfce5e0179ad059035df28558724ff60af708e09 (diff) |
libata: update atapi disable handling
Global and per-LLD ATAPI disable checks were done in the command issue
path probably because it was left out during EH conversion. On
affected machines, this can cause lots of warning messages. Move them
to where they belong - the probing path.
Reported by Chunbo Luo.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Chunbo Luo <chunbo.luo@windriver.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/libata-scsi.c')
-rw-r--r-- | drivers/ata/libata-scsi.c | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index f3b4b15a8dc4..b9d3ba423cb2 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -2551,36 +2551,6 @@ static struct ata_device *__ata_scsi_find_dev(struct ata_port *ap, | |||
2551 | } | 2551 | } |
2552 | 2552 | ||
2553 | /** | 2553 | /** |
2554 | * ata_scsi_dev_enabled - determine if device is enabled | ||
2555 | * @dev: ATA device | ||
2556 | * | ||
2557 | * Determine if commands should be sent to the specified device. | ||
2558 | * | ||
2559 | * LOCKING: | ||
2560 | * spin_lock_irqsave(host lock) | ||
2561 | * | ||
2562 | * RETURNS: | ||
2563 | * 0 if commands are not allowed / 1 if commands are allowed | ||
2564 | */ | ||
2565 | |||
2566 | static int ata_scsi_dev_enabled(struct ata_device *dev) | ||
2567 | { | ||
2568 | if (unlikely(!ata_dev_enabled(dev))) | ||
2569 | return 0; | ||
2570 | |||
2571 | if (!atapi_enabled || (dev->link->ap->flags & ATA_FLAG_NO_ATAPI)) { | ||
2572 | if (unlikely(dev->class == ATA_DEV_ATAPI)) { | ||
2573 | ata_dev_printk(dev, KERN_WARNING, | ||
2574 | "WARNING: ATAPI is %s, device ignored.\n", | ||
2575 | atapi_enabled ? "not supported with this driver" : "disabled"); | ||
2576 | return 0; | ||
2577 | } | ||
2578 | } | ||
2579 | |||
2580 | return 1; | ||
2581 | } | ||
2582 | |||
2583 | /** | ||
2584 | * ata_scsi_find_dev - lookup ata_device from scsi_cmnd | 2554 | * ata_scsi_find_dev - lookup ata_device from scsi_cmnd |
2585 | * @ap: ATA port to which the device is attached | 2555 | * @ap: ATA port to which the device is attached |
2586 | * @scsidev: SCSI device from which we derive the ATA device | 2556 | * @scsidev: SCSI device from which we derive the ATA device |
@@ -2601,7 +2571,7 @@ ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev) | |||
2601 | { | 2571 | { |
2602 | struct ata_device *dev = __ata_scsi_find_dev(ap, scsidev); | 2572 | struct ata_device *dev = __ata_scsi_find_dev(ap, scsidev); |
2603 | 2573 | ||
2604 | if (unlikely(!dev || !ata_scsi_dev_enabled(dev))) | 2574 | if (unlikely(!dev || !ata_dev_enabled(dev))) |
2605 | return NULL; | 2575 | return NULL; |
2606 | 2576 | ||
2607 | return dev; | 2577 | return dev; |
@@ -3622,7 +3592,7 @@ int ata_sas_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *), | |||
3622 | 3592 | ||
3623 | ata_scsi_dump_cdb(ap, cmd); | 3593 | ata_scsi_dump_cdb(ap, cmd); |
3624 | 3594 | ||
3625 | if (likely(ata_scsi_dev_enabled(ap->link.device))) | 3595 | if (likely(ata_dev_enabled(ap->link.device))) |
3626 | rc = __ata_scsi_queuecmd(cmd, done, ap->link.device); | 3596 | rc = __ata_scsi_queuecmd(cmd, done, ap->link.device); |
3627 | else { | 3597 | else { |
3628 | cmd->result = (DID_BAD_TARGET << 16); | 3598 | cmd->result = (DID_BAD_TARGET << 16); |