Date: Thu, 18 Dec 2008 22:45:25 +0100 From: Niclas Zeising <niclas.zeising@gmail.com> To: Alexander Motin <mav@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r186296 - head/sys/dev/ata/chipsets Message-ID: <494AC475.20808@gmail.com> In-Reply-To: <200812182113.mBILDkwt052441@svn.freebsd.org> References: <200812182113.mBILDkwt052441@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Alexander Motin wrote: > 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; > With this change, am I able to boot from a harddrive located on a SiS-controller again? Or is that more likely a different issue? I have't investigated my issue properly due to lack of time, so I don't know exactly what's wrong, only that it can't find the hard drive properly. Regards! //Niclas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?494AC475.20808>