]> git.itanic.dy.fi Git - linux-stable/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)
commit0ec3b6a7c026e8f404f76d6dda5dae8d262312a0
tree4d9fe45751955ad05931bd81d518daf53bef8a09
parentb0a422772fec29811e293c7c0e6f991c0fd9241d
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: 1e8a7977d09f("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