| From f195a1a6fe416882984f8bd6c61afc1383171860 Mon Sep 17 00:00:00 2001 |
| From: Dave Jiang <dave.jiang@intel.com> |
| Date: Tue, 22 Aug 2023 09:04:51 -0700 |
| Subject: ntb: Drop packets when qp link is down |
| |
| From: Dave Jiang <dave.jiang@intel.com> |
| |
| commit f195a1a6fe416882984f8bd6c61afc1383171860 upstream. |
| |
| Currently when the transport receive packets after netdev has closed the |
| transport returns error and triggers tx errors to be incremented and |
| carrier to be stopped. There is no reason to return error if the device is |
| already closed. Drop the packet and return 0. |
| |
| Fixes: e26a5843f7f5 ("NTB: Split ntb_hw_intel and ntb_transport drivers") |
| Reported-by: Yuan Y Lu <yuan.y.lu@intel.com> |
| Tested-by: Yuan Y Lu <yuan.y.lu@intel.com> |
| Reviewed-by: Logan Gunthorpe <logang@deltatee.com> |
| Signed-off-by: Dave Jiang <dave.jiang@intel.com> |
| Signed-off-by: Jon Mason <jdmason@kudzu.us> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/ntb/ntb_transport.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/ntb/ntb_transport.c |
| +++ b/drivers/ntb/ntb_transport.c |
| @@ -2046,9 +2046,13 @@ int ntb_transport_tx_enqueue(struct ntb_ |
| struct ntb_queue_entry *entry; |
| int rc; |
| |
| - if (!qp || !qp->link_is_up || !len) |
| + if (!qp || !len) |
| return -EINVAL; |
| |
| + /* If the qp link is down already, just ignore. */ |
| + if (!qp->link_is_up) |
| + return 0; |
| + |
| entry = ntb_list_rm(&qp->ntb_tx_free_q_lock, &qp->tx_free_q); |
| if (!entry) { |
| qp->tx_err_no_buf++; |