@ -2373,6 +2373,36 @@ static struct ata_device * __ata_scsi_find_dev(struct ata_port *ap,
return ata_find_dev ( ap , scsidev - > id ) ;
}
/**
* ata_scsi_dev_enabled - determine if device is enabled
* @ dev : ATA device
*
* Determine if commands should be sent to the specified device .
*
* LOCKING :
* spin_lock_irqsave ( host_set lock )
*
* RETURNS :
* 0 if commands are not allowed / 1 if commands are allowed
*/
static int ata_scsi_dev_enabled ( struct ata_device * dev )
{
if ( unlikely ( ! ata_dev_enabled ( dev ) ) )
return 0 ;
if ( ! atapi_enabled | | ( dev - > ap - > flags & ATA_FLAG_NO_ATAPI ) ) {
if ( unlikely ( dev - > class = = ATA_DEV_ATAPI ) ) {
ata_dev_printk ( dev , KERN_WARNING ,
" WARNING: ATAPI is %s, device ignored. \n " ,
atapi_enabled ? " not supported with this driver " : " disabled " ) ;
return 0 ;
}
}
return 1 ;
}
/**
* ata_scsi_find_dev - lookup ata_device from scsi_cmnd
* @ ap : ATA port to which the device is attached
@ -2394,18 +2424,9 @@ ata_scsi_find_dev(struct ata_port *ap, const struct scsi_device *scsidev)
{
struct ata_device * dev = __ata_scsi_find_dev ( ap , scsidev ) ;
if ( unlikely ( ! dev | | ! ata_dev_enabled ( dev ) ) )
if ( unlikely ( ! dev | | ! ata_scsi_ dev_enabled ( dev ) ) )
return NULL ;
if ( ! atapi_enabled | | ( ap - > flags & ATA_FLAG_NO_ATAPI ) ) {
if ( unlikely ( dev - > class = = ATA_DEV_ATAPI ) ) {
ata_dev_printk ( dev , KERN_WARNING ,
" WARNING: ATAPI is %s, device ignored. \n " ,
atapi_enabled ? " not supported with this driver " : " disabled " ) ;
return NULL ;
}
}
return dev ;
}