]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnx2x: FCoE statistics id fixed
authorYuval Mintz <yuvalmin@broadcom.com>
Mon, 12 Mar 2012 11:22:07 +0000 (11:22 +0000)
committerJoe Jin <joe.jin@oracle.com>
Tue, 28 Aug 2012 07:23:19 +0000 (15:23 +0800)
FCoE statistics ids were distinguished from the L2's statistics ids.
However, not all of the change was committed. This causes a possible
collision of indices when FCoE is present.

This patch fixes the issue.

(cherry picked from commit de5c37414af10ac9305d4a3e9c1468347ca3ccaa)
Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/bnx2x/bnx2x_cmn.h

index 315a43b4fe771c5018d71891da590eb0cbaa7a21..a5fdb241bf09ec9d82cd679e25f4b4c65dcda7cd 100644 (file)
@@ -1179,10 +1179,16 @@ static inline int bnx2x_alloc_rx_bds(struct bnx2x_fastpath *fp,
  */
 static inline u8 bnx2x_stats_id(struct bnx2x_fastpath *fp)
 {
-       if (!CHIP_IS_E1x(fp->bp))
+       struct bnx2x *bp = fp->bp;
+       if (!CHIP_IS_E1x(bp)) {
+#ifdef BCM_CNIC
+               /* there are special statistics counters for FCoE 136..140 */
+               if (IS_FCOE_FP(fp))
+                       return bp->cnic_base_cl_id + (bp->pf_num >> 1);
+#endif
                return fp->cl_id;
-       else
-               return fp->cl_id + BP_PORT(fp->bp) * FP_SB_MAX_E1x;
+       }
+       return fp->cl_id + BP_PORT(bp) * FP_SB_MAX_E1x;
 }
 
 static inline void bnx2x_init_vlan_mac_fp_objs(struct bnx2x_fastpath *fp,