From 3a45d8fafd8837b0a2847ad63bcb659804077df1 Mon Sep 17 00:00:00 2001 From: Mike Christie Date: Mon, 30 Jun 2008 17:37:19 -0500 Subject: [PATCH 08/12] libfc fcoe: use shost_priv Use shost_priv. Signed-off-by: Mike Christie --- drivers/scsi/fcoe/fcoe_if.c | 46 +++++++++++++++++++++--------------------- drivers/scsi/libfc/fc_attr.c | 8 +++--- drivers/scsi/libfc/fc_scsi.c | 15 ++++++------- 3 files changed, 34 insertions(+), 35 deletions(-) diff --git a/drivers/scsi/fcoe/fcoe_if.c b/drivers/scsi/fcoe/fcoe_if.c index 162f65e..593e2cf 100644 --- a/drivers/scsi/fcoe/fcoe_if.c +++ b/drivers/scsi/fcoe/fcoe_if.c @@ -94,9 +94,9 @@ fc_wwn_t fcoe_wwn_from_mac(unsigned char mac[MAX_ADDR_LEN], uint scheme, /* * Scsi_Host class Attributes helper functions */ -char *fcoe_info(struct Scsi_Host *host) +char *fcoe_info(struct Scsi_Host *shost) { - struct fc_lport *lp = (struct fc_lport *)host->hostdata; + struct fc_lport *lp = shost_priv(shost); static char buf[256]; int len = 0; @@ -125,23 +125,23 @@ static ssize_t fcoe_name_show(struct device *dev, struct device_attribute *attr, char *buf) { - struct Scsi_Host *host = class_to_shost(dev); + struct Scsi_Host *shost = class_to_shost(dev); - return snprintf(buf, PAGE_SIZE, "FCOEHBA%d\n", host->host_no); + return snprintf(buf, PAGE_SIZE, "FCOEHBA%d\n", shost->host_no); } static ssize_t fcoe_info_show(struct device *dev, struct device_attribute *attr, char *buf) { - struct Scsi_Host *host = class_to_shost(dev); - return snprintf(buf, PAGE_SIZE, "%s", fcoe_info(host)); + struct Scsi_Host *shost = class_to_shost(dev); + return snprintf(buf, PAGE_SIZE, "%s", fcoe_info(shost)); } static ssize_t fcoe_state_show(struct device *dev, struct device_attribute *attr, char *buf) { - struct Scsi_Host *host = class_to_shost(dev); - struct fc_lport *lp = (struct fc_lport *)host->hostdata; + struct Scsi_Host *shost = class_to_shost(dev); + struct fc_lport *lp = shost_priv(shost); ssize_t len; switch (lp->state) { @@ -170,8 +170,8 @@ static ssize_t fcoe_stop(struct device *dev, struct device_attribute *attr, const char *buffer, size_t size) { - struct Scsi_Host *host = class_to_shost(dev); - struct fc_lport *lp = (struct fc_lport *)host->hostdata; + struct Scsi_Host *shost = class_to_shost(dev); + struct fc_lport *lp = shost_priv(shost); if (buffer == NULL) return size; @@ -192,8 +192,8 @@ static ssize_t fcoe_start(struct device *dev, struct device_attribute *attr, const char *buffer, size_t size) { - struct Scsi_Host *host = class_to_shost(dev); - struct fc_lport *lp = (struct fc_lport *)host->hostdata; + struct Scsi_Host *shost = class_to_shost(dev); + struct fc_lport *lp = shost_priv(shost); if (buffer == NULL) return size; @@ -214,8 +214,8 @@ static ssize_t fcoe_reset(struct device *dev, struct device_attribute *attr, const char *buffer, size_t size) { - struct Scsi_Host *host = class_to_shost(dev); - struct fc_lport *lp = (struct fc_lport *)host->hostdata; + struct Scsi_Host *shost = class_to_shost(dev); + struct fc_lport *lp = shost_priv(shost); if (buffer == NULL) return size; @@ -433,7 +433,7 @@ int fcoe_create_interface(const char *ifname) struct fcoe_softc *fc; struct fcoe_dev_stats *p; struct net_device *net_dev; - struct Scsi_Host *host; + struct Scsi_Host *shost; struct fcoe_info *fci = &fcoei; u32 mfs; @@ -455,22 +455,22 @@ int fcoe_create_interface(const char *ifname) goto out_put_dev; } - host = scsi_host_alloc(&fcoe_driver_template, + shost = scsi_host_alloc(&fcoe_driver_template, sizeof(struct fc_lport) + sizeof(struct fcoe_softc)); - if (host == NULL) { + if (shost == NULL) { FC_DBG("openfc: Could not allocate host structure\n"); rc = -ENOMEM; goto out_put_dev; } - host->transportt = fcoe_transport_template; + shost->transportt = fcoe_transport_template; /* Set structure relationships */ - lp = (struct fc_lport *)host->hostdata; + lp = shost_priv(shost); memset(lp, 0, sizeof(struct fc_lport)); - lp->host = host; + lp->host = shost; lp->drv_priv = (void *)(lp + 1); fc = (struct fcoe_softc *)lp->drv_priv; memset(fc, 0, sizeof(struct fcoe_softc)); @@ -481,9 +481,9 @@ int fcoe_create_interface(const char *ifname) memcpy(&lp->tt, &fcoe_libfc_transport_template, sizeof(struct fc_transport_template)); /* Configure the scsi_host */ - host->max_lun = FC_MAX_LUN; - host->max_id = FC_MAX_FCP_TARGET; - host->max_channel = 0; + shost->max_lun = FC_MAX_LUN; + shost->max_id = FC_MAX_FCP_TARGET; + shost->max_channel = 0; /* Allocate an EM for this driver */ lp->emp = fc_exch_mgr_alloc(lp, FC_CLASS_3, FC_MIN_XID, FC_MAX_XID, 0); diff --git a/drivers/scsi/libfc/fc_attr.c b/drivers/scsi/libfc/fc_attr.c index ddaa52a..cfae66c 100644 --- a/drivers/scsi/libfc/fc_attr.c +++ b/drivers/scsi/libfc/fc_attr.c @@ -31,7 +31,7 @@ MODULE_LICENSE("GPL"); void fc_get_host_port_id(struct Scsi_Host *shost) { - struct fc_lport *lp = (struct fc_lport *)shost->hostdata; + struct fc_lport *lp = shost_priv(shost); fc_host_port_id(shost) = fc_lport_get_fid(lp); } @@ -54,7 +54,7 @@ EXPORT_SYMBOL(fc_get_host_port_type); void fc_get_host_fabric_name(struct Scsi_Host *shost) { - struct fc_lport *lp = (struct fc_lport *)shost->hostdata; + struct fc_lport *lp = shost_priv(shost); fc_host_fabric_name(shost) = lp->wwnn; } @@ -94,11 +94,11 @@ void fc_set_rport_loss_tmo(struct fc_rport *rport, uint32_t timeout) } EXPORT_SYMBOL(fc_set_rport_loss_tmo); -struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shp) +struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shost) { int i; struct fc_host_statistics *fcoe_stats; - struct fc_lport *lp = (struct fc_lport *)shp->hostdata; + struct fc_lport *lp = shost_priv(shost); struct timespec v0, v1; fcoe_stats = &lp->host_stats; diff --git a/drivers/scsi/libfc/fc_scsi.c b/drivers/scsi/libfc/fc_scsi.c index 4579c21..8c23082 100644 --- a/drivers/scsi/libfc/fc_scsi.c +++ b/drivers/scsi/libfc/fc_scsi.c @@ -1743,7 +1743,7 @@ int fc_queuecommand(struct scsi_cmnd *sc_cmd, void (*done)(struct scsi_cmnd *)) int rc = 0; struct fcoe_dev_stats *stats; - lp = (struct fc_lport *)sc_cmd->device->host->hostdata; + lp = shost_priv(sc_cmd->device->host); if (lp->state != LOCAL_PORT_ST_READY) { if (lp->status & FC_PAUSE) { @@ -1986,13 +1986,12 @@ int fc_eh_abort(struct scsi_cmnd *sc_cmd) struct fc_scsi_pkt *sp; struct fc_lport *lp; int rc = FAILED; - lp = (struct fc_lport *)sc_cmd->device->host->hostdata; - if (lp->state != LOCAL_PORT_ST_READY) { + lp = shost_priv(sc_cmd->device->host); + if (lp->state != LOCAL_PORT_ST_READY) return rc; - } else if (!(lp->status & FC_LINK_UP)) { + else if (!(lp->status & FC_LINK_UP)) return rc; - } qp = (struct fc_cmdq *)xchg(&(CMD_SP(sc_cmd)), NULL); if (qp) { @@ -2043,7 +2042,7 @@ int fc_eh_device_reset(struct scsi_cmnd *sc_cmd) rp = rport->dd_data; if (rp != NULL) { - lp = (struct fc_lport *)sc_cmd->device->host->hostdata; + lp = shost_priv(sc_cmd->device->host); if (lp->state != LOCAL_PORT_ST_READY) return rc; @@ -2082,8 +2081,8 @@ int fc_eh_host_reset(struct scsi_cmnd *sc_cmd) { struct fc_lport *lp; - lp = (struct fc_lport *)sc_cmd->device->host->hostdata; - return (lp->tt.lport_reset(lp)); + lp = shost_priv(sc_cmd->device->host); + return lp->tt.lport_reset(lp); } EXPORT_SYMBOL(fc_eh_host_reset); -- 1.5.4.1