Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Dec 2008 21:13:46 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r186296 - head/sys/dev/ata/chipsets
Message-ID:  <200812182113.mBILDkwt052441@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Thu Dec 18 21:13:46 2008
New Revision: 186296
URL: http://svn.freebsd.org/changeset/base/186296

Log:
  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@

Modified:
  head/sys/dev/ata/chipsets/ata-ahci.c
  head/sys/dev/ata/chipsets/ata-sis.c

Modified: head/sys/dev/ata/chipsets/ata-ahci.c
==============================================================================
--- head/sys/dev/ata/chipsets/ata-ahci.c	Thu Dec 18 21:04:50 2008	(r186295)
+++ head/sys/dev/ata/chipsets/ata-ahci.c	Thu Dec 18 21:13:46 2008	(r186296)
@@ -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)

Modified: head/sys/dev/ata/chipsets/ata-sis.c
==============================================================================
--- head/sys/dev/ata/chipsets/ata-sis.c	Thu Dec 18 21:04:50 2008	(r186295)
+++ head/sys/dev/ata/chipsets/ata-sis.c	Thu Dec 18 21:13:46 2008	(r186296)
@@ -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;
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812182113.mBILDkwt052441>