All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] ibmvnic: fix rx buffer tracking and index management in replenish_rx_pool partial success
@ 2020-12-10  1:53 Dany Madden
  2020-12-10  3:07 ` David Miller
  0 siblings, 1 reply; 2+ messages in thread
From: Dany Madden @ 2020-12-10  1:53 UTC (permalink / raw)
  To: davem, kuba; +Cc: dnbanerg, drt, ljp, sukadev, netdev

From: "Dwip N. Banerjee" <dnbanerg@us.ibm.com>

We observed that in the error case for batched send_subcrq_indirect() the
driver does not account for the partial success case. This caused Linux to
crash when free_map and pool index are inconsistent.

Driver needs to update the rx pools "available" count when some batched
sends worked but an error was encountered as part of the whole operation.
Also track replenish_add_buff_failure for statistic purposes.

Fixes: 4f0b6812e9b9a ("ibmvnic: Introduce batched RX buffer descriptor transmission")
Signed-off-by: Dwip N. Banerjee <dnbanerg@us.ibm.com>
Reviewed-by: Dany Madden <drt@linux.ibm.com>
---
 drivers/net/ethernet/ibm/ibmvnic.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
index cb701a6c0712..a2191392ca4f 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -398,6 +398,8 @@ static void replenish_rx_pool(struct ibmvnic_adapter *adapter,
 		dev_kfree_skb_any(pool->rx_buff[index].skb);
 		pool->rx_buff[index].skb = NULL;
 	}
+	adapter->replenish_add_buff_failure += ind_bufp->index;
+	atomic_add(buffers_added, &pool->available);
 	ind_bufp->index = 0;
 	if (lpar_rc == H_CLOSED || adapter->failover_pending) {
 		/* Disable buffer pool replenishment and report carrier off if
-- 
2.18.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH net-next] ibmvnic: fix rx buffer tracking and index management in replenish_rx_pool partial success
  2020-12-10  1:53 [PATCH net-next] ibmvnic: fix rx buffer tracking and index management in replenish_rx_pool partial success Dany Madden
@ 2020-12-10  3:07 ` David Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2020-12-10  3:07 UTC (permalink / raw)
  To: drt; +Cc: kuba, dnbanerg, ljp, sukadev, netdev

From: Dany Madden <drt@linux.ibm.com>
Date: Wed,  9 Dec 2020 20:53:31 -0500

> From: "Dwip N. Banerjee" <dnbanerg@us.ibm.com>
> 
> We observed that in the error case for batched send_subcrq_indirect() the
> driver does not account for the partial success case. This caused Linux to
> crash when free_map and pool index are inconsistent.
> 
> Driver needs to update the rx pools "available" count when some batched
> sends worked but an error was encountered as part of the whole operation.
> Also track replenish_add_buff_failure for statistic purposes.
> 
> Fixes: 4f0b6812e9b9a ("ibmvnic: Introduce batched RX buffer descriptor transmission")
> Signed-off-by: Dwip N. Banerjee <dnbanerg@us.ibm.com>
> Reviewed-by: Dany Madden <drt@linux.ibm.com>

Applied, thanks.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-12-10  3:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-10  1:53 [PATCH net-next] ibmvnic: fix rx buffer tracking and index management in replenish_rx_pool partial success Dany Madden
2020-12-10  3:07 ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.