Loading drivers/scsi/qla4xxx/ql4_def.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -909,7 +909,8 @@ static inline int is_qla80XX(struct scsi_qla_host *ha) static inline int is_aer_supported(struct scsi_qla_host *ha) static inline int is_aer_supported(struct scsi_qla_host *ha) { { return ((ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8022) || return ((ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8022) || (ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8324)); (ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8324) || (ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8042)); } } static inline int adapter_up(struct scsi_qla_host *ha) static inline int adapter_up(struct scsi_qla_host *ha) Loading drivers/scsi/qla4xxx/ql4_os.c +27 −19 Original line number Original line Diff line number Diff line Loading @@ -9579,29 +9579,37 @@ static uint32_t qla4_8xxx_error_recovery(struct scsi_qla_host *ha) } } fn = PCI_FUNC(ha->pdev->devfn); fn = PCI_FUNC(ha->pdev->devfn); if (is_qla8022(ha)) { while (fn > 0) { while (fn > 0) { fn--; fn--; ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Finding PCI device at " ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Finding PCI device at func %x\n", "func %x\n", ha->host_no, __func__, fn); ha->host_no, __func__, fn); /* Get the pci device given the domain, bus, /* Get the pci device given the domain, bus, * slot/function number */ * slot/function number */ other_pdev = other_pdev = pci_get_domain_bus_and_slot( pci_get_domain_bus_and_slot(pci_domain_nr(ha->pdev->bus), pci_domain_nr(ha->pdev->bus), ha->pdev->bus->number, PCI_DEVFN(PCI_SLOT(ha->pdev->devfn), ha->pdev->bus->number, PCI_DEVFN(PCI_SLOT(ha->pdev->devfn), fn)); fn)); if (!other_pdev) if (!other_pdev) continue; continue; if (atomic_read(&other_pdev->enable_cnt)) { if (atomic_read(&other_pdev->enable_cnt)) { ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Found PCI " ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Found PCI func in enabled state%x\n", "func in enabled state%x\n", ha->host_no, ha->host_no, __func__, fn); __func__, fn); pci_dev_put(other_pdev); pci_dev_put(other_pdev); break; break; } } pci_dev_put(other_pdev); pci_dev_put(other_pdev); } } } else { /* this case is meant for ISP83xx/ISP84xx only */ if (qla4_83xx_can_perform_reset(ha)) { /* reset fn as iSCSI is going to perform the reset */ fn = 0; } } /* The first function on the card, the reset owner will /* The first function on the card, the reset owner will * start & initialize the firmware. The other functions * start & initialize the firmware. The other functions Loading Loading
drivers/scsi/qla4xxx/ql4_def.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -909,7 +909,8 @@ static inline int is_qla80XX(struct scsi_qla_host *ha) static inline int is_aer_supported(struct scsi_qla_host *ha) static inline int is_aer_supported(struct scsi_qla_host *ha) { { return ((ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8022) || return ((ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8022) || (ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8324)); (ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8324) || (ha->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8042)); } } static inline int adapter_up(struct scsi_qla_host *ha) static inline int adapter_up(struct scsi_qla_host *ha) Loading
drivers/scsi/qla4xxx/ql4_os.c +27 −19 Original line number Original line Diff line number Diff line Loading @@ -9579,29 +9579,37 @@ static uint32_t qla4_8xxx_error_recovery(struct scsi_qla_host *ha) } } fn = PCI_FUNC(ha->pdev->devfn); fn = PCI_FUNC(ha->pdev->devfn); if (is_qla8022(ha)) { while (fn > 0) { while (fn > 0) { fn--; fn--; ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Finding PCI device at " ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Finding PCI device at func %x\n", "func %x\n", ha->host_no, __func__, fn); ha->host_no, __func__, fn); /* Get the pci device given the domain, bus, /* Get the pci device given the domain, bus, * slot/function number */ * slot/function number */ other_pdev = other_pdev = pci_get_domain_bus_and_slot( pci_get_domain_bus_and_slot(pci_domain_nr(ha->pdev->bus), pci_domain_nr(ha->pdev->bus), ha->pdev->bus->number, PCI_DEVFN(PCI_SLOT(ha->pdev->devfn), ha->pdev->bus->number, PCI_DEVFN(PCI_SLOT(ha->pdev->devfn), fn)); fn)); if (!other_pdev) if (!other_pdev) continue; continue; if (atomic_read(&other_pdev->enable_cnt)) { if (atomic_read(&other_pdev->enable_cnt)) { ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Found PCI " ql4_printk(KERN_INFO, ha, "scsi%ld: %s: Found PCI func in enabled state%x\n", "func in enabled state%x\n", ha->host_no, ha->host_no, __func__, fn); __func__, fn); pci_dev_put(other_pdev); pci_dev_put(other_pdev); break; break; } } pci_dev_put(other_pdev); pci_dev_put(other_pdev); } } } else { /* this case is meant for ISP83xx/ISP84xx only */ if (qla4_83xx_can_perform_reset(ha)) { /* reset fn as iSCSI is going to perform the reset */ fn = 0; } } /* The first function on the card, the reset owner will /* The first function on the card, the reset owner will * start & initialize the firmware. The other functions * start & initialize the firmware. The other functions Loading