summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2018-03-19 03:37:48 -0400
committerMartin K. Petersen <martin.petersen@oracle.com>2018-03-19 22:54:47 -0400
commit5785bfadcdb596df7e103636c81e5ae6dd0caa5e (patch)
tree9b5c10568e6ff7dcfed70f8184db5da6a43a9514
parentfa1467fb0076143ea678ae1837b5b3bb27153329 (diff)
scsi: esas2r: remove initialization / cleanup dead wood
esas2r has been converted to hotplug style initialization long ago, but kept various remant of the old-style scsi_module.c initialization around. Remove those. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/esas2r/esas2r.h2
-rw-r--r--drivers/scsi/esas2r/esas2r_init.c21
-rw-r--r--drivers/scsi/esas2r/esas2r_main.c72
3 files changed, 4 insertions, 91 deletions
diff --git a/drivers/scsi/esas2r/esas2r.h b/drivers/scsi/esas2r/esas2r.h
index 1da6407ee142..858c3b33db78 100644
--- a/drivers/scsi/esas2r/esas2r.h
+++ b/drivers/scsi/esas2r/esas2r.h
@@ -962,7 +962,6 @@ struct esas2r_adapter {
962 * Function Declarations 962 * Function Declarations
963 * SCSI functions 963 * SCSI functions
964 */ 964 */
965int esas2r_release(struct Scsi_Host *);
966const char *esas2r_info(struct Scsi_Host *); 965const char *esas2r_info(struct Scsi_Host *);
967int esas2r_write_params(struct esas2r_adapter *a, struct esas2r_request *rq, 966int esas2r_write_params(struct esas2r_adapter *a, struct esas2r_request *rq,
968 struct esas2r_sas_nvram *data); 967 struct esas2r_sas_nvram *data);
@@ -984,7 +983,6 @@ int esas2r_target_reset(struct scsi_cmnd *cmd);
984/* Internal functions */ 983/* Internal functions */
985int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid, 984int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid,
986 int index); 985 int index);
987int esas2r_cleanup(struct Scsi_Host *host);
988int esas2r_read_fw(struct esas2r_adapter *a, char *buf, long off, int count); 986int esas2r_read_fw(struct esas2r_adapter *a, char *buf, long off, int count);
989int esas2r_write_fw(struct esas2r_adapter *a, const char *buf, long off, 987int esas2r_write_fw(struct esas2r_adapter *a, const char *buf, long off,
990 int count); 988 int count);
diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
index 5b14dd29b764..9dffcb28c9b7 100644
--- a/drivers/scsi/esas2r/esas2r_init.c
+++ b/drivers/scsi/esas2r/esas2r_init.c
@@ -661,27 +661,6 @@ void esas2r_kill_adapter(int i)
661 } 661 }
662} 662}
663 663
664int esas2r_cleanup(struct Scsi_Host *host)
665{
666 struct esas2r_adapter *a;
667 int index;
668
669 if (host == NULL) {
670 int i;
671
672 esas2r_debug("esas2r_cleanup everything");
673 for (i = 0; i < MAX_ADAPTERS; i++)
674 esas2r_kill_adapter(i);
675 return -1;
676 }
677
678 esas2r_debug("esas2r_cleanup called for host %p", host);
679 a = (struct esas2r_adapter *)host->hostdata;
680 index = a->index;
681 esas2r_kill_adapter(index);
682 return index;
683}
684
685int esas2r_suspend(struct pci_dev *pdev, pm_message_t state) 664int esas2r_suspend(struct pci_dev *pdev, pm_message_t state)
686{ 665{
687 struct Scsi_Host *host = pci_get_drvdata(pdev); 666 struct Scsi_Host *host = pci_get_drvdata(pdev);
diff --git a/drivers/scsi/esas2r/esas2r_main.c b/drivers/scsi/esas2r/esas2r_main.c
index 4eb14301a497..e07eac5be087 100644
--- a/drivers/scsi/esas2r/esas2r_main.c
+++ b/drivers/scsi/esas2r/esas2r_main.c
@@ -235,7 +235,6 @@ static struct scsi_host_template driver_template = {
235 .module = THIS_MODULE, 235 .module = THIS_MODULE,
236 .show_info = esas2r_show_info, 236 .show_info = esas2r_show_info,
237 .name = ESAS2R_LONGNAME, 237 .name = ESAS2R_LONGNAME,
238 .release = esas2r_release,
239 .info = esas2r_info, 238 .info = esas2r_info,
240 .ioctl = esas2r_ioctl, 239 .ioctl = esas2r_ioctl,
241 .queuecommand = esas2r_queuecommand, 240 .queuecommand = esas2r_queuecommand,
@@ -520,44 +519,16 @@ static int esas2r_probe(struct pci_dev *pcid,
520 519
521static void esas2r_remove(struct pci_dev *pdev) 520static void esas2r_remove(struct pci_dev *pdev)
522{ 521{
523 struct Scsi_Host *host; 522 struct Scsi_Host *host = pci_get_drvdata(pdev);
524 int index; 523 struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata;
525
526 if (pdev == NULL) {
527 esas2r_log(ESAS2R_LOG_WARN, "esas2r_remove pdev==NULL");
528 return;
529 }
530
531 host = pci_get_drvdata(pdev);
532
533 if (host == NULL) {
534 /*
535 * this can happen if pci_set_drvdata was already called
536 * to clear the host pointer. if this is the case, we
537 * are okay; this channel has already been cleaned up.
538 */
539
540 return;
541 }
542 524
543 esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev), 525 esas2r_log_dev(ESAS2R_LOG_INFO, &(pdev->dev),
544 "esas2r_remove(%p) called; " 526 "esas2r_remove(%p) called; "
545 "host:%p", pdev, 527 "host:%p", pdev,
546 host); 528 host);
547 529
548 index = esas2r_cleanup(host); 530 esas2r_kill_adapter(a->index);
549
550 if (index < 0)
551 esas2r_log_dev(ESAS2R_LOG_WARN, &(pdev->dev),
552 "unknown host in %s",
553 __func__);
554
555 found_adapters--; 531 found_adapters--;
556
557 /* if this was the last adapter, clean up the rest of the driver */
558
559 if (found_adapters == 0)
560 esas2r_cleanup(NULL);
561} 532}
562 533
563static int __init esas2r_init(void) 534static int __init esas2r_init(void)
@@ -638,30 +609,7 @@ static int __init esas2r_init(void)
638 for (i = 0; i < MAX_ADAPTERS; i++) 609 for (i = 0; i < MAX_ADAPTERS; i++)
639 esas2r_adapters[i] = NULL; 610 esas2r_adapters[i] = NULL;
640 611
641 /* initialize */ 612 return pci_register_driver(&esas2r_pci_driver);
642
643 driver_template.module = THIS_MODULE;
644
645 if (pci_register_driver(&esas2r_pci_driver) != 0)
646 esas2r_log(ESAS2R_LOG_CRIT, "pci_register_driver FAILED");
647 else
648 esas2r_log(ESAS2R_LOG_INFO, "pci_register_driver() OK");
649
650 if (!found_adapters) {
651 pci_unregister_driver(&esas2r_pci_driver);
652 esas2r_cleanup(NULL);
653
654 esas2r_log(ESAS2R_LOG_CRIT,
655 "driver will not be loaded because no ATTO "
656 "%s devices were found",
657 ESAS2R_DRVR_NAME);
658 return -1;
659 } else {
660 esas2r_log(ESAS2R_LOG_INFO, "found %d adapters",
661 found_adapters);
662 }
663
664 return 0;
665} 613}
666 614
667/* Handle ioctl calls to "/proc/scsi/esas2r/ATTOnode" */ 615/* Handle ioctl calls to "/proc/scsi/esas2r/ATTOnode" */
@@ -753,18 +701,6 @@ int esas2r_show_info(struct seq_file *m, struct Scsi_Host *sh)
753 701
754} 702}
755 703
756int esas2r_release(struct Scsi_Host *sh)
757{
758 esas2r_log_dev(ESAS2R_LOG_INFO, &(sh->shost_gendev),
759 "esas2r_release() called");
760
761 esas2r_cleanup(sh);
762 if (sh->irq)
763 free_irq(sh->irq, NULL);
764 scsi_unregister(sh);
765 return 0;
766}
767
768const char *esas2r_info(struct Scsi_Host *sh) 704const char *esas2r_info(struct Scsi_Host *sh)
769{ 705{
770 struct esas2r_adapter *a = (struct esas2r_adapter *)sh->hostdata; 706 struct esas2r_adapter *a = (struct esas2r_adapter *)sh->hostdata;