diff mbox

bnx2x: link detected up at startup even when it should be down

Message ID 1348734095.7217.46.camel@lb-tlvb-dmitry
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Dmitry Kravkov Sept. 27, 2012, 8:21 a.m. UTC
On Tue, 2012-09-25 at 16:00 +0200, Jean-Michel Hautbois wrote:
> 2012/9/25 Jean-Michel Hautbois <jhautbois@gmail.com>:
> > 2012/9/25 Dmitry Kravkov <dmitry@broadcom.com>:
> >>> -----Original Message-----
> >>> From: Jean-Michel Hautbois [mailto:jhautbois@gmail.com]
> >>> Sent: Tuesday, September 25, 2012 2:54 PM
> >>> To: Dmitry Kravkov
> >>> Cc: netdev; Barak Witkowski; Eilon Greenstein; davem@davemloft.net
> >>> Subject: Re: bnx2x: link detected up at startup even when it should be down
> >>
> >>
> FYI, eth4 and eth5 are seen UP and they should be down.
It looks driver misses DCC "disable/enable" update

Can you pls test this simple patch?

From 1efa0314f4b912f474089f5f8375d37bc265a502 Mon Sep 17 00:00:00 2001
From: Dmitry Kravkov <dmitry@broadcom.com>
Date: Fri, 22 Mar 2013 05:12:02 +0200
Subject: [PATCH] bnx2x: DCC disable/enable update can be missed by driver

As a result of missed update, OS may be updated with wrong link status.
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

Comments

Jean-Michel Hautbois Sept. 27, 2012, 10:07 a.m. UTC | #1
2012/9/27 Dmitry Kravkov <dmitry@broadcom.com>:
> On Tue, 2012-09-25 at 16:00 +0200, Jean-Michel Hautbois wrote:
>> 2012/9/25 Jean-Michel Hautbois <jhautbois@gmail.com>:
>> > 2012/9/25 Dmitry Kravkov <dmitry@broadcom.com>:
>> >>> -----Original Message-----
>> >>> From: Jean-Michel Hautbois [mailto:jhautbois@gmail.com]
>> >>> Sent: Tuesday, September 25, 2012 2:54 PM
>> >>> To: Dmitry Kravkov
>> >>> Cc: netdev; Barak Witkowski; Eilon Greenstein; davem@davemloft.net
>> >>> Subject: Re: bnx2x: link detected up at startup even when it should be down
>> >>
>> >>
>> FYI, eth4 and eth5 are seen UP and they should be down.
> It looks driver misses DCC "disable/enable" update
>
> Can you pls test this simple patch?
>
> From 1efa0314f4b912f474089f5f8375d37bc265a502 Mon Sep 17 00:00:00 2001
> From: Dmitry Kravkov <dmitry@broadcom.com>
> Date: Fri, 22 Mar 2013 05:12:02 +0200
> Subject: [PATCH] bnx2x: DCC disable/enable update can be missed by driver
>
> As a result of missed update, OS may be updated with wrong link status.
> ---
>  drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> index 2f6361e..3962d57 100644
> --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> @@ -3445,6 +3445,7 @@ static inline void bnx2x_attn_int_deasserted3(struct bnx2x *bp, u32 attn)
>                         int func = BP_FUNC(bp);
>
>                         REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_12 + func*4, 0);
> +                       bnx2x_read_mf_cfg(bp);
>                         bp->mf_config[BP_VN(bp)] = MF_CFG_RD(bp,
>                                         func_mf_config[BP_ABS_FUNC(bp)].config);
>                         val = SHMEM_RD(bp,
> --
> 1.7.1
>
>
>
>> JM
>>

This patch does not work (no change at all).

Regards,
JM
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 2f6361e..3962d57 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -3445,6 +3445,7 @@  static inline void bnx2x_attn_int_deasserted3(struct bnx2x *bp, u32 attn)
 			int func = BP_FUNC(bp);
 
 			REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_12 + func*4, 0);
+			bnx2x_read_mf_cfg(bp);
 			bp->mf_config[BP_VN(bp)] = MF_CFG_RD(bp,
 					func_mf_config[BP_ABS_FUNC(bp)].config);
 			val = SHMEM_RD(bp,