> + struct pci_dev *bridge = pdev->bus->self; > + /* mobility split bridges don't report enabled ports correctly */ > + int port_ok = !(bridge && bridge->vendor == > + PCI_VENDOR_ID_MOBILITY_ELECTRONICS); > The logic seems wrong even by inspection port_ok will be 1 if it isn't a M/E bridge. > + /* check for enabled ports */ > + pci_read_config_byte(pdev, CNTRL, ®); > + if (port_ok) > + dev_printk(KERN_NOTICE, &pdev->dev, "Mobility Bridge detected, ignoring CNTRL port enable/disable\n"); If its *not* an ME bridge then print the warning ???? Otherwise looks right -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html