of_init() should be called before using any of_* APIs to retrieve
information from the device tree and if reading integer value
that must be converted to cpu endianness before using.

Fixes: 1d678de329ab ("crypto/caam_jr: add basic job ring routines")
Cc: sta...@dpdk.org

Signed-off-by: Gagandeep Singh <g.si...@nxp.com>
---
 drivers/crypto/caam_jr/caam_jr.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c
index c004ec4..3fb3fe0 100644
--- a/drivers/crypto/caam_jr/caam_jr.c
+++ b/drivers/crypto/caam_jr/caam_jr.c
@@ -2388,6 +2388,8 @@ caam_jr_dev_init(const char *name,
 static int
 cryptodev_caam_jr_probe(struct rte_vdev_device *vdev)
 {
+       int ret;
+
        struct rte_cryptodev_pmd_init_params init_params = {
                "",
                sizeof(struct sec_job_ring_t),
@@ -2404,6 +2406,12 @@ cryptodev_caam_jr_probe(struct rte_vdev_device *vdev)
        input_args = rte_vdev_device_args(vdev);
        rte_cryptodev_pmd_parse_input_args(&init_params, input_args);
 
+       ret = of_init();
+       if (ret) {
+               RTE_LOG(ERR, PMD,
+               "of_init failed\n");
+               return -EINVAL;
+       }
        /* if sec device version is not configured */
        if (!rta_get_sec_era()) {
                const struct device_node *caam_node;
@@ -2414,7 +2422,7 @@ cryptodev_caam_jr_probe(struct rte_vdev_device *vdev)
                                        NULL);
                        if (prop) {
                                rta_set_sec_era(
-                                       INTL_SEC_ERA(cpu_to_caam32(*prop)));
+                                       INTL_SEC_ERA(rte_be_to_cpu_32(*prop)));
                                break;
                        }
                }
-- 
2.7.4

Reply via email to