Message ID | 1593437165-18065-1-git-send-email-hkalra@marvell.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Jerin Jacob |
Headers | show |
Series | [v2] common/octeontx2: fix seg fault on running procinfo | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/iol-broadcom-Performance | success | Performance Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/iol-nxp-Performance | success | Performance Testing PASS |
ci/Intel-compilation | success | Compilation OK |
ci/travis-robot | success | Travis build: passed |
ci/iol-testing | success | Testing PASS |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
On Mon, Jun 29, 2020 at 6:56 PM Harman Kalra <hkalra@marvell.com> wrote: > > Segmentation fault has been observed while running procinfo > with reset options i.e. --stats-reset and --xstats-reset. > Reason is procinfo runs as a secondary process and tries to > hold a lock which is part of struct mdev, which was not > allocated as part of shared memory. > > Fixes: 5ca59711f771 ("common/octeontx2: add mailbox base support infra") > Cc: stable@dpdk.org > > Signed-off-by: Harman Kalra <hkalra@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Delegated this patch to Thomas as it belongs to common/ > --- > *V2: Minor corrections in commit message. > > drivers/common/octeontx2/otx2_mbox.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/common/octeontx2/otx2_mbox.c b/drivers/common/octeontx2/otx2_mbox.c > index 2b7810929..6df1e8ea6 100644 > --- a/drivers/common/octeontx2/otx2_mbox.c > +++ b/drivers/common/octeontx2/otx2_mbox.c > @@ -9,6 +9,7 @@ > > #include <rte_atomic.h> > #include <rte_cycles.h> > +#include <rte_malloc.h> > > #include "otx2_mbox.h" > #include "otx2_dev.h" > @@ -36,7 +37,7 @@ otx2_mbox_fini(struct otx2_mbox *mbox) > { > mbox->reg_base = 0; > mbox->hwbase = 0; > - free(mbox->dev); > + rte_free(mbox->dev); > mbox->dev = NULL; > } > > @@ -128,7 +129,9 @@ otx2_mbox_init(struct otx2_mbox *mbox, uintptr_t hwbase, uintptr_t reg_base, > return -ENODEV; > } > > - mbox->dev = malloc(ndevs * sizeof(struct otx2_mbox_dev)); > + mbox->dev = rte_zmalloc("mbox dev", > + ndevs * sizeof(struct otx2_mbox_dev), > + OTX2_ALIGN); > if (!mbox->dev) { > otx2_mbox_fini(mbox); > return -ENOMEM; > -- > 2.18.0 >
diff --git a/drivers/common/octeontx2/otx2_mbox.c b/drivers/common/octeontx2/otx2_mbox.c index 2b7810929..6df1e8ea6 100644 --- a/drivers/common/octeontx2/otx2_mbox.c +++ b/drivers/common/octeontx2/otx2_mbox.c @@ -9,6 +9,7 @@ #include <rte_atomic.h> #include <rte_cycles.h> +#include <rte_malloc.h> #include "otx2_mbox.h" #include "otx2_dev.h" @@ -36,7 +37,7 @@ otx2_mbox_fini(struct otx2_mbox *mbox) { mbox->reg_base = 0; mbox->hwbase = 0; - free(mbox->dev); + rte_free(mbox->dev); mbox->dev = NULL; } @@ -128,7 +129,9 @@ otx2_mbox_init(struct otx2_mbox *mbox, uintptr_t hwbase, uintptr_t reg_base, return -ENODEV; } - mbox->dev = malloc(ndevs * sizeof(struct otx2_mbox_dev)); + mbox->dev = rte_zmalloc("mbox dev", + ndevs * sizeof(struct otx2_mbox_dev), + OTX2_ALIGN); if (!mbox->dev) { otx2_mbox_fini(mbox); return -ENOMEM;
Segmentation fault has been observed while running procinfo with reset options i.e. --stats-reset and --xstats-reset. Reason is procinfo runs as a secondary process and tries to hold a lock which is part of struct mdev, which was not allocated as part of shared memory. Fixes: 5ca59711f771 ("common/octeontx2: add mailbox base support infra") Cc: stable@dpdk.org Signed-off-by: Harman Kalra <hkalra@marvell.com> --- *V2: Minor corrections in commit message. drivers/common/octeontx2/otx2_mbox.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)