In my opinion, changing the type to the conventional type used for socket_id 
seems like a much better solution than just changing the signedness, as 
proposed in  another RFC [1]. (If we used more specialized types, like 
socket_id_t, we wouldn't even have this discussion. It is the DPDK convention 
to avoid specialized types, and I'm not against this convention; I'm only 
mentioning it to support changing the type here to int.)

 

And SOCKET_ID_ANY (-1) being used for multiple purposes, as discussed in the 
RFC, is another issue, to be discussed separately.

 

[1]: 
https://patches.dpdk.org/project/dpdk/patch/20230117101646.2521875-1-didier.pall...@6wind.com/
 
<https://patches.dpdk.org/project/dpdk/patch/20230117101646.2521875-1-didier.pall...@6wind.com/>
 

 

Acked-by: Morten Brørup <m...@smartsharesystems.com>

 

Acked-by: Kai Ji <kai...@intel.com>

________________________________

From: Power, Ciara <ciara.po...@intel.com>
Sent: 29 June 2023 14:21
To: dev@dpdk.org <dev@dpdk.org>
Cc: Ji, Kai <kai...@intel.com>; Power, Ciara <ciara.po...@intel.com>; Matz, 
Olivier <olivier.m...@6wind.com>; Akhil Goyal <gak...@marvell.com>; Fan Zhang 
<fanzhang....@gmail.com>
Subject: [PATCH] cryptodev: fix device socket ID type 

 

The socket ID field for a cryptodev device data was unsigned int.
Due to recent changes to the default device socket ID,
this caused an issue when the socket ID was unknown and set to -1.
The device socket ID wrapped around to 255,
and caused errors when allocating memory.

Changing this field type to int fixes the issue, as it now takes the
correct -1 value.

Fixes: 7dcd73e37965 ("drivers/bus: set device NUMA node to unknown by default")
Cc: olivier.m...@6wind.com

Signed-off-by: Ciara Power <ciara.po...@intel.com>
---
 lib/cryptodev/cryptodev_pmd.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/cryptodev/cryptodev_pmd.h b/lib/cryptodev/cryptodev_pmd.h
index 8710ed7558..4c98cedca6 100644
--- a/lib/cryptodev/cryptodev_pmd.h
+++ b/lib/cryptodev/cryptodev_pmd.h
@@ -65,7 +65,7 @@ struct rte_cryptodev_data {
         /** Device ID for this instance */
         uint8_t dev_id;
         /** Socket ID where memory is allocated */
-       uint8_t socket_id;
+       int socket_id;
         /** Unique identifier name */
         char name[RTE_CRYPTODEV_NAME_MAX_LEN];
 
-- 
2.25.1

Reply via email to