[v3,1/5] pdump: fix setting rte_errno on mp error
Checks
Commit Message
The response from MP server sets err_value to negative
on error. The convention for rte_errno is to use a positive
value on error. This makes errors like duplicate registration
show up with the correct error value.
Fixes: 660098d61f57 ("pdump: use generic multi-process channel")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
lib/pdump/rte_pdump.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
> From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> Sent: Wednesday, 8 November 2023 19.36
>
> The response from MP server sets err_value to negative
> on error. The convention for rte_errno is to use a positive
> value on error. This makes errors like duplicate registration
> show up with the correct error value.
>
> Fixes: 660098d61f57 ("pdump: use generic multi-process channel")
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
Acked-by: Morten Brørup <mb@smartsharesystems.com>
@@ -564,9 +564,10 @@ pdump_prepare_client_request(const char *device, uint16_t queue,
if (rte_mp_request_sync(&mp_req, &mp_reply, &ts) == 0) {
mp_rep = &mp_reply.msgs[0];
resp = (struct pdump_response *)mp_rep->param;
- rte_errno = resp->err_value;
- if (!resp->err_value)
+ if (resp->err_value == 0)
ret = 0;
+ else
+ rte_errno = -resp->err_value;
free(mp_reply.msgs);
}