Loading drivers/scsi/isci/host.c +2 −1 Original line number Diff line number Diff line Loading @@ -78,8 +78,9 @@ irqreturn_t isci_intx_isr(int vec, void *data) struct pci_dev *pdev = data; struct isci_host *ihost; irqreturn_t ret = IRQ_NONE; int i; for_each_isci_host(ihost, pdev) { for_each_isci_host(i, ihost, pdev) { struct scic_sds_controller *scic = ihost->core_controller; if (scic_sds_controller_isr(scic)) { Loading drivers/scsi/isci/host.h +5 −5 Original line number Diff line number Diff line Loading @@ -117,7 +117,6 @@ struct isci_host { struct list_head requests_to_complete; struct list_head requests_to_abort; spinlock_t scic_lock; struct isci_host *next; }; Loading @@ -131,7 +130,7 @@ struct isci_host { struct isci_pci_info { struct msix_entry msix_entries[SCI_MAX_MSIX_INT]; int core_lib_array_index; struct isci_host *hosts; struct isci_host *hosts[SCI_MAX_CONTROLLERS]; }; static inline struct isci_pci_info *to_pci_info(struct pci_dev *pdev) Loading @@ -139,9 +138,10 @@ static inline struct isci_pci_info *to_pci_info(struct pci_dev *pdev) return pci_get_drvdata(pdev); } #define for_each_isci_host(isci_host, pdev) \ for (isci_host = to_pci_info(pdev)->hosts;\ isci_host; isci_host = isci_host->next) #define for_each_isci_host(id, ihost, pdev) \ for (id = 0, ihost = to_pci_info(pdev)->hosts[id]; \ id < ARRAY_SIZE(to_pci_info(pdev)->hosts) && ihost; \ ihost = to_pci_info(pdev)->hosts[++id]) static inline enum isci_status isci_host_get_state( Loading drivers/scsi/isci/init.c +7 −18 Original line number Diff line number Diff line Loading @@ -285,16 +285,6 @@ static int __devinit isci_pci_init(struct pci_dev *pdev) return 0; } static struct isci_host *isci_host_by_id(struct pci_dev *pdev, int id) { struct isci_host *h; for_each_isci_host(h, pdev) if (h->id == id) return h; return NULL; } static int num_controllers(struct pci_dev *pdev) { /* bar size alone can tell us if we are running with a dual controller Loading Loading @@ -332,7 +322,7 @@ static int isci_setup_interrupts(struct pci_dev *pdev) for (i = 0; i < num_msix; i++) { int id = i / SCI_NUM_MSI_X_INT; struct msix_entry *msix = &pci_info->msix_entries[i]; struct isci_host *isci_host = isci_host_by_id(pdev, id); struct isci_host *isci_host = pci_info->hosts[id]; irq_handler_t isr; /* odd numbered vectors are error interrupts */ Loading @@ -351,7 +341,7 @@ static int isci_setup_interrupts(struct pci_dev *pdev) dev_info(&pdev->dev, "msix setup failed falling back to intx\n"); while (i--) { id = i / SCI_NUM_MSI_X_INT; isci_host = isci_host_by_id(pdev, id); isci_host = pci_info->hosts[id]; msix = &pci_info->msix_entries[i]; devm_free_irq(&pdev->dev, msix->vector, isci_host); } Loading Loading @@ -634,22 +624,20 @@ static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_devic err = -ENOMEM; goto err_host_alloc; } h->next = pci_info->hosts; pci_info->hosts = h; pci_info->hosts[i] = h; } err = isci_setup_interrupts(pdev); if (err) goto err_host_alloc; for_each_isci_host(isci_host, pdev) for_each_isci_host(i, isci_host, pdev) scsi_scan_host(isci_host->shost); return 0; err_host_alloc: for_each_isci_host(isci_host, pdev) for_each_isci_host(i, isci_host, pdev) isci_unregister_sas_ha(isci_host); return err; } Loading @@ -657,8 +645,9 @@ static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_devic static void __devexit isci_pci_remove(struct pci_dev *pdev) { struct isci_host *isci_host; int i; for_each_isci_host(isci_host, pdev) { for_each_isci_host(i, isci_host, pdev) { isci_unregister_sas_ha(isci_host); isci_host_deinit(isci_host); scic_controller_disable_interrupts(isci_host->core_controller); Loading Loading
drivers/scsi/isci/host.c +2 −1 Original line number Diff line number Diff line Loading @@ -78,8 +78,9 @@ irqreturn_t isci_intx_isr(int vec, void *data) struct pci_dev *pdev = data; struct isci_host *ihost; irqreturn_t ret = IRQ_NONE; int i; for_each_isci_host(ihost, pdev) { for_each_isci_host(i, ihost, pdev) { struct scic_sds_controller *scic = ihost->core_controller; if (scic_sds_controller_isr(scic)) { Loading
drivers/scsi/isci/host.h +5 −5 Original line number Diff line number Diff line Loading @@ -117,7 +117,6 @@ struct isci_host { struct list_head requests_to_complete; struct list_head requests_to_abort; spinlock_t scic_lock; struct isci_host *next; }; Loading @@ -131,7 +130,7 @@ struct isci_host { struct isci_pci_info { struct msix_entry msix_entries[SCI_MAX_MSIX_INT]; int core_lib_array_index; struct isci_host *hosts; struct isci_host *hosts[SCI_MAX_CONTROLLERS]; }; static inline struct isci_pci_info *to_pci_info(struct pci_dev *pdev) Loading @@ -139,9 +138,10 @@ static inline struct isci_pci_info *to_pci_info(struct pci_dev *pdev) return pci_get_drvdata(pdev); } #define for_each_isci_host(isci_host, pdev) \ for (isci_host = to_pci_info(pdev)->hosts;\ isci_host; isci_host = isci_host->next) #define for_each_isci_host(id, ihost, pdev) \ for (id = 0, ihost = to_pci_info(pdev)->hosts[id]; \ id < ARRAY_SIZE(to_pci_info(pdev)->hosts) && ihost; \ ihost = to_pci_info(pdev)->hosts[++id]) static inline enum isci_status isci_host_get_state( Loading
drivers/scsi/isci/init.c +7 −18 Original line number Diff line number Diff line Loading @@ -285,16 +285,6 @@ static int __devinit isci_pci_init(struct pci_dev *pdev) return 0; } static struct isci_host *isci_host_by_id(struct pci_dev *pdev, int id) { struct isci_host *h; for_each_isci_host(h, pdev) if (h->id == id) return h; return NULL; } static int num_controllers(struct pci_dev *pdev) { /* bar size alone can tell us if we are running with a dual controller Loading Loading @@ -332,7 +322,7 @@ static int isci_setup_interrupts(struct pci_dev *pdev) for (i = 0; i < num_msix; i++) { int id = i / SCI_NUM_MSI_X_INT; struct msix_entry *msix = &pci_info->msix_entries[i]; struct isci_host *isci_host = isci_host_by_id(pdev, id); struct isci_host *isci_host = pci_info->hosts[id]; irq_handler_t isr; /* odd numbered vectors are error interrupts */ Loading @@ -351,7 +341,7 @@ static int isci_setup_interrupts(struct pci_dev *pdev) dev_info(&pdev->dev, "msix setup failed falling back to intx\n"); while (i--) { id = i / SCI_NUM_MSI_X_INT; isci_host = isci_host_by_id(pdev, id); isci_host = pci_info->hosts[id]; msix = &pci_info->msix_entries[i]; devm_free_irq(&pdev->dev, msix->vector, isci_host); } Loading Loading @@ -634,22 +624,20 @@ static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_devic err = -ENOMEM; goto err_host_alloc; } h->next = pci_info->hosts; pci_info->hosts = h; pci_info->hosts[i] = h; } err = isci_setup_interrupts(pdev); if (err) goto err_host_alloc; for_each_isci_host(isci_host, pdev) for_each_isci_host(i, isci_host, pdev) scsi_scan_host(isci_host->shost); return 0; err_host_alloc: for_each_isci_host(isci_host, pdev) for_each_isci_host(i, isci_host, pdev) isci_unregister_sas_ha(isci_host); return err; } Loading @@ -657,8 +645,9 @@ static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_devic static void __devexit isci_pci_remove(struct pci_dev *pdev) { struct isci_host *isci_host; int i; for_each_isci_host(isci_host, pdev) { for_each_isci_host(i, isci_host, pdev) { isci_unregister_sas_ha(isci_host); isci_host_deinit(isci_host); scic_controller_disable_interrupts(isci_host->core_controller); Loading