diff options
author | Vasu Dev <vasu.dev@intel.com> | 2009-03-17 11:42:29 -0700 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-04-03 09:23:07 -0500 |
commit | a0a25da2a495a889664dc946942b8666665cd1e1 (patch) | |
tree | f3ac1dd6adb76490afa828298e71992ba5045d8f /drivers/scsi | |
parent | fdd78027fd472351783fb6110a72d991c1a07402 (diff) | |
download | linux-a0a25da2a495a889664dc946942b8666665cd1e1.tar.bz2 |
[SCSI] fcoe, libfc: fix double fcoe_softc memory alloc
The foce_softc mem was reserved by libfc_host_alloc as well as
by fcoe_host_alloc.
Removes one liner fcoe_host_alloc completely, instead directly calls
libfc_host_alloc to alloc scsi_host with libfc for just one fcoe_softc
as fcoe private data.
Moves libfc_host_alloc to libfc.h since it is a libfc API, placed
lport_priv API adjacent to libfc_host_alloc since this is related
to scsi_host priv data.
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/fcoe/fcoe.c | 33 |
1 files changed, 2 insertions, 31 deletions
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c index 30161a26387a..d5f009ad0388 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c @@ -70,8 +70,6 @@ static struct fc_lport *fcoe_hostlist_lookup(const struct net_device *); static int fcoe_hostlist_add(const struct fc_lport *); static int fcoe_hostlist_remove(const struct fc_lport *); -static struct Scsi_Host *fcoe_host_alloc(struct scsi_host_template *, int); - static int fcoe_check_wait_queue(struct fc_lport *); static void fcoe_recv_flogi(struct fcoe_softc *, struct fc_frame *, u8 *); static int fcoe_device_notification(struct notifier_block *, ulong, void *); @@ -464,8 +462,8 @@ static int fcoe_if_create(struct net_device *netdev) if (lp) return -EEXIST; - shost = fcoe_host_alloc(&fcoe_shost_template, - sizeof(struct fcoe_softc)); + shost = libfc_host_alloc(&fcoe_shost_template, + sizeof(struct fcoe_softc)); if (!shost) { FC_DBG("Could not allocate host structure\n"); return -ENOMEM; @@ -1716,33 +1714,6 @@ void fcoe_clean_pending_queue(struct fc_lport *lp) EXPORT_SYMBOL_GPL(fcoe_clean_pending_queue); /** - * libfc_host_alloc() - Allocate a Scsi_Host with room for the fc_lport - * @sht: ptr to the scsi host templ - * @priv_size: size of private data after fc_lport - * - * Returns: ptr to Scsi_Host - * TODO: to libfc? - */ -static inline struct Scsi_Host * -libfc_host_alloc(struct scsi_host_template *sht, int priv_size) -{ - return scsi_host_alloc(sht, sizeof(struct fc_lport) + priv_size); -} - -/** - * fcoe_host_alloc() - Allocate a Scsi_Host with room for the fcoe_softc - * @sht: ptr to the scsi host templ - * @priv_size: size of private data after fc_lport - * - * Returns: ptr to Scsi_Host - */ -struct Scsi_Host *fcoe_host_alloc(struct scsi_host_template *sht, int priv_size) -{ - return libfc_host_alloc(sht, sizeof(struct fcoe_softc) + priv_size); -} -EXPORT_SYMBOL_GPL(fcoe_host_alloc); - -/** * fcoe_reset() - Resets the fcoe * @shost: shost the reset is from * |