From 24d8ee56546fd6d53e2bd01e4fea3cd8548d7faf Mon Sep 17 00:00:00 2001 From: Yi Zou Date: Tue, 3 Nov 2009 11:49:59 -0800 Subject: [PATCH] --- yaml --- r: 173687 b: refs/heads/master c: cc0136c2e9c10e889cb36e39710c0eb10707b396 h: refs/heads/master i: 173685: e35fa1b6273b0264e4906f3b95ac99fee7b5a7cf 173683: 842c39353594bde6cda58bf7c8e2f307cd02063e 173679: 5aeec6094c772fa605af9f222d289c3a5a1b62f4 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/fcoe/fcoe.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index bc03a1ddef98..761c950c02f3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 349e11faa84ebdd6e484572cfe66f2cf4cb483a1 +refs/heads/master: cc0136c2e9c10e889cb36e39710c0eb10707b396 diff --git a/trunk/drivers/scsi/fcoe/fcoe.c b/trunk/drivers/scsi/fcoe/fcoe.c index fba7ba00c71b..28029a342892 100644 --- a/trunk/drivers/scsi/fcoe/fcoe.c +++ b/trunk/drivers/scsi/fcoe/fcoe.c @@ -555,6 +555,7 @@ static int fcoe_netdev_config(struct fc_lport *lport, struct net_device *netdev) u64 wwnn, wwpn; struct fcoe_interface *fcoe; struct fcoe_port *port; + int vid = 0; /* Setup lport private data to point to fcoe softc */ port = lport_priv(lport); @@ -599,10 +600,16 @@ static int fcoe_netdev_config(struct fc_lport *lport, struct net_device *netdev) setup_timer(&port->timer, fcoe_queue_timer, (unsigned long)lport); if (!lport->vport) { + /* + * Use NAA 1&2 (FC-FS Rev. 2.0, Sec. 15) to generate WWNN/WWPN: + * For WWNN, we use NAA 1 w/ bit 27-16 of word 0 as 0. + * For WWPN, we use NAA 2 w/ bit 27-16 of word 0 from VLAN ID + */ + if (netdev->priv_flags & IFF_802_1Q_VLAN) + vid = vlan_dev_vlan_id(netdev); wwnn = fcoe_wwn_from_mac(fcoe->ctlr.ctl_src_addr, 1, 0); fc_set_wwnn(lport, wwnn); - /* XXX - 3rd arg needs to be vlan id */ - wwpn = fcoe_wwn_from_mac(fcoe->ctlr.ctl_src_addr, 2, 0); + wwpn = fcoe_wwn_from_mac(fcoe->ctlr.ctl_src_addr, 2, vid); fc_set_wwpn(lport, wwpn); }