> From: Ashish Gupta <[email protected]> > > nb_devs is incremented / decremented each time a compressdev is > created/released. However, releasing device 1 incorrectly make device > N invalid and inaccessible. Similarly when first half of the devices > are released, rest half of the devices become inaccessible. This patch > updates the validation check to ensure correct behavior.
Can you add fixes tag and cc [email protected] > > Signed-off-by: Ashish Gupta <[email protected]> > --- > lib/compressdev/rte_compressdev.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/lib/compressdev/rte_compressdev.c > b/lib/compressdev/rte_compressdev.c > index 33de3f511b..8435bfa134 100644 > --- a/lib/compressdev/rte_compressdev.c > +++ b/lib/compressdev/rte_compressdev.c > @@ -104,12 +104,22 @@ rte_compressdev_pmd_get_named_dev(const char > *name) > return NULL; > } > > +static inline uint8_t > +rte_compressdev_is_valid_device_data(uint8_t dev_id) > +{ > + if (dev_id >= RTE_COMPRESS_MAX_DEVS || > + compressdev_globals.devs[dev_id].data == NULL) > + return 0; > + > + return 1; > +} > + > static unsigned int > rte_compressdev_is_valid_dev(uint8_t dev_id) > { > struct rte_compressdev *dev = NULL; > > - if (dev_id >= compressdev_globals.nb_devs) > + if (!rte_compressdev_is_valid_device_data(dev_id)) > return 0; > > dev = rte_compressdev_get_dev(dev_id); > -- > 2.43.0

