On Sat, Sep 05, 2026 at 09:29:58PM +0800, hpp.iscas wrote:
The HI13X1 transmit descriptor stores send_size and data_offset in u16
fields, but hip04_mac_start_xmit() converts both values with
cpu_to_be32() before assigning them. On little-endian systems the
assignment truncates the converted value, leaving neither field with the
intended 16-bit big-endian representation.
Use cpu_to_be16() for the two HI13X1 fields. Keep the original 32-bit
conversion for the other descriptor format.
I am curious to know a) how this bug was found b) how it seems to have
gone otherwise unnoticed since 2019.
Fixes: d413779cdd93 ("net: hisilicon: Add an tx_desc to adapt HI13X1_GMAC")
Signed-off-by: hpp.iscas <redacted>
Please consider using your name in the From field and the Signed-off-by tag.
The fix itself looks good to me:
Reviewed-by: Simon Horman <horms@kernel.org>