Message ID | 1605208207-1896-2-git-send-email-tlfalcon@linux.ibm.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | ibmvnic: Performance improvements and other updates | expand |
On 2020-11-12 11:09, Thomas Falcon wrote: > Ensure that received Subordinate Command-Response Queue > entries are properly read in order by the driver. > > Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com> Acked-by: Dany Madden <drt@linux.ibm.com> > --- > drivers/net/ethernet/ibm/ibmvnic.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/ethernet/ibm/ibmvnic.c > b/drivers/net/ethernet/ibm/ibmvnic.c > index da15913879f8..5647f54bf387 100644 > --- a/drivers/net/ethernet/ibm/ibmvnic.c > +++ b/drivers/net/ethernet/ibm/ibmvnic.c > @@ -2391,6 +2391,8 @@ static int ibmvnic_poll(struct napi_struct > *napi, int budget) > > if (!pending_scrq(adapter, adapter->rx_scrq[scrq_num])) > break; > + /* ensure that we do not prematurely exit the polling loop */ > + dma_rmb(); > next = ibmvnic_next_scrq(adapter, adapter->rx_scrq[scrq_num]); > rx_buff = > (struct ibmvnic_rx_buff *)be64_to_cpu(next-> > @@ -3087,6 +3089,8 @@ static int ibmvnic_complete_tx(struct > ibmvnic_adapter *adapter, > int num_entries = 0; > > next = ibmvnic_next_scrq(adapter, scrq); > + /* ensure that we are reading the correct queue entry */ > + dma_rmb(); > for (i = 0; i < next->tx_comp.num_comps; i++) { > if (next->tx_comp.rcs[i]) { > dev_err(dev, "tx error %x\n",
Reviewed-by: Brian King <brking@linux.vnet.ibm.com>
On Thu, 12 Nov 2020 13:09:56 -0600 Thomas Falcon wrote: > Ensure that received Subordinate Command-Response Queue > entries are properly read in order by the driver. > > Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com> Are you sure this is not a bug fix?
On 11/14/20 5:35 PM, Jakub Kicinski wrote: > On Thu, 12 Nov 2020 13:09:56 -0600 Thomas Falcon wrote: >> Ensure that received Subordinate Command-Response Queue >> entries are properly read in order by the driver. >> >> Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com> > Are you sure this is not a bug fix? Yes, I guess it does look like a bug fix. I can omit this in v2 and submit this as a stand-alone patch to net?
On Mon, 16 Nov 2020 12:28:05 -0600 Thomas Falcon wrote: > On 11/14/20 5:35 PM, Jakub Kicinski wrote: > > On Thu, 12 Nov 2020 13:09:56 -0600 Thomas Falcon wrote: > >> Ensure that received Subordinate Command-Response Queue > >> entries are properly read in order by the driver. > >> > >> Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com> > > Are you sure this is not a bug fix? > Yes, I guess it does look like a bug fix. I can omit this in v2 and > submit this as a stand-alone patch to net? Yup, that's the preferred way. Thanks!
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index da15913879f8..5647f54bf387 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -2391,6 +2391,8 @@ static int ibmvnic_poll(struct napi_struct *napi, int budget) if (!pending_scrq(adapter, adapter->rx_scrq[scrq_num])) break; + /* ensure that we do not prematurely exit the polling loop */ + dma_rmb(); next = ibmvnic_next_scrq(adapter, adapter->rx_scrq[scrq_num]); rx_buff = (struct ibmvnic_rx_buff *)be64_to_cpu(next-> @@ -3087,6 +3089,8 @@ static int ibmvnic_complete_tx(struct ibmvnic_adapter *adapter, int num_entries = 0; next = ibmvnic_next_scrq(adapter, scrq); + /* ensure that we are reading the correct queue entry */ + dma_rmb(); for (i = 0; i < next->tx_comp.num_comps; i++) { if (next->tx_comp.rcs[i]) { dev_err(dev, "tx error %x\n",
Ensure that received Subordinate Command-Response Queue entries are properly read in order by the driver. Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 4 ++++ 1 file changed, 4 insertions(+)