Skip to content

Commit

Permalink
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/ker…
Browse files Browse the repository at this point in the history
…nel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  pata_sis: Fix oops on boot
  • Loading branch information
Linus Torvalds committed Apr 20, 2007
2 parents 93cd791 + f3769e9 commit 2b858bd
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions drivers/ata/pata_sis.c
Original file line number Diff line number Diff line change
Expand Up @@ -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[] = {

Expand Down Expand Up @@ -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 */
Expand All @@ -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;
Expand Down

0 comments on commit 2b858bd

Please sign in to comment.