[PATCH net-next 01/12] ibmvnic: Ensure that subCRQ entry reads are ordered
Ensure that received Subordinate Command-Response Queue entries are properly read in order by the driver. Signed-off-by: Thomas Falcon --- 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", -- 2.26.2
Re: [PATCH net-next 01/12] ibmvnic: Ensure that subCRQ entry reads are ordered
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 Acked-by: Dany Madden --- 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",
Re: [PATCH net-next 01/12] ibmvnic: Ensure that subCRQ entry reads are ordered
Reviewed-by: Brian King -- Brian King Power Linux I/O IBM Linux Technology Center
Re: [PATCH net-next 01/12] ibmvnic: Ensure that subCRQ entry reads are ordered
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 Are you sure this is not a bug fix?
Re: [PATCH net-next 01/12] ibmvnic: Ensure that subCRQ entry reads are ordered
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 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?
Re: [PATCH net-next 01/12] ibmvnic: Ensure that subCRQ entry reads are ordered
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 > > 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!