segmentation fault ocured as vdev->device.driver->name did not
return correct value.
Test2 failed as dummy_value was freed before it was used.

Signed-off-by: Kallio Marko <marko.kal...@cavium.comm>
Signed-off-by: Harman Kalra <hka...@marvell.com>
---
 drivers/raw/skeleton_rawdev/skeleton_rawdev.c      | 3 ++-
 drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/raw/skeleton_rawdev/skeleton_rawdev.c 
b/drivers/raw/skeleton_rawdev/skeleton_rawdev.c
index d7630fc69..c957ced11 100644
--- a/drivers/raw/skeleton_rawdev/skeleton_rawdev.c
+++ b/drivers/raw/skeleton_rawdev/skeleton_rawdev.c
@@ -585,7 +585,8 @@ skeleton_rawdev_create(const char *name,
 
        rawdev->dev_ops = &skeleton_rawdev_ops;
        rawdev->device = &vdev->device;
-       rawdev->driver_name = vdev->device.driver->name;
+
+       rawdev->driver_name = rawdev->name;
 
        skeldev = skeleton_rawdev_get_priv(rawdev);
 
diff --git a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c 
b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
index 359c9e296..788c3f1b9 100644
--- a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
+++ b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
@@ -294,14 +294,14 @@ test_rawdev_attr_set_get(void)
                              "Attribute (Test1) not set correctly (%" PRIu64 
")",
                              ret_value);
 
-       free(dummy_value);
-
        ret_value = 0;
        ret = rte_rawdev_get_attr(TEST_DEV_ID, "Test2", &ret_value);
        RTE_TEST_ASSERT_EQUAL(*((int *)(uintptr_t)ret_value), 200,
                              "Attribute (Test2) not set correctly (%" PRIu64 
")",
                              ret_value);
 
+       free(dummy_value);
+
        return TEST_SUCCESS;
 }
 
-- 
2.18.0

Reply via email to