On Fri, Oct 30, 2009 at 09:50:34PM +0200, Atte Peltom?ki wrote:
> Hi,
> 
> Link state change interrupt was not generated due to a missing bit in
> the MAC event register. This fixes at least carp and ifstated for 5709 
> chip (eg. in Dell R610). 

i have verified this on the 5709. i dont have a box with older
versions of bnx in it to test on them though. have you been able
to try this on a 2950 or r200?

> Note that Broadcom Linux driver also sets STATUS_ATTN_BITS_TIMER_ABORT
> on the same go which I is detection for a hung pci bus. Code for this 
> interrupt is missing in the bnx_phy_intr() handler, so I left it out 
> for now. If you have any ideas how to test it, I can try porting the
> handler code. 
> 
> 
> --- sys/dev/pci/if_bnx.c      Fri Oct 30 21:04:04 2009
> +++ sys/dev/pci/if_bnx.c        Fri Oct 30 21:05:56 2009
> @@ -3461,6 +3461,7 @@
> 
>         /* Set up link change interrupt generation. */
>         REG_WR(sc, BNX_EMAC_ATTENTION_ENA, BNX_EMAC_ATTENTION_ENA_LINK);
> +       REG_WR(sc, BNX_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE);
> 
>         /* Program the physical address of the status block. */
>         REG_WR(sc, BNX_HC_STATUS_ADDR_L, (u_int32_t)(sc->status_block_paddr));
> 
> -- 
> Atte Peltomdki
>      atte.peltom...@iki.fi <> http://kameli.org
> "Your effort to remain what you are is what limits you"

Reply via email to