---
 drivers/scsi/fcoe/fcoe_ctlr.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
index 1d0bec6..e7a14aa 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -2710,11 +2710,21 @@ static int fcoe_ctlr_vn_recv(struct fcoe_ctlr *fip, 
struct sk_buff *skb)
                struct fc_rport_priv rdata;
                struct fcoe_rport frport;
        } buf;
-       int rc;
+       int rc, vlan_id = 0;
 
        fiph = (struct fip_header *)skb->data;
        sub = fiph->fip_subcode;
 
+       if (fip->lp->vlan)
+               vlan_id = skb_vlan_tag_get_id(skb);
+
+       if (vlan_id && vlan_id != fip->lp->vlan) {
+               LIBFCOE_FIP_DBG(fip, "vn_recv drop frame sub %x vlan %d\n",
+                               sub, vlan_id);
+               rc = -EAGAIN;
+               goto drop;
+       }
+
        rc = fcoe_ctlr_vn_parse(fip, skb, &buf.rdata);
        if (rc) {
                LIBFCOE_FIP_DBG(fip, "vn_recv vn_parse error %d\n", rc);
-- 
1.8.5.6

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to