* [dpdk-dev] [PATCH] net/tap: ipc add check for number of messages received @ 2019-04-18 17:19 Herakliusz Lipiec 2019-04-18 17:19 ` Herakliusz Lipiec ` (2 more replies) 0 siblings, 3 replies; 12+ messages in thread From: Herakliusz Lipiec @ 2019-04-18 17:19 UTC (permalink / raw) To: Keith Wiles; +Cc: dev, Herakliusz Lipiec, rasland, stable A sucessfull call to rte_mp_request_sync does not guarantee that there are valid messages in the buffer, and this should be checked for before accessing data in the message. Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") Cc: rasland@mellanox.com Cc: stable@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> --- drivers/net/tap/rte_eth_tap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..a619a8850 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev) request.len_param = sizeof(*request_param); /* Send request and receive reply */ ret = rte_mp_request_sync(&request, &replies, &timeout); - if (ret < 0) { + if (ret < 0 || replies.n_receieved != 1) { TAP_LOG(ERR, "Failed to request queues from primary: %d", rte_errno); return -1; -- 2.17.2 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [dpdk-dev] [PATCH] net/tap: ipc add check for number of messages received 2019-04-18 17:19 [dpdk-dev] [PATCH] net/tap: ipc add check for number of messages received Herakliusz Lipiec @ 2019-04-18 17:19 ` Herakliusz Lipiec 2019-04-18 18:13 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit 2019-04-19 10:28 ` [dpdk-dev] [PATCH v2] " Herakliusz Lipiec 2 siblings, 0 replies; 12+ messages in thread From: Herakliusz Lipiec @ 2019-04-18 17:19 UTC (permalink / raw) To: Keith Wiles; +Cc: dev, Herakliusz Lipiec, rasland, stable A sucessfull call to rte_mp_request_sync does not guarantee that there are valid messages in the buffer, and this should be checked for before accessing data in the message. Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") Cc: rasland@mellanox.com Cc: stable@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> --- drivers/net/tap/rte_eth_tap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..a619a8850 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev) request.len_param = sizeof(*request_param); /* Send request and receive reply */ ret = rte_mp_request_sync(&request, &replies, &timeout); - if (ret < 0) { + if (ret < 0 || replies.n_receieved != 1) { TAP_LOG(ERR, "Failed to request queues from primary: %d", rte_errno); return -1; -- 2.17.2 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH] net/tap: ipc add check for number of messages received 2019-04-18 17:19 [dpdk-dev] [PATCH] net/tap: ipc add check for number of messages received Herakliusz Lipiec 2019-04-18 17:19 ` Herakliusz Lipiec @ 2019-04-18 18:13 ` Ferruh Yigit 2019-04-18 18:13 ` Ferruh Yigit 2019-04-19 16:39 ` Lipiec, Herakliusz 2019-04-19 10:28 ` [dpdk-dev] [PATCH v2] " Herakliusz Lipiec 2 siblings, 2 replies; 12+ messages in thread From: Ferruh Yigit @ 2019-04-18 18:13 UTC (permalink / raw) To: Herakliusz Lipiec, Keith Wiles; +Cc: dev, rasland, stable On 4/18/2019 6:19 PM, Herakliusz Lipiec wrote: > A sucessfull call to rte_mp_request_sync does not guarantee that there > are valid messages in the buffer, and this should be checked for before > accessing data in the message. > > Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") > Cc: rasland@mellanox.com > Cc: stable@dpdk.org > Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> > --- > drivers/net/tap/rte_eth_tap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c > index e9fda8cf6..a619a8850 100644 > --- a/drivers/net/tap/rte_eth_tap.c > +++ b/drivers/net/tap/rte_eth_tap.c > @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev) > request.len_param = sizeof(*request_param); > /* Send request and receive reply */ > ret = rte_mp_request_sync(&request, &replies, &timeout); > - if (ret < 0) { > + if (ret < 0 || replies.n_receieved != 1) { The API documentation says: || * @return || * - On success, return 0. || * - On failure, return -1, and the reason will be stored in rte_errno. So if the API returns 0, why the reply is not valid, also if reply is not valid how can you rely on a value in 'replies' What do you think updating the 'rte_mp_request_sync()' API to return error whenever the reply is not valid? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH] net/tap: ipc add check for number of messages received 2019-04-18 18:13 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit @ 2019-04-18 18:13 ` Ferruh Yigit 2019-04-19 16:39 ` Lipiec, Herakliusz 1 sibling, 0 replies; 12+ messages in thread From: Ferruh Yigit @ 2019-04-18 18:13 UTC (permalink / raw) To: Herakliusz Lipiec, Keith Wiles; +Cc: dev, rasland, stable On 4/18/2019 6:19 PM, Herakliusz Lipiec wrote: > A sucessfull call to rte_mp_request_sync does not guarantee that there > are valid messages in the buffer, and this should be checked for before > accessing data in the message. > > Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") > Cc: rasland@mellanox.com > Cc: stable@dpdk.org > Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> > --- > drivers/net/tap/rte_eth_tap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c > index e9fda8cf6..a619a8850 100644 > --- a/drivers/net/tap/rte_eth_tap.c > +++ b/drivers/net/tap/rte_eth_tap.c > @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev) > request.len_param = sizeof(*request_param); > /* Send request and receive reply */ > ret = rte_mp_request_sync(&request, &replies, &timeout); > - if (ret < 0) { > + if (ret < 0 || replies.n_receieved != 1) { The API documentation says: || * @return || * - On success, return 0. || * - On failure, return -1, and the reason will be stored in rte_errno. So if the API returns 0, why the reply is not valid, also if reply is not valid how can you rely on a value in 'replies' What do you think updating the 'rte_mp_request_sync()' API to return error whenever the reply is not valid? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH] net/tap: ipc add check for number of messages received 2019-04-18 18:13 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit 2019-04-18 18:13 ` Ferruh Yigit @ 2019-04-19 16:39 ` Lipiec, Herakliusz 2019-04-19 16:39 ` Lipiec, Herakliusz 2019-04-19 17:17 ` Ferruh Yigit 1 sibling, 2 replies; 12+ messages in thread From: Lipiec, Herakliusz @ 2019-04-19 16:39 UTC (permalink / raw) To: Yigit, Ferruh, Wiles, Keith; +Cc: dev, rasland, stable On 4/18/2019 7:13, Ferruh Yigit worte: > On 4/18/2019 6:19 PM, Herakliusz Lipiec wrote: > > A sucessfull call to rte_mp_request_sync does not guarantee that there > > are valid messages in the buffer, and this should be checked for > > before accessing data in the message. > > > > Fixes: c9aa56edec8e ("net/tap: access primary process queues from > > secondary") > > Cc: rasland@mellanox.com > > Cc: stable@dpdk.org > > Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> > > --- > > drivers/net/tap/rte_eth_tap.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/tap/rte_eth_tap.c > > b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..a619a8850 100644 > > --- a/drivers/net/tap/rte_eth_tap.c > > +++ b/drivers/net/tap/rte_eth_tap.c > > @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, > struct rte_eth_dev *dev) > > request.len_param = sizeof(*request_param); > > /* Send request and receive reply */ > > ret = rte_mp_request_sync(&request, &replies, &timeout); > > - if (ret < 0) { > > + if (ret < 0 || replies.n_receieved != 1) { > > The API documentation says: > > || * @return > > > > || * - On success, return 0. > > > > || * - On failure, return -1, and the reason will be stored in rte_errno. > > So if the API returns 0, why the reply is not valid, also if reply is not valid how > can you rely on a value in 'replies' > > What do you think updating the 'rte_mp_request_sync()' API to return error > whenever the reply is not valid? The reply is not valid, because there is no valid msg pointer in replies.msg (should be null) replies.nb_received should be either 0 (if replies carries no message) or 1 (if there is a message). There are two other code paths that can return a success, but have no (valid) message. In rte_mp_request_sync there is a call to mp_request_sync which may return 0 with no message in case of: - failure to send the message on behalf of remote - the caller not caring about reply message. I propose to add a check for nb_received to net/tap since this seems to be done in everywhere else when rte_mp_request_sync is called (this will do no harm), and also I think that return codes should be fixed, but that can be done irrelevant of this. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH] net/tap: ipc add check for number of messages received 2019-04-19 16:39 ` Lipiec, Herakliusz @ 2019-04-19 16:39 ` Lipiec, Herakliusz 2019-04-19 17:17 ` Ferruh Yigit 1 sibling, 0 replies; 12+ messages in thread From: Lipiec, Herakliusz @ 2019-04-19 16:39 UTC (permalink / raw) To: Yigit, Ferruh, Wiles, Keith; +Cc: dev, rasland, stable On 4/18/2019 7:13, Ferruh Yigit worte: > On 4/18/2019 6:19 PM, Herakliusz Lipiec wrote: > > A sucessfull call to rte_mp_request_sync does not guarantee that there > > are valid messages in the buffer, and this should be checked for > > before accessing data in the message. > > > > Fixes: c9aa56edec8e ("net/tap: access primary process queues from > > secondary") > > Cc: rasland@mellanox.com > > Cc: stable@dpdk.org > > Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> > > --- > > drivers/net/tap/rte_eth_tap.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/tap/rte_eth_tap.c > > b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..a619a8850 100644 > > --- a/drivers/net/tap/rte_eth_tap.c > > +++ b/drivers/net/tap/rte_eth_tap.c > > @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, > struct rte_eth_dev *dev) > > request.len_param = sizeof(*request_param); > > /* Send request and receive reply */ > > ret = rte_mp_request_sync(&request, &replies, &timeout); > > - if (ret < 0) { > > + if (ret < 0 || replies.n_receieved != 1) { > > The API documentation says: > > || * @return > > > > || * - On success, return 0. > > > > || * - On failure, return -1, and the reason will be stored in rte_errno. > > So if the API returns 0, why the reply is not valid, also if reply is not valid how > can you rely on a value in 'replies' > > What do you think updating the 'rte_mp_request_sync()' API to return error > whenever the reply is not valid? The reply is not valid, because there is no valid msg pointer in replies.msg (should be null) replies.nb_received should be either 0 (if replies carries no message) or 1 (if there is a message). There are two other code paths that can return a success, but have no (valid) message. In rte_mp_request_sync there is a call to mp_request_sync which may return 0 with no message in case of: - failure to send the message on behalf of remote - the caller not caring about reply message. I propose to add a check for nb_received to net/tap since this seems to be done in everywhere else when rte_mp_request_sync is called (this will do no harm), and also I think that return codes should be fixed, but that can be done irrelevant of this. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH] net/tap: ipc add check for number of messages received 2019-04-19 16:39 ` Lipiec, Herakliusz 2019-04-19 16:39 ` Lipiec, Herakliusz @ 2019-04-19 17:17 ` Ferruh Yigit 2019-04-19 17:17 ` Ferruh Yigit 1 sibling, 1 reply; 12+ messages in thread From: Ferruh Yigit @ 2019-04-19 17:17 UTC (permalink / raw) To: Lipiec, Herakliusz, Wiles, Keith; +Cc: dev, rasland, stable On 4/19/2019 5:39 PM, Lipiec, Herakliusz wrote: > On 4/18/2019 7:13, Ferruh Yigit worte: >> On 4/18/2019 6:19 PM, Herakliusz Lipiec wrote: >>> A sucessfull call to rte_mp_request_sync does not guarantee that there >>> are valid messages in the buffer, and this should be checked for >>> before accessing data in the message. >>> >>> Fixes: c9aa56edec8e ("net/tap: access primary process queues from >>> secondary") >>> Cc: rasland@mellanox.com >>> Cc: stable@dpdk.org >>> Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> >>> --- >>> drivers/net/tap/rte_eth_tap.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/tap/rte_eth_tap.c >>> b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..a619a8850 100644 >>> --- a/drivers/net/tap/rte_eth_tap.c >>> +++ b/drivers/net/tap/rte_eth_tap.c >>> @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, >> struct rte_eth_dev *dev) >>> request.len_param = sizeof(*request_param); >>> /* Send request and receive reply */ >>> ret = rte_mp_request_sync(&request, &replies, &timeout); >>> - if (ret < 0) { >>> + if (ret < 0 || replies.n_receieved != 1) { >> >> The API documentation says: >> >> || * @return >> >> >> >> || * - On success, return 0. >> >> >> >> || * - On failure, return -1, and the reason will be stored in rte_errno. >> >> So if the API returns 0, why the reply is not valid, also if reply is not valid how >> can you rely on a value in 'replies' >> >> What do you think updating the 'rte_mp_request_sync()' API to return error >> whenever the reply is not valid? > The reply is not valid, because there is no valid msg pointer in replies.msg (should be null) > replies.nb_received should be either 0 (if replies carries no message) or 1 (if there is a message). > > There are two other code paths that can return a success, but have no (valid) message. > In rte_mp_request_sync there is a call to mp_request_sync which may return 0 with no message in case of: > - failure to send the message on behalf of remote > - the caller not caring about reply message. > I propose to add a check for nb_received to net/tap since this seems to be done in everywhere > else when rte_mp_request_sync is called (this will do no harm), and also I think that return codes should be fixed, > but that can be done irrelevant of this. > I see, "replies.nb_received" can be relied on since it is set in the begging of the 'rte_mp_request_sync()' And I can see you have created a defect for the API fix [1], it is OK to get tap fix for rc2, but for next release it would be appreciated if you own the defect you have submitted. Thanks, ferruh [1] https://bugs.dpdk.org/show_bug.cgi?id=257 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH] net/tap: ipc add check for number of messages received 2019-04-19 17:17 ` Ferruh Yigit @ 2019-04-19 17:17 ` Ferruh Yigit 0 siblings, 0 replies; 12+ messages in thread From: Ferruh Yigit @ 2019-04-19 17:17 UTC (permalink / raw) To: Lipiec, Herakliusz, Wiles, Keith; +Cc: dev, rasland, stable On 4/19/2019 5:39 PM, Lipiec, Herakliusz wrote: > On 4/18/2019 7:13, Ferruh Yigit worte: >> On 4/18/2019 6:19 PM, Herakliusz Lipiec wrote: >>> A sucessfull call to rte_mp_request_sync does not guarantee that there >>> are valid messages in the buffer, and this should be checked for >>> before accessing data in the message. >>> >>> Fixes: c9aa56edec8e ("net/tap: access primary process queues from >>> secondary") >>> Cc: rasland@mellanox.com >>> Cc: stable@dpdk.org >>> Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> >>> --- >>> drivers/net/tap/rte_eth_tap.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/tap/rte_eth_tap.c >>> b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..a619a8850 100644 >>> --- a/drivers/net/tap/rte_eth_tap.c >>> +++ b/drivers/net/tap/rte_eth_tap.c >>> @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, >> struct rte_eth_dev *dev) >>> request.len_param = sizeof(*request_param); >>> /* Send request and receive reply */ >>> ret = rte_mp_request_sync(&request, &replies, &timeout); >>> - if (ret < 0) { >>> + if (ret < 0 || replies.n_receieved != 1) { >> >> The API documentation says: >> >> || * @return >> >> >> >> || * - On success, return 0. >> >> >> >> || * - On failure, return -1, and the reason will be stored in rte_errno. >> >> So if the API returns 0, why the reply is not valid, also if reply is not valid how >> can you rely on a value in 'replies' >> >> What do you think updating the 'rte_mp_request_sync()' API to return error >> whenever the reply is not valid? > The reply is not valid, because there is no valid msg pointer in replies.msg (should be null) > replies.nb_received should be either 0 (if replies carries no message) or 1 (if there is a message). > > There are two other code paths that can return a success, but have no (valid) message. > In rte_mp_request_sync there is a call to mp_request_sync which may return 0 with no message in case of: > - failure to send the message on behalf of remote > - the caller not caring about reply message. > I propose to add a check for nb_received to net/tap since this seems to be done in everywhere > else when rte_mp_request_sync is called (this will do no harm), and also I think that return codes should be fixed, > but that can be done irrelevant of this. > I see, "replies.nb_received" can be relied on since it is set in the begging of the 'rte_mp_request_sync()' And I can see you have created a defect for the API fix [1], it is OK to get tap fix for rc2, but for next release it would be appreciated if you own the defect you have submitted. Thanks, ferruh [1] https://bugs.dpdk.org/show_bug.cgi?id=257 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [dpdk-dev] [PATCH v2] net/tap: ipc add check for number of messages received 2019-04-18 17:19 [dpdk-dev] [PATCH] net/tap: ipc add check for number of messages received Herakliusz Lipiec 2019-04-18 17:19 ` Herakliusz Lipiec 2019-04-18 18:13 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit @ 2019-04-19 10:28 ` Herakliusz Lipiec 2019-04-19 10:28 ` Herakliusz Lipiec 2019-04-19 17:37 ` Ferruh Yigit 2 siblings, 2 replies; 12+ messages in thread From: Herakliusz Lipiec @ 2019-04-19 10:28 UTC (permalink / raw) To: Keith Wiles; +Cc: dev, ferruh.yigit, Herakliusz Lipiec, rasland, stable A sucessfull call to rte_mp_request_sync does not guarantee that there are any messages in the buffer, and this should be checked for before accessing data in the message. Buffer can be empty if IPC is disabled or if we deciede to ignore replies. Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") Cc: rasland@mellanox.com Cc: stable@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> --- drivers/net/tap/rte_eth_tap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..7f74b5dc9 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev) request.len_param = sizeof(*request_param); /* Send request and receive reply */ ret = rte_mp_request_sync(&request, &replies, &timeout); - if (ret < 0) { + if (ret < 0 || replies.nb_received != 1) { TAP_LOG(ERR, "Failed to request queues from primary: %d", rte_errno); return -1; -- 2.17.2 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [dpdk-dev] [PATCH v2] net/tap: ipc add check for number of messages received 2019-04-19 10:28 ` [dpdk-dev] [PATCH v2] " Herakliusz Lipiec @ 2019-04-19 10:28 ` Herakliusz Lipiec 2019-04-19 17:37 ` Ferruh Yigit 1 sibling, 0 replies; 12+ messages in thread From: Herakliusz Lipiec @ 2019-04-19 10:28 UTC (permalink / raw) To: Keith Wiles; +Cc: dev, ferruh.yigit, Herakliusz Lipiec, rasland, stable A sucessfull call to rte_mp_request_sync does not guarantee that there are any messages in the buffer, and this should be checked for before accessing data in the message. Buffer can be empty if IPC is disabled or if we deciede to ignore replies. Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") Cc: rasland@mellanox.com Cc: stable@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> --- drivers/net/tap/rte_eth_tap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index e9fda8cf6..7f74b5dc9 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -2101,7 +2101,7 @@ tap_mp_attach_queues(const char *port_name, struct rte_eth_dev *dev) request.len_param = sizeof(*request_param); /* Send request and receive reply */ ret = rte_mp_request_sync(&request, &replies, &timeout); - if (ret < 0) { + if (ret < 0 || replies.nb_received != 1) { TAP_LOG(ERR, "Failed to request queues from primary: %d", rte_errno); return -1; -- 2.17.2 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH v2] net/tap: ipc add check for number of messages received 2019-04-19 10:28 ` [dpdk-dev] [PATCH v2] " Herakliusz Lipiec 2019-04-19 10:28 ` Herakliusz Lipiec @ 2019-04-19 17:37 ` Ferruh Yigit 2019-04-19 17:37 ` Ferruh Yigit 1 sibling, 1 reply; 12+ messages in thread From: Ferruh Yigit @ 2019-04-19 17:37 UTC (permalink / raw) To: Herakliusz Lipiec, Keith Wiles; +Cc: dev, rasland, stable On 4/19/2019 11:28 AM, Herakliusz Lipiec wrote: > A sucessfull call to rte_mp_request_sync does not guarantee that there > are any messages in the buffer, and this should be checked for before > accessing data in the message. Buffer can be empty if IPC is disabled or > if we deciede to ignore replies. > > Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") > Cc: rasland@mellanox.com > Cc: stable@dpdk.org > Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Applied to dpdk-next-net/master, thanks. (https://bugs.dpdk.org/show_bug.cgi?id=257 created for the API) ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [dpdk-dev] [PATCH v2] net/tap: ipc add check for number of messages received 2019-04-19 17:37 ` Ferruh Yigit @ 2019-04-19 17:37 ` Ferruh Yigit 0 siblings, 0 replies; 12+ messages in thread From: Ferruh Yigit @ 2019-04-19 17:37 UTC (permalink / raw) To: Herakliusz Lipiec, Keith Wiles; +Cc: dev, rasland, stable On 4/19/2019 11:28 AM, Herakliusz Lipiec wrote: > A sucessfull call to rte_mp_request_sync does not guarantee that there > are any messages in the buffer, and this should be checked for before > accessing data in the message. Buffer can be empty if IPC is disabled or > if we deciede to ignore replies. > > Fixes: c9aa56edec8e ("net/tap: access primary process queues from secondary") > Cc: rasland@mellanox.com > Cc: stable@dpdk.org > Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Applied to dpdk-next-net/master, thanks. (https://bugs.dpdk.org/show_bug.cgi?id=257 created for the API) ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2019-04-19 17:37 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-04-18 17:19 [dpdk-dev] [PATCH] net/tap: ipc add check for number of messages received Herakliusz Lipiec 2019-04-18 17:19 ` Herakliusz Lipiec 2019-04-18 18:13 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit 2019-04-18 18:13 ` Ferruh Yigit 2019-04-19 16:39 ` Lipiec, Herakliusz 2019-04-19 16:39 ` Lipiec, Herakliusz 2019-04-19 17:17 ` Ferruh Yigit 2019-04-19 17:17 ` Ferruh Yigit 2019-04-19 10:28 ` [dpdk-dev] [PATCH v2] " Herakliusz Lipiec 2019-04-19 10:28 ` Herakliusz Lipiec 2019-04-19 17:37 ` Ferruh Yigit 2019-04-19 17:37 ` Ferruh Yigit
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).