isci: fix fragile/conditional isci_host lookups
authorDan Williams <dan.j.williams@intel.com>
Thu, 31 Mar 2011 20:10:44 +0000 (13:10 -0700)
committerDan Williams <dan.j.williams@intel.com>
Sun, 3 Jul 2011 11:00:36 +0000 (04:00 -0700)
A domain_device can always reference back to ->lldd_ha unlike local lldd
structures.  Fix up cases where the driver uses local objects to look up the
isci_host.  This also changes the calling conventions of some routines to
expect a valid isci_host parameter rather than re-lookup the pointer on entry.

Incidentally cleans up some macros that are longer to type than the open-coded
equivalent:
  isci_host_from_sas_ha
  isci_dev_from_domain_dev

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/host.c
drivers/scsi/isci/host.h
drivers/scsi/isci/phy.c
drivers/scsi/isci/port.c
drivers/scsi/isci/port.h
drivers/scsi/isci/remote_device.c
drivers/scsi/isci/remote_device.h
drivers/scsi/isci/request.c
drivers/scsi/isci/task.c

index 79515be..6644959 100644 (file)
@@ -129,7 +129,7 @@ void isci_host_start_complete(struct isci_host *ihost, enum sci_status completio
 
 int isci_host_scan_finished(struct Scsi_Host *shost, unsigned long time)
 {
-       struct isci_host *ihost = isci_host_from_sas_ha(SHOST_TO_SAS_HA(shost));
+       struct isci_host *ihost = SHOST_TO_SAS_HA(shost)->lldd_ha;
 
        if (test_bit(IHOST_START_PENDING, &ihost->flags))
                return 0;
@@ -149,7 +149,7 @@ int isci_host_scan_finished(struct Scsi_Host *shost, unsigned long time)
 
 void isci_host_scan_start(struct Scsi_Host *shost)
 {
-       struct isci_host *ihost = isci_host_from_sas_ha(SHOST_TO_SAS_HA(shost));
+       struct isci_host *ihost = SHOST_TO_SAS_HA(shost)->lldd_ha;
        struct scic_sds_controller *scic = ihost->core_controller;
        unsigned long tmo = scic_controller_get_suggested_start_timeout(scic);
 
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge