Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: pata_sis: Fix oops on boot
This commit is contained in:
Коммит
2b858bd02f
|
@ -878,6 +878,7 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
struct ata_port_info *port;
|
||||
struct pci_dev *host = NULL;
|
||||
struct sis_chipset *chipset = NULL;
|
||||
struct sis_chipset *sets;
|
||||
|
||||
static struct sis_chipset sis_chipsets[] = {
|
||||
|
||||
|
@ -932,10 +933,11 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
|
||||
/* We have to find the bridge first */
|
||||
|
||||
for (chipset = &sis_chipsets[0]; chipset->device; chipset++) {
|
||||
host = pci_get_device(PCI_VENDOR_ID_SI, chipset->device, NULL);
|
||||
for (sets = &sis_chipsets[0]; sets->device; sets++) {
|
||||
host = pci_get_device(PCI_VENDOR_ID_SI, sets->device, NULL);
|
||||
if (host != NULL) {
|
||||
if (chipset->device == 0x630) { /* SIS630 */
|
||||
chipset = sets; /* Match found */
|
||||
if (sets->device == 0x630) { /* SIS630 */
|
||||
u8 host_rev;
|
||||
pci_read_config_byte(host, PCI_REVISION_ID, &host_rev);
|
||||
if (host_rev >= 0x30) /* 630 ET */
|
||||
|
@ -946,7 +948,7 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
}
|
||||
|
||||
/* Look for concealed bridges */
|
||||
if (host == NULL) {
|
||||
if (chipset == NULL) {
|
||||
/* Second check */
|
||||
u32 idemisc;
|
||||
u16 trueid;
|
||||
|
|
Загрузка…
Ссылка в новой задаче