net/sfc: fix build when assert enabled

Message ID 20211013152027.2480175-1-ferruh.yigit@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series net/sfc: fix build when assert enabled |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-testing warning apply patch failure

Commit Message

Ferruh Yigit Oct. 13, 2021, 3:20 p.m. UTC
  When 'RTE_ENABLE_ASSERT' is enabled (meson -Dc_args=-DRTE_ENABLE_ASSERT)
build fails:
../drivers/net/sfc/sfc_repr.c: In function ‘sfc_repr_start’:
../drivers/net/sfc/sfc_repr.c:251:20:
    warning: implicit declaration of function ‘sfc_repr_lock_is_locked’;
    did you mean ‘rte_spinlock_is_locked’?
    [-Wimplicit-function-declaration]
  251 |         SFC_ASSERT(sfc_repr_lock_is_locked(sr));
      |                    ^~~~~~~~~~~~~~~~~~~~~~~

Fixes: c85675423f01 ("net/sfc: implement port representor start and stop")

Reported-by: Raslan Darawsheh <rasland@nvidia.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
Cc: igor.romanov@oktetlabs.ru

The patch that cause the build error is still in next-net, if the patch
is good it can be squashed into the relevant patch in next-net.
---
 drivers/net/sfc/sfc_repr.c | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Comments

Andrew Rybchenko Oct. 13, 2021, 4:35 p.m. UTC | #1
On 10/13/21 6:20 PM, Ferruh Yigit wrote:
> When 'RTE_ENABLE_ASSERT' is enabled (meson -Dc_args=-DRTE_ENABLE_ASSERT)
> build fails:
> ../drivers/net/sfc/sfc_repr.c: In function ‘sfc_repr_start’:
> ../drivers/net/sfc/sfc_repr.c:251:20:
>      warning: implicit declaration of function ‘sfc_repr_lock_is_locked’;
>      did you mean ‘rte_spinlock_is_locked’?
>      [-Wimplicit-function-declaration]
>    251 |         SFC_ASSERT(sfc_repr_lock_is_locked(sr));
>        |                    ^~~~~~~~~~~~~~~~~~~~~~~
> 
> Fixes: c85675423f01 ("net/sfc: implement port representor start and stop")
> 
> Reported-by: Raslan Darawsheh <rasland@nvidia.com>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>

I'm sorry for the breakage. I've sent v2 which avoid usage of
conditional compilation in function body. I'd prefer to fix
the problem this way. Yes, it is a bit less straight-forward,
but still preferable.

Andrew.
  
Ferruh Yigit Oct. 13, 2021, 4:50 p.m. UTC | #2
On 10/13/2021 5:35 PM, Andrew Rybchenko wrote:
> On 10/13/21 6:20 PM, Ferruh Yigit wrote:
>> When 'RTE_ENABLE_ASSERT' is enabled (meson -Dc_args=-DRTE_ENABLE_ASSERT)
>> build fails:
>> ../drivers/net/sfc/sfc_repr.c: In function ‘sfc_repr_start’:
>> ../drivers/net/sfc/sfc_repr.c:251:20:
>>      warning: implicit declaration of function ‘sfc_repr_lock_is_locked’;
>>      did you mean ‘rte_spinlock_is_locked’?
>>      [-Wimplicit-function-declaration]
>>    251 |         SFC_ASSERT(sfc_repr_lock_is_locked(sr));
>>        |                    ^~~~~~~~~~~~~~~~~~~~~~~
>>
>> Fixes: c85675423f01 ("net/sfc: implement port representor start and stop")
>>
>> Reported-by: Raslan Darawsheh <rasland@nvidia.com>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> I'm sorry for the breakage. I've sent v2 which avoid usage of
> conditional compilation in function body. I'd prefer to fix
> the problem this way. Yes, it is a bit less straight-forward,
> but still preferable.
> 

ack, agreed that v2 looks better, I will test and squash it.
  

Patch

diff --git a/drivers/net/sfc/sfc_repr.c b/drivers/net/sfc/sfc_repr.c
index 6ec83873abd1..02131ce3675d 100644
--- a/drivers/net/sfc/sfc_repr.c
+++ b/drivers/net/sfc/sfc_repr.c
@@ -248,7 +248,9 @@  sfc_repr_start(struct rte_eth_dev *dev)
 
 	sfcr_info(sr, "entry");
 
+#ifdef RTE_LIBRTE_SFC_EFX_DEBUG
 	SFC_ASSERT(sfc_repr_lock_is_locked(sr));
+#endif
 
 	switch (sr->state) {
 	case SFC_ETHDEV_CONFIGURED:
@@ -319,7 +321,9 @@  sfc_repr_stop(struct rte_eth_dev *dev)
 
 	sfcr_info(sr, "entry");
 
+#ifdef RTE_LIBRTE_SFC_EFX_DEBUG
 	SFC_ASSERT(sfc_repr_lock_is_locked(sr));
+#endif
 
 	switch (sr->state) {
 	case SFC_ETHDEV_STARTED:
@@ -477,7 +481,9 @@  sfc_repr_configure(struct sfc_repr *sr, uint16_t nb_rx_queues,
 
 	sfcr_info(sr, "entry");
 
+#ifdef RTE_LIBRTE_SFC_EFX_DEBUG
 	SFC_ASSERT(sfc_repr_lock_is_locked(sr));
+#endif
 
 	ret = sfc_repr_check_conf(sr, nb_rx_queues, conf);
 	if (ret != 0)
@@ -786,7 +792,9 @@  sfc_repr_tx_queue_release(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 static void
 sfc_repr_close(struct sfc_repr *sr)
 {
+#ifdef RTE_LIBRTE_SFC_EFX_DEBUG
 	SFC_ASSERT(sfc_repr_lock_is_locked(sr));
+#endif
 
 	SFC_ASSERT(sr->state == SFC_ETHDEV_CONFIGURED);
 	sr->state = SFC_ETHDEV_CLOSING;