r8169: improve rtl8169_rx_csum
Extend the mask to include the checksum failure bits. This allows to simplify the condition in rtl8169_rx_csum(). Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
1e8636b366
commit
206a75e003
@ -533,6 +533,9 @@ enum rtl_rx_desc_bit {
|
||||
IPFail = (1 << 16), /* IP checksum failed */
|
||||
UDPFail = (1 << 15), /* UDP/IP checksum failed */
|
||||
TCPFail = (1 << 14), /* TCP/IP checksum failed */
|
||||
|
||||
#define RxCSFailMask (IPFail | UDPFail | TCPFail)
|
||||
|
||||
RxVlanTag = (1 << 16), /* VLAN tag available */
|
||||
};
|
||||
|
||||
@ -4377,10 +4380,9 @@ static inline int rtl8169_fragmented_frame(u32 status)
|
||||
|
||||
static inline void rtl8169_rx_csum(struct sk_buff *skb, u32 opts1)
|
||||
{
|
||||
u32 status = opts1 & RxProtoMask;
|
||||
u32 status = opts1 & (RxProtoMask | RxCSFailMask);
|
||||
|
||||
if (((status == RxProtoTCP) && !(opts1 & TCPFail)) ||
|
||||
((status == RxProtoUDP) && !(opts1 & UDPFail)))
|
||||
if (status == RxProtoTCP || status == RxProtoUDP)
|
||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||
else
|
||||
skb_checksum_none_assert(skb);
|
||||
|
Loading…
x
Reference in New Issue
Block a user