[dpdk-dev] examples/quota_watermark: fix wrong function type casing
Checks
Commit Message
make pipeline_stage() and send_stage() as lcore_function_t.
Found this issue with gcc 8.1.
examples/quota_watermark/qw/main.c: In function ‘main’:
examples/quota_watermark/qw/main.c:350:26: error: cast between
incompatible function types from ‘void (*)(void *)’ to
‘int (*)(void *)’ [-Werror=cast-function-type]
rte_eal_remote_launch((int (*)(void *))pipeline_stage,
^
examples/quota_watermark/qw/main.c:357:24: error: cast between
incompatible function types from ‘void (*)(void *)’ to
‘int (*)(void *)’ [-Werror=cast-function-type]
rte_eal_remote_launch((int (*)(void *))send_stage, NULL, last_lcore_id);
Cc: bruce.richardson@intel.com
Cc: stable@dpdk.org
Fixes: 1d6c3ee3321a ("examples/quota_watermark: initial import")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
examples/quota_watermark/qw/main.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
Comments
Hi Jerin,
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jerin Jacob
> Sent: Thursday, May 10, 2018 10:05 AM
> To: dev@dpdk.org
> Cc: thomas@monjalon.net; andy@warmcat.com; Jerin Jacob
> <jerin.jacob@caviumnetworks.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] examples/quota_watermark: fix wrong function
> type casing
>
> make pipeline_stage() and send_stage() as lcore_function_t.
> Found this issue with gcc 8.1.
>
> examples/quota_watermark/qw/main.c: In function ‘main’:
> examples/quota_watermark/qw/main.c:350:26: error: cast between
> incompatible function types from ‘void (*)(void *)’ to ‘int (*)(void *)’ [-
> Werror=cast-function-type] rte_eal_remote_launch((int (*)(void
> *))pipeline_stage,
> ^
> examples/quota_watermark/qw/main.c:357:24: error: cast between
> incompatible function types from ‘void (*)(void *)’ to ‘int (*)(void *)’ [-
> Werror=cast-function-type] rte_eal_remote_launch((int (*)(void *))send_stage,
> NULL, last_lcore_id);
>
> Cc: bruce.richardson@intel.com
> Cc: stable@dpdk.org
>
> Fixes: 1d6c3ee3321a ("examples/quota_watermark: initial import")
There is already a fix for this:
http://dpdk.org/dev/patchwork/patch/39564/
@@ -181,7 +181,7 @@ receive_stage(__attribute__((unused)) void *args)
}
}
-static void
+static int
pipeline_stage(__attribute__((unused)) void *args)
{
int i, ret;
@@ -243,9 +243,11 @@ pipeline_stage(__attribute__((unused)) void *args)
}
}
}
+
+ return 0;
}
-static void
+static int
send_stage(__attribute__((unused)) void *args)
{
uint16_t nb_dq_pkts;
@@ -287,6 +289,8 @@ send_stage(__attribute__((unused)) void *args)
/* TODO: Check if nb_dq_pkts == nb_tx_pkts? */
}
}
+
+ return 0;
}
int
@@ -346,15 +350,11 @@ main(int argc, char **argv)
if (is_bit_set(port_id, portmask))
init_ring(lcore_id, port_id);
- /* typecast is a workaround for GCC 4.3 bug */
- rte_eal_remote_launch((int (*)(void *))pipeline_stage,
- NULL, lcore_id);
+ rte_eal_remote_launch(pipeline_stage, NULL, lcore_id);
}
}
- /* Start send_stage() on the last slave core */
- /* typecast is a workaround for GCC 4.3 bug */
- rte_eal_remote_launch((int (*)(void *))send_stage, NULL, last_lcore_id);
+ rte_eal_remote_launch(send_stage, NULL, last_lcore_id);
/* Start receive_stage() on the master core */
receive_stage(NULL);