linux/drivers/net/ethernet/qualcomm
Alex Elder 16bf3d33c6 net: qualcomm: rmnet: IPv4 header has zero checksum
In rmnet_map_ipv4_dl_csum_trailer(), an illegal checksum subtraction
is done, subtracting hdr_csum (in host byte order) from csum_value (in
network byte order).  Despite being illegal, it generally works,
because it turns out the value subtracted is (or should be) always 0,
which has the same representation in either byte order.

Doing illegal operations is not good form though, so fix this by
verifying the IP header checksum early in that function.  If its
checksum is non-zero, the packet will be bad, so just return an
error.  This will cause the packet to passed to the IP layer where
it can be dropped.

Thereafter, there is no need subtract the IP header checksum from
the checksum value in the trailer because we know it is zero.
Add a comment explaining this.

This type of packet error is different from other types, so add a
new statistics counter to track this condition.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-06-11 13:37:49 -07:00
..
emac net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send 2021-04-26 13:07:30 -07:00
rmnet net: qualcomm: rmnet: IPv4 header has zero checksum 2021-06-11 13:37:49 -07:00
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qca_7k_common.c
qca_7k_common.h
qca_7k.c net: qca_spi: Introduce write register verification 2018-09-24 12:26:06 -07:00
qca_7k.h net: qca_spi: Introduce write register verification 2018-09-24 12:26:06 -07:00
qca_debug.c net: qca_spi: Introduce stat about bad signature 2021-05-10 14:29:18 -07:00
qca_debug.h
qca_spi.c net: qca_spi: Introduce stat about bad signature 2021-05-10 14:29:18 -07:00
qca_spi.h net: qca_spi: Introduce stat about bad signature 2021-05-10 14:29:18 -07:00
qca_uart.c of: net: pass the dst buffer to of_get_mac_address() 2021-04-13 14:35:02 -07:00