]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/suse-2.6.27.39/patches.drivers/ixgbe-add-bcna-support
Fix oinkmaster patch.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.drivers / ixgbe-add-bcna-support
CommitLineData
2cb7cef9
BS
1Subject: DCB: Add BCNA support to ixgbe
2From: Hannes Reinecke <hare@suse.de>
3Date: Thu Nov 6 13:05:27 2008 +0100:
4Git: 5091837c7ddfb47111ce456b9addd1476418dcd3
5
6Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
7Signed-off-by: Hannes Reinecke <hare@suse.de>
8
9diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ixgbe/ixgbe_dcb_nl.c
10index ca2537e..d8db691 100644
11--- a/drivers/net/ixgbe/ixgbe_dcb_nl.c
12+++ b/drivers/net/ixgbe/ixgbe_dcb_nl.c
13@@ -93,6 +93,8 @@ int ixgbe_copy_dcb_cfg(struct ixgbe_dcb_config *src_dcb_cfg,
14 dst_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0] =
15 src_dcb_cfg->bcn.rp_admin_mode[i - DCB_BCN_ATTR_RP_0];
16 }
17+ dst_dcb_cfg->bcn.bcna_option[0] = src_dcb_cfg->bcn.bcna_option[0];
18+ dst_dcb_cfg->bcn.bcna_option[1] = src_dcb_cfg->bcn.bcna_option[1];
19 dst_dcb_cfg->bcn.rp_alpha = src_dcb_cfg->bcn.rp_alpha;
20 dst_dcb_cfg->bcn.rp_beta = src_dcb_cfg->bcn.rp_beta;
21 dst_dcb_cfg->bcn.rp_gd = src_dcb_cfg->bcn.rp_gd;
22@@ -451,6 +453,12 @@ static void ixgbe_dcbnl_getbcncfg(struct net_device *netdev, int enum_index,
23 struct ixgbe_adapter *adapter = netdev_priv(netdev);
24
25 switch (enum_index) {
26+ case DCB_BCN_ATTR_BCNA_0:
27+ *setting = adapter->dcb_cfg.bcn.bcna_option[0];
28+ break;
29+ case DCB_BCN_ATTR_BCNA_1:
30+ *setting = adapter->dcb_cfg.bcn.bcna_option[1];
31+ break;
32 case DCB_BCN_ATTR_ALPHA:
33 *setting = adapter->dcb_cfg.bcn.rp_alpha;
34 break;
35@@ -510,6 +518,18 @@ static void ixgbe_dcbnl_setbcncfg(struct net_device *netdev, int enum_index,
36 struct ixgbe_adapter *adapter = netdev_priv(netdev);
37
38 switch (enum_index) {
39+ case DCB_BCN_ATTR_BCNA_0:
40+ adapter->temp_dcb_cfg.bcn.bcna_option[0] = setting;
41+ if (adapter->temp_dcb_cfg.bcn.bcna_option[0] !=
42+ adapter->dcb_cfg.bcn.bcna_option[0])
43+ adapter->dcb_set_bitmap |= BIT_BCN;
44+ break;
45+ case DCB_BCN_ATTR_BCNA_1:
46+ adapter->temp_dcb_cfg.bcn.bcna_option[1] = setting;
47+ if (adapter->temp_dcb_cfg.bcn.bcna_option[1] !=
48+ adapter->dcb_cfg.bcn.bcna_option[1])
49+ adapter->dcb_set_bitmap |= BIT_BCN;
50+ break;
51 case DCB_BCN_ATTR_ALPHA:
52 adapter->temp_dcb_cfg.bcn.rp_alpha = setting;
53 if (adapter->temp_dcb_cfg.bcn.rp_alpha !=
54diff --git a/include/linux/dcbnl.h b/include/linux/dcbnl.h
55index 2d5c6fb..e752f2b 100644
56--- a/include/linux/dcbnl.h
57+++ b/include/linux/dcbnl.h
58@@ -291,6 +291,8 @@ enum dcbnl_bcn_attrs{
59 DCB_BCN_ATTR_RP_7,
60 DCB_BCN_ATTR_RP_ALL,
61
62+ DCB_BCN_ATTR_BCNA_0,
63+ DCB_BCN_ATTR_BCNA_1,
64 DCB_BCN_ATTR_ALPHA,
65 DCB_BCN_ATTR_BETA,
66 DCB_BCN_ATTR_GD,
67diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c
68index 76b08ec..f5e2b0b 100644
69--- a/net/dcb/dcbnl.c
70+++ b/net/dcb/dcbnl.c
71@@ -106,6 +106,8 @@ static struct nla_policy dcbnl_bcn_nest[DCB_BCN_ATTR_MAX + 1] = {
72 [DCB_BCN_ATTR_RP_6] = {.type = NLA_U8},
73 [DCB_BCN_ATTR_RP_7] = {.type = NLA_U8},
74 [DCB_BCN_ATTR_RP_ALL] = {.type = NLA_FLAG},
75+ [DCB_BCN_ATTR_BCNA_0] = {.type = NLA_U32},
76+ [DCB_BCN_ATTR_BCNA_1] = {.type = NLA_U32},
77 [DCB_BCN_ATTR_ALPHA] = {.type = NLA_U32},
78 [DCB_BCN_ATTR_BETA] = {.type = NLA_U32},
79 [DCB_BCN_ATTR_GD] = {.type = NLA_U32},
80@@ -893,7 +895,7 @@ static int dcbnl_bcn_getcfg(struct net_device *netdev, struct nlattr **tb,
81 goto err_bcn;
82 }
83
84- for (i = DCB_BCN_ATTR_ALPHA; i <= DCB_BCN_ATTR_RI; i++) {
85+ for (i = DCB_BCN_ATTR_BCNA_0; i <= DCB_BCN_ATTR_RI; i++) {
86 if (!getall && !bcn_tb[i])
87 continue;
88
89@@ -951,7 +953,7 @@ static int dcbnl_bcn_setcfg(struct net_device *netdev, struct nlattr **tb,
90 data[i]->nla_type - DCB_BCN_ATTR_RP_0, value_byte);
91 }
92
93- for (i = DCB_BCN_ATTR_ALPHA; i <= DCB_BCN_ATTR_RI; i++) {
94+ for (i = DCB_BCN_ATTR_BCNA_0; i <= DCB_BCN_ATTR_RI; i++) {
95 if (data[i] == NULL)
96 continue;
97 value_int = nla_get_u32(data[i]);