aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/fcoe/fcoe.c
diff options
context:
space:
mode:
authorChris Leech <christopher.leech@intel.com>2009-08-25 13:59:51 -0700
committerJames Bottomley <James.Bottomley@suse.de>2009-09-10 12:07:33 -0500
commit991cbb6082db3025bd82908eb9ee2d2920be2114 (patch)
tree74f2a5f22c0a9bb20b5430e7019d24723988b4ff /drivers/scsi/fcoe/fcoe.c
parent3fe9a0badae7fa2eb35eff4f07e851fbd25e3d4f (diff)
[SCSI] fcoe: move offload exchange manager pointer from fcoe_port to fcoe_interface
The offload EM pointer is only used when setting up a new libfc instance, but as it's designed to be shared among NPIV VN_Ports it should be tracked in fcoe_interface. With the host-list changed to track fcoe_interfaces as well, this is needed before we can remove the priv pointer from that structure (which is only there to help in the transition, and stops making sense once NPIV is enabled). Signed-off-by: Chris Leech <christopher.leech@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/fcoe/fcoe.c')
-rw-r--r--drivers/scsi/fcoe/fcoe.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index 01519c722ed..bb59a7a04f2 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -438,7 +438,6 @@ bool fcoe_oem_match(struct fc_frame *fp)
static inline int fcoe_em_config(struct fc_lport *lp)
{
struct fcoe_port *port = lport_priv(lp);
- struct fcoe_port *oldport = NULL;
struct fcoe_interface *fcoe = port->fcoe;
struct fcoe_interface *oldfcoe = NULL;
struct net_device *old_real_dev, *cur_real_dev;
@@ -464,30 +463,29 @@ static inline int fcoe_em_config(struct fc_lport *lp)
cur_real_dev = fcoe->netdev;
list_for_each_entry(oldfcoe, &fcoe_hostlist, list) {
- oldport = oldfcoe->priv;
if (oldfcoe->netdev->priv_flags & IFF_802_1Q_VLAN)
old_real_dev = vlan_dev_real_dev(oldfcoe->netdev);
else
old_real_dev = oldfcoe->netdev;
if (cur_real_dev == old_real_dev) {
- port->oem = oldport->oem;
+ fcoe->oem = oldfcoe->oem;
break;
}
}
- if (port->oem) {
- if (!fc_exch_mgr_add(lp, port->oem, fcoe_oem_match)) {
+ if (fcoe->oem) {
+ if (!fc_exch_mgr_add(lp, fcoe->oem, fcoe_oem_match)) {
printk(KERN_ERR "fcoe_em_config: failed to add "
"offload em:%p on interface:%s\n",
- port->oem, fcoe->netdev->name);
+ fcoe->oem, fcoe->netdev->name);
return -ENOMEM;
}
} else {
- port->oem = fc_exch_mgr_alloc(lp, FC_CLASS_3,
+ fcoe->oem = fc_exch_mgr_alloc(lp, FC_CLASS_3,
FCOE_MIN_XID, lp->lro_xid,
fcoe_oem_match);
- if (!port->oem) {
+ if (!fcoe->oem) {
printk(KERN_ERR "fcoe_em_config: failed to allocate "
"em for offload exches on interface:%s\n",
fcoe->netdev->name);