net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case
authorTomonori Sakita <tomonori.sakita@sord.co.jp>
Fri, 25 Jan 2019 02:02:22 +0000 (11:02 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Mar 2019 21:02:29 +0000 (14:02 -0700)
commitc91f641625a74aa0d978f2f0c620f98b87784a03
tree46aca47722b9334f15682b009e62f9265f6d59db
parent419bb616e9eadbcc9faf1dd58e12e2bb13fcf500
net: altera_tse: fix msgdma_tx_completion on non-zero fill_level case

[ Upstream commit 6571ebce112a21ec9be68ef2f53b96fcd41fd81b ]

If fill_level was not zero and status was not BUSY,
result of "tx_prod - tx_cons - inuse" might be zero.
Subtracting 1 unconditionally results invalid negative return value
on this case.
Make sure not to return an negative value.

Signed-off-by: Tomonori Sakita <tomonori.sakita@sord.co.jp>
Signed-off-by: Atsushi Nemoto <atsushi.nemoto@sord.co.jp>
Reviewed-by: Dalon L Westergreen <dalon.westergreen@linux.intel.com>
Acked-by: Thor Thayer <thor.thayer@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/altera/altera_msgdma.c