net/ena: fix deadlock in RSS reta update

Message ID 20230105135733.4162954-1-david.marchand@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/ena: fix deadlock in RSS reta update |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-testing fail Testing issues
ci/iol-x86_64-unit-testing fail Testing issues
ci/iol-x86_64-compile-testing success Testing PASS
ci/loongarch-unit-testing success Unit Testing PASS
ci/loongarch-compilation success Compilation OK
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/intel-Testing success Testing PASS

Commit Message

David Marchand Jan. 5, 2023, 1:57 p.m. UTC
  Add missing lock release in case of internal failure.

Fixes: e3595539e0e0 ("net/ena: proxy AQ calls to primary process")
Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/ena/ena_rss.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Zhang, Fan Jan. 5, 2023, 2:05 p.m. UTC | #1
On 1/5/2023 1:57 PM, David Marchand wrote:
> Add missing lock release in case of internal failure.
>
> Fixes: e3595539e0e0 ("net/ena: proxy AQ calls to primary process")
> Cc: stable@dpdk.org
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
>   drivers/net/ena/ena_rss.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ena/ena_rss.c b/drivers/net/ena/ena_rss.c
> index b682d01c20..d0ba9d5c0a 100644
> --- a/drivers/net/ena/ena_rss.c
> +++ b/drivers/net/ena/ena_rss.c
> @@ -105,6 +105,7 @@ int ena_rss_reta_update(struct rte_eth_dev *dev,
>   			if (unlikely(rc != 0)) {
>   				PMD_DRV_LOG(ERR,
>   					"Cannot fill indirection table\n");
> +				rte_spinlock_unlock(&adapter->admin_lock);
>   				return rc;
>   			}
>   		}
Acked-by: Fan Zhang <fanzhang.oss@gmail.com>
  
Ferruh Yigit Jan. 6, 2023, 8:58 p.m. UTC | #2
On 1/5/2023 2:05 PM, Zhang, Fan wrote:
> 
> On 1/5/2023 1:57 PM, David Marchand wrote:
>> Add missing lock release in case of internal failure.
>>
>> Fixes: e3595539e0e0 ("net/ena: proxy AQ calls to primary process")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>> ---
>>   drivers/net/ena/ena_rss.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/net/ena/ena_rss.c b/drivers/net/ena/ena_rss.c
>> index b682d01c20..d0ba9d5c0a 100644
>> --- a/drivers/net/ena/ena_rss.c
>> +++ b/drivers/net/ena/ena_rss.c
>> @@ -105,6 +105,7 @@ int ena_rss_reta_update(struct rte_eth_dev *dev,
>>               if (unlikely(rc != 0)) {
>>                   PMD_DRV_LOG(ERR,
>>                       "Cannot fill indirection table\n");
>> +                rte_spinlock_unlock(&adapter->admin_lock);
>>                   return rc;
>>               }
>>           }
> Acked-by: Fan Zhang <fanzhang.oss@gmail.com>

Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/ena/ena_rss.c b/drivers/net/ena/ena_rss.c
index b682d01c20..d0ba9d5c0a 100644
--- a/drivers/net/ena/ena_rss.c
+++ b/drivers/net/ena/ena_rss.c
@@ -105,6 +105,7 @@  int ena_rss_reta_update(struct rte_eth_dev *dev,
 			if (unlikely(rc != 0)) {
 				PMD_DRV_LOG(ERR,
 					"Cannot fill indirection table\n");
+				rte_spinlock_unlock(&adapter->admin_lock);
 				return rc;
 			}
 		}