enic: fix error packets handling
authorJohn Daley <johndale@cisco.com>
Thu, 17 Mar 2016 22:57:06 +0000 (15:57 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 25 Mar 2016 18:01:37 +0000 (19:01 +0100)
commit5776c30293bbbdb3e332c868fbccf99b2026fba0
treee42a719e76f467ea93b4bd889193329c8125ec77
parent3253bbc79c8a1eddf791d9ec11bcea4a004d258e
enic: fix error packets handling

If the packet_error bit in the completion descriptor is set, the
remainder of the descriptor and data are invalid. PKT_RX_MAC_ERR
was set in the mbuf->ol_flags if packet_error was set and used
later to indicate an error packet. But since PKT_RX_MAC_ERR is
defined as 0, mbuf flags and packet types and length were being
misinterpreted.

Make the function enic_cq_rx_to_pkt_err_flags() return true for error
packets and use the return value instead of mbuf->ol_flags to indicate
error packets. Also remove warning for error packets and rely on
rx_error stats.

Fixes: 947d860c821f ("enic: improve Rx performance")

Signed-off-by: John Daley <johndale@cisco.com>
drivers/net/enic/enic_rx.c