]> git.baikalelectronics.ru Git - kernel.git/commit
net: hns3: fix for not unmapping TX buffer correctly
authorYunsheng Lin <linyunsheng@huawei.com>
Tue, 21 Jul 2020 11:03:51 +0000 (19:03 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2020 22:49:17 +0000 (15:49 -0700)
commitd5943cd36b7b8b4d2ede2eb04ac45681603c1bbe
tree4d9fe45751955ad05931bd81d518daf53bef8a09
parent340f7fbb8d071fb5769cf76c3967dd6ddb075739
net: hns3: fix for not unmapping TX buffer correctly

When a big TX buffer is sent using multi BD, the driver maps the
whole TX buffer, and unmaps it using info in desc_cb corresponding
to each BD, but only the info in the desc_cb of first BD is correct,
other info in desc_cb is wrong, which causes TX unmapping problem
when SMMU is on.

Only set the mapping and freeing info in the desc_cb of first BD to
fix this problem, because the TX buffer only need to be unmapped and
freed once.

Fixes: 93be3d023d63("net: hns3: add handling for big TX fragment")
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Huzhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c