From: Dave Jiang Date: Tue, 22 Aug 2023 16:04:57 +0000 (-0700) Subject: ntb: Fix calculation ntb_transport_tx_free_entry() X-Git-Tag: v6.6.17~3951^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a7693e6bbf19b22fd6c1d2c4b7beb0a03969e2c;p=platform%2Fkernel%2Flinux-rpi.git ntb: Fix calculation ntb_transport_tx_free_entry() ntb_transport_tx_free_entry() never returns 0 with the current calculation. If head == tail, then it would return qp->tx_max_entry. Change compare to tail >= head and when they are equal, a 0 would be returned. Fixes: e74bfeedad08 ("NTB: Add flow control to the ntb_netdev") Reviewed-by: Logan Gunthorpe Signed-off-by: renlonglong Signed-off-by: Dave Jiang Signed-off-by: Jon Mason --- diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c index 7884ea9..9532108 100644 --- a/drivers/ntb/ntb_transport.c +++ b/drivers/ntb/ntb_transport.c @@ -2429,7 +2429,7 @@ unsigned int ntb_transport_tx_free_entry(struct ntb_transport_qp *qp) unsigned int head = qp->tx_index; unsigned int tail = qp->remote_rx_info->entry; - return tail > head ? tail - head : qp->tx_max_entry + tail - head; + return tail >= head ? tail - head : qp->tx_max_entry + tail - head; } EXPORT_SYMBOL_GPL(ntb_transport_tx_free_entry);