mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-25 03:59:55 +07:00
rtlwifi: rtl8192cu: Calculate descriptor checksum correctly for BE
This driver requires a checksum for the descriptors so that the wifi chip is assured that the USB transmission was correct. These entries are little-endian, but the driver was always using cpu order in the calculation. As a result, the driver failed on BE hardware. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
89d32c9071
commit
69d8597e9f
@ -477,14 +477,14 @@ static void _rtl_fill_usb_tx_desc(u8 *txdesc)
|
||||
*/
|
||||
static void _rtl_tx_desc_checksum(u8 *txdesc)
|
||||
{
|
||||
u16 *ptr = (u16 *)txdesc;
|
||||
__le16 *ptr = (__le16 *)txdesc;
|
||||
u16 checksum = 0;
|
||||
u32 index;
|
||||
|
||||
/* Clear first */
|
||||
SET_TX_DESC_TX_DESC_CHECKSUM(txdesc, 0);
|
||||
for (index = 0; index < 16; index++)
|
||||
checksum = checksum ^ (*(ptr + index));
|
||||
checksum = checksum ^ le16_to_cpu(*(ptr + index));
|
||||
SET_TX_DESC_TX_DESC_CHECKSUM(txdesc, checksum);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user