cryptodev: fix device socket ID type

Message ID 20230629132155.75075-1-ciara.power@intel.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series cryptodev: fix device socket ID type |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/intel-Testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/github-robot: build success github build: passed
ci/intel-Functional success Functional PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/iol-aarch-unit-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS

Commit Message

Power, Ciara June 29, 2023, 1:21 p.m. UTC
  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 <ciara.power@intel.com>
---
 lib/cryptodev/cryptodev_pmd.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ji, Kai July 4, 2023, 10:30 p.m. UTC | #1
Acked-by: Kai Ji <kai.ji@intel.com<mailto:kai.ji@intel.com>>
  
Morten Brørup July 5, 2023, 9:44 a.m. UTC | #2
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/ <https://patches.dpdk.org/project/dpdk/patch/20230117101646.2521875-1-didier.pallard@6wind.com/> 

 

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

 

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

Patch

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];