aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/enic/vnic_dev.c
diff options
context:
space:
mode:
authorVasanthy Kolluri <vkolluri@cisco.com>2010-06-24 06:49:51 -0400
committerDavid S. Miller <davem@davemloft.net>2010-06-25 23:45:22 -0400
commitf8cac14acff870203ea7f61f1a92c5486d1774fa (patch)
tree4caa5145dca79a98bb5a19b9fd2658fe8fe3933c /drivers/net/enic/vnic_dev.c
parent88132f55d74fdd97a7d459007b2bbb59e850f8c0 (diff)
enic: Bug Fix: Change hardware ingress vlan rewrite mode
The current ingress vlan rewrite mode setting lets the hardware strip off the tag control information of a packet received on native vlan. As a result, the priority bits are also lost. The fix is to change the ingress vlan rewrite mode setting such that the complete tag control information is retained for packets that belong to native vlan. Signed-off-by: Scott Feldman <scofeldm@cisco.com> Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com> Signed-off-by: Roopa Prabhu <roprabhu@cisco.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/enic/vnic_dev.c')
-rw-r--r--drivers/net/enic/vnic_dev.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/enic/vnic_dev.c b/drivers/net/enic/vnic_dev.c
index e0d33281ec98..e3742faa06fe 100644
--- a/drivers/net/enic/vnic_dev.c
+++ b/drivers/net/enic/vnic_dev.c
@@ -564,6 +564,20 @@ int vnic_dev_del_addr(struct vnic_dev *vdev, u8 *addr)
564 return err; 564 return err;
565} 565}
566 566
567int vnic_dev_set_ig_vlan_rewrite_mode(struct vnic_dev *vdev,
568 u8 ig_vlan_rewrite_mode)
569{
570 u64 a0 = ig_vlan_rewrite_mode, a1 = 0;
571 int wait = 1000;
572 int err;
573
574 err = vnic_dev_cmd(vdev, CMD_IG_VLAN_REWRITE_MODE, &a0, &a1, wait);
575 if (err == ERR_ECMDUNKNOWN)
576 return 0;
577
578 return err;
579}
580
567int vnic_dev_raise_intr(struct vnic_dev *vdev, u16 intr) 581int vnic_dev_raise_intr(struct vnic_dev *vdev, u16 intr)
568{ 582{
569 u64 a0 = intr, a1 = 0; 583 u64 a0 = intr, a1 = 0;