|
@@ -3030,10 +3030,12 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc)
|
|
|
static struct ata_device *ata_find_dev(struct ata_port *ap, int devno)
|
|
|
{
|
|
|
if (!sata_pmp_attached(ap)) {
|
|
|
- if (likely(devno < ata_link_max_devices(&ap->link)))
|
|
|
+ if (likely(devno >= 0 &&
|
|
|
+ devno < ata_link_max_devices(&ap->link)))
|
|
|
return &ap->link.device[devno];
|
|
|
} else {
|
|
|
- if (likely(devno < ap->nr_pmp_links))
|
|
|
+ if (likely(devno >= 0 &&
|
|
|
+ devno < ap->nr_pmp_links))
|
|
|
return &ap->pmp_link[devno].device[0];
|
|
|
}
|
|
|
|