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.pallard@6wind.com/ Acked-by: Morten Brørup Acked-by: Kai Ji ________________________________ From: Power, Ciara Sent: 29 June 2023 14:21 To: dev@dpdk.org Cc: Ji, Kai ; Power, Ciara ; Matz, Olivier ; Akhil Goyal ; Fan Zhang 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.matz@6wind.com Signed-off-by: Ciara Power --- 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