From f6550fad4d38d75a446cfe48d11f9ac433020cf1 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Thu, 18 Dec 2008 21:13:46 +0000 Subject: [PATCH] Before modularization commit, atapci driver was attaching only to devices of storage class. This check was lost. It is not important for the most cases, but as it was reported on current@, it does important for sis driver and surely inportant for AHCI driver. So restore it there. Submitted by: Toshikazu ICHINOSEKI, Andrey V. Elsukov Discussed on: current@ --- sys/dev/ata/chipsets/ata-ahci.c | 5 +++-- sys/dev/ata/chipsets/ata-sis.c | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/dev/ata/chipsets/ata-ahci.c b/sys/dev/ata/chipsets/ata-ahci.c index 2b87c96fecf3..402846684c11 100644 --- a/sys/dev/ata/chipsets/ata-ahci.c +++ b/sys/dev/ata/chipsets/ata-ahci.c @@ -73,8 +73,9 @@ ata_ahci_probe(device_t dev) char buffer[64]; /* is this a possible AHCI candidate ? */ - if (pci_get_subclass(dev) != PCIS_STORAGE_SATA) - return ENXIO; + if (pci_get_class(dev) != PCIC_STORAGE || + pci_get_subclass(dev) != PCIS_STORAGE_SATA) + return (ENXIO); /* is this PCI device flagged as an AHCI compliant chip ? */ if (pci_read_config(dev, PCIR_PROGIF, 1) != PCIP_STORAGE_SATA_AHCI_1_0) diff --git a/sys/dev/ata/chipsets/ata-sis.c b/sys/dev/ata/chipsets/ata-sis.c index e94bef550e8a..56b194d0a9fc 100644 --- a/sys/dev/ata/chipsets/ata-sis.c +++ b/sys/dev/ata/chipsets/ata-sis.c @@ -105,6 +105,9 @@ ata_sis_probe(device_t dev) char buffer[64]; int found = 0; + if (pci_get_class(dev) != PCIC_STORAGE) + return (ENXIO); + if (pci_get_vendor(dev) != ATA_SIS_ID) return ENXIO;