ibm emac: Don't call napi_complete if napi_reschedule failed
authorAlistair Popple <alistair@popple.id.au>
Tue, 29 Oct 2013 23:50:37 +0000 (10:50 +1100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Oct 2013 02:57:42 +0000 (22:57 -0400)
commitb4dfd326c29c241c2bb8463167217eb2438b7c3d
treec1fdf53bb1cbacbc2f1da771d8625a51ff10b412
parentec9debbd9a88d8ea86c488d6ffcac419ee7d46d9
ibm emac: Don't call napi_complete if napi_reschedule failed

This patch fixes a bug which would trigger the BUG_ON() at
net/core/dev.c:4156. It was found that this was due to continuing
processing in the current poll call even when the call to
napi_reschedule failed, indicating the device was already on the
polling list. This resulted in an extra call to napi_complete which
triggered the BUG_ON().

This patch ensures that we only contine processing rotting packets in
the current mal_poll call if we are not already on the polling list.

Signed-off-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/emac/mal.c