bnx2x: protect sequence increment with mutex
authorDmitry Kravkov <dmitry@broadcom.com>
Wed, 25 May 2011 04:55:51 +0000 (04:55 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 25 May 2011 21:55:32 +0000 (17:55 -0400)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2x/bnx2x_main.c

index a97d9be331d10e1b4d0b8c3c464e58abfd2b1cc5..4b70311a11ef9f4a3ff5b631585f0d8bded19984 100644 (file)
@@ -2222,12 +2222,13 @@ static void bnx2x_pmf_update(struct bnx2x *bp)
 u32 bnx2x_fw_command(struct bnx2x *bp, u32 command, u32 param)
 {
        int mb_idx = BP_FW_MB_IDX(bp);
-       u32 seq = ++bp->fw_seq;
+       u32 seq;
        u32 rc = 0;
        u32 cnt = 1;
        u8 delay = CHIP_REV_IS_SLOW(bp) ? 100 : 10;
 
        mutex_lock(&bp->fw_mb_mutex);
+       seq = ++bp->fw_seq;
        SHMEM_WR(bp, func_mb[mb_idx].drv_mb_param, param);
        SHMEM_WR(bp, func_mb[mb_idx].drv_mb_header, (command | seq));