Re: kitten - mlx4: Unhandled interrupt - owner bit

Eli Cohen
2010-03-10T16:35:21Z

On Wed, Mar 10, 2010 at 04:03:26PM +0100, Fredrik Unger wrote:
>
> When investigating the error it seems to stem from next_eqe_sw in drivers/net/mlx4/eq.c
> called by the interrupt handler.
> What happens is that (eqe->owner & 0x80) is true causing the routine to return
> NULL resulting in an unhandled interrupt (eg the interrupt routine returns 0)

Please note that the condition is a bit more complicated. I quote the
whole function:

static struct mlx4_eqe *next_eqe_sw(struct mlx4_eq *eq)
{
struct mlx4_eqe *eqe = get_eqe(eq, eq->cons_index);
return !!(eqe->owner & 0x80) ^ !!(eq->cons_index & eq->nent) ? NULL : eqe;
}