diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-04-08 10:59:45 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-04-11 10:49:41 +0100 |
commit | 4d65f9b6869a756e89172d858671688349e77671 (patch) | |
tree | 9000984e0c5a6b77a51d20c7d2d82b3ee1ac950c /drivers/net/ethernet/mediatek/mtk_wed.c | |
parent | b559edfaf3f3f3eb726f99f65b181ab310b3d4bc (diff) | |
download | lwn-4d65f9b6869a756e89172d858671688349e77671.tar.gz lwn-4d65f9b6869a756e89172d858671688349e77671.zip |
net: ethernet: mtk_eth_soc/wed: fix sparse endian warnings
Descriptor fields are little-endian
Fixes: 804775dfc288 ("net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED)")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mediatek/mtk_wed.c')
-rw-r--r-- | drivers/net/ethernet/mediatek/mtk_wed.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/net/ethernet/mediatek/mtk_wed.c b/drivers/net/ethernet/mediatek/mtk_wed.c index 5d510ac24f2a..5530f7991d1d 100644 --- a/drivers/net/ethernet/mediatek/mtk_wed.c +++ b/drivers/net/ethernet/mediatek/mtk_wed.c @@ -144,16 +144,17 @@ mtk_wed_buffer_alloc(struct mtk_wed_device *dev) for (s = 0; s < MTK_WED_BUF_PER_PAGE; s++) { u32 txd_size; + u32 ctrl; txd_size = dev->wlan.init_buf(buf, buf_phys, token++); - desc->buf0 = buf_phys; - desc->buf1 = buf_phys + txd_size; - desc->ctrl = FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN0, - txd_size) | - FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN1, - MTK_WED_BUF_SIZE - txd_size) | - MTK_WDMA_DESC_CTRL_LAST_SEG1; + desc->buf0 = cpu_to_le32(buf_phys); + desc->buf1 = cpu_to_le32(buf_phys + txd_size); + ctrl = FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN0, txd_size) | + FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN1, + MTK_WED_BUF_SIZE - txd_size) | + MTK_WDMA_DESC_CTRL_LAST_SEG1; + desc->ctrl = cpu_to_le32(ctrl); desc->info = 0; desc++; @@ -184,12 +185,14 @@ mtk_wed_free_buffer(struct mtk_wed_device *dev) for (i = 0, page_idx = 0; i < dev->buf_ring.size; i += MTK_WED_BUF_PER_PAGE) { void *page = page_list[page_idx++]; + dma_addr_t buf_addr; if (!page) break; - dma_unmap_page(dev->hw->dev, desc[i].buf0, - PAGE_SIZE, DMA_BIDIRECTIONAL); + buf_addr = le32_to_cpu(desc[i].buf0); + dma_unmap_page(dev->hw->dev, buf_addr, PAGE_SIZE, + DMA_BIDIRECTIONAL); __free_page(page); } |