]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.drivers/ixgbe-add-bcna-support
Revert "Move xen patchset to new version's subdir."
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.drivers / ixgbe-add-bcna-support
diff --git a/src/patches/suse-2.6.27.25/patches.drivers/ixgbe-add-bcna-support b/src/patches/suse-2.6.27.25/patches.drivers/ixgbe-add-bcna-support
new file mode 100644 (file)
index 0000000..eb06098
--- /dev/null
@@ -0,0 +1,97 @@
+Subject: DCB: Add BCNA support to ixgbe
+From: Hannes Reinecke <hare@suse.de>
+Date: Thu Nov 6 13:05:27 2008 +0100:
+Git: 5091837c7ddfb47111ce456b9addd1476418dcd3
+
+Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
+Signed-off-by: Hannes Reinecke <hare@suse.de>
+
+diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ixgbe/ixgbe_dcb_nl.c
+index ca2537e..d8db691 100644
+--- a/drivers/net/ixgbe/ixgbe_dcb_nl.c
++++ b/drivers/net/ixgbe/ixgbe_dcb_nl.c
+@@ -93,6 +93,8 @@ int ixgbe_copy_dcb_cfg(struct ixgbe_dcb_config *src_dcb_cfg,
+               dst_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0] =
+                       src_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0];
+       }
++      dst_dcb_cfg->bcn.bcna_option[0] = src_dcb_cfg->bcn.bcna_option[0];
++      dst_dcb_cfg->bcn.bcna_option[1] = src_dcb_cfg->bcn.bcna_option[1];
+       dst_dcb_cfg->bcn.rp_alpha = src_dcb_cfg->bcn.rp_alpha;
+       dst_dcb_cfg->bcn.rp_beta = src_dcb_cfg->bcn.rp_beta;
+       dst_dcb_cfg->bcn.rp_gd = src_dcb_cfg->bcn.rp_gd;
+@@ -451,6 +453,12 @@ static void ixgbe_dcbnl_getbcncfg(struct net_device *netdev, int enum_index,
+       struct ixgbe_adapter *adapter = netdev_priv(netdev);
+       switch (enum_index) {
++      case DCB_BCN_ATTR_BCNA_0:
++              *setting = adapter->dcb_cfg.bcn.bcna_option[0];
++              break;
++      case DCB_BCN_ATTR_BCNA_1:
++              *setting = adapter->dcb_cfg.bcn.bcna_option[1];
++              break;
+       case DCB_BCN_ATTR_ALPHA:
+               *setting = adapter->dcb_cfg.bcn.rp_alpha;
+               break;
+@@ -510,6 +518,18 @@ static void ixgbe_dcbnl_setbcncfg(struct net_device *netdev, int enum_index,
+       struct ixgbe_adapter *adapter = netdev_priv(netdev);
+       switch (enum_index) {
++      case DCB_BCN_ATTR_BCNA_0:
++              adapter->temp_dcb_cfg.bcn.bcna_option[0] = setting;
++              if (adapter->temp_dcb_cfg.bcn.bcna_option[0] !=
++                      adapter->dcb_cfg.bcn.bcna_option[0])
++                      adapter->dcb_set_bitmap |= BIT_BCN;
++              break;
++      case DCB_BCN_ATTR_BCNA_1:
++              adapter->temp_dcb_cfg.bcn.bcna_option[1] = setting;
++              if (adapter->temp_dcb_cfg.bcn.bcna_option[1] !=
++                      adapter->dcb_cfg.bcn.bcna_option[1])
++                      adapter->dcb_set_bitmap |= BIT_BCN;
++              break;
+       case DCB_BCN_ATTR_ALPHA:
+               adapter->temp_dcb_cfg.bcn.rp_alpha = setting;
+               if (adapter->temp_dcb_cfg.bcn.rp_alpha !=
+diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h
+index 2d5c6fb..e752f2b 100644
+--- a/include/linux/dcbnl.h
++++ b/include/linux/dcbnl.h
+@@ -291,6 +291,8 @@ enum dcbnl_bcn_attrs{
+       DCB_BCN_ATTR_RP_7,
+       DCB_BCN_ATTR_RP_ALL,
++      DCB_BCN_ATTR_BCNA_0,
++      DCB_BCN_ATTR_BCNA_1,
+       DCB_BCN_ATTR_ALPHA,
+       DCB_BCN_ATTR_BETA,
+       DCB_BCN_ATTR_GD,
+diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c
+index 76b08ec..f5e2b0b 100644
+--- a/net/dcb/dcbnl.c
++++ b/net/dcb/dcbnl.c
+@@ -106,6 +106,8 @@ static struct nla_policy dcbnl_bcn_nest[DCB_BCN_ATTR_MAX + 1] = {
+       [DCB_BCN_ATTR_RP_6]         = {.type = NLA_U8},
+       [DCB_BCN_ATTR_RP_7]         = {.type = NLA_U8},
+       [DCB_BCN_ATTR_RP_ALL]       = {.type = NLA_FLAG},
++      [DCB_BCN_ATTR_BCNA_0]       = {.type = NLA_U32},
++      [DCB_BCN_ATTR_BCNA_1]       = {.type = NLA_U32},
+       [DCB_BCN_ATTR_ALPHA]        = {.type = NLA_U32},
+       [DCB_BCN_ATTR_BETA]         = {.type = NLA_U32},
+       [DCB_BCN_ATTR_GD]           = {.type = NLA_U32},
+@@ -893,7 +895,7 @@ static int dcbnl_bcn_getcfg(struct net_device *netdev, struct nlattr **tb,
+                       goto err_bcn;
+       }
+-      for (i = DCB_BCN_ATTR_ALPHA; i <= DCB_BCN_ATTR_RI; i++) {
++      for (i = DCB_BCN_ATTR_BCNA_0; i <= DCB_BCN_ATTR_RI; i++) {
+               if (!getall && !bcn_tb[i])
+                       continue;
+@@ -951,7 +953,7 @@ static int dcbnl_bcn_setcfg(struct net_device *netdev, struct nlattr **tb,
+                       data[i]->nla_type - DCB_BCN_ATTR_RP_0, value_byte);
+       }
+-      for (i = DCB_BCN_ATTR_ALPHA; i <= DCB_BCN_ATTR_RI; i++) {
++      for (i = DCB_BCN_ATTR_BCNA_0; i <= DCB_BCN_ATTR_RI; i++) {
+               if (data[i] == NULL)
+                       continue;
+               value_int = nla_get_u32(data[i]);