--- /dev/null
+Subject: Fix setpfcstate
+From: Hannes Reinecke <hare@suse.de>
+Date: Fri Nov 7 15:36:08 2008 +0100:
+Git: f7e09ce313fdc4f79403d43b1ac570f6807973bd
+References: bnc#438954
+
+Fixup setpfcstate and setnumtcs command.
+
+Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
+Signed-off-by: Hannes Reinecke <hare@suse.de>
+
+diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c
+index f5e2b0b..be9dcbb 100644
+--- a/net/dcb/dcbnl.c
++++ b/net/dcb/dcbnl.c
+@@ -435,7 +435,6 @@ static int dcbnl_setnumtcs(struct net_device *netdev, struct nlattr **tb,
+ struct nlattr *data[DCB_NUMTCS_ATTR_MAX + 1];
+ int ret = -EINVAL;
+ u8 value;
+- u8 status;
+ int i;
+
+ if (!tb[DCB_ATTR_NUMTCS] || !netdev->dcbnl_ops->setstate)
+@@ -458,14 +457,11 @@ static int dcbnl_setnumtcs(struct net_device *netdev, struct nlattr **tb,
+ ret = netdev->dcbnl_ops->setnumtcs(netdev, i, value);
+
+ if (ret)
+- goto err;
++ goto operr;
+ }
+
+- value = nla_get_u8(tb[DCB_ATTR_STATE]);
+-
+- status = netdev->dcbnl_ops->setnumtcs(netdev, i, value);
+-
+- ret = dcbnl_reply(!!status, RTM_SETDCB, DCB_CMD_SNUMTCS,
++operr:
++ ret = dcbnl_reply(!!ret, RTM_SETDCB, DCB_CMD_SNUMTCS,
+ DCB_ATTR_NUMTCS, pid, seq, flags);
+
+ err:
+@@ -496,9 +492,9 @@ static int dcbnl_setpfcstate(struct net_device *netdev, struct nlattr **tb,
+ if (!tb[DCB_ATTR_PFC_STATE] || !netdev->dcbnl_ops->setpfcstate)
+ return ret;
+
+- value = nla_get_u8(tb[DCB_ATTR_STATE]);
++ value = nla_get_u8(tb[DCB_ATTR_PFC_STATE]);
+
+- netdev->dcbnl_ops->setstate(netdev, value);
++ netdev->dcbnl_ops->setpfcstate(netdev, value);
+
+ ret = dcbnl_reply(0, RTM_SETDCB, DCB_CMD_PFC_SSTATE, DCB_ATTR_PFC_STATE,
+ pid, seq, flags);