[PATCH] event/dsw: fix missing device pointer

Mattias Rönnblom hofors at lysator.liu.se
Wed Oct 18 08:29:33 CEST 2023


On 2023-10-18 07:18, Jerin Jacob wrote:
> On Tue, Oct 17, 2023 at 10:21 PM Jerin Jacob <jerinjacobk at gmail.com> wrote:
>>
>> On Tue, Oct 17, 2023 at 9:45 PM Bruce Richardson
>> <bruce.richardson at intel.com> wrote:
>>>
>>> On Tue, Oct 17, 2023 at 09:34:04PM +0530, Jerin Jacob wrote:
>>>> On Tue, Oct 17, 2023 at 9:32 PM Bruce Richardson
>>>> <bruce.richardson at intel.com> wrote:
>>>>>
>>>>> After calling rte_event_dev_info_get() the ".dev" field of the info
>>>>> structure should have a pointer to the underlying device, allowing the
>>>>> user to e.g. get the device name using using rte_dev_name(info.dev).
>>>>>
>>>>> The distributed software eventdev info structure did not return a
>>>>> correct device pointer, though, instead returning NULL, which caused
>>>>> crashes getting "rte_dev_name". Initializing the dev pointer inside the
>>>>> "eventdev" struct in the device probe function fixes this by ensuring we
>>>>> have a valid pointer to return in info_get calls.
>>>>>
>>>>> Fixes: 46a186b1f0c5 ("event/dsw: add device registration and build system")
>>>>> Cc: mattias.ronnblom at ericsson.com
>>>>>
>>>>> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
>>>>
>>>> Is this issue for all "vdev" devices? if so, Please check for
>>>> drivers/event/skeleton too.
>>>>
>>> Yes, good point, looks like event/skeleton also returns NULL for the device
>>> pointer.
>>>
>>> I'll do up a v3 with the extra patch in it.
>>
>> Looks there are more vdev devuces. Can we have common PMD function or
>> extend rte_event_pmd_vdev_init or so.
> 
> 
> @Richardson, Bruce I will be on vacation from Friday, So would like to
> give PR for rc2 before that.
> 
> Adding helper function in rc2 may be risky, Could you fix all vdev
> mentioned below.
> Helper work, I think, we can take in next release.
> 

I agree.

Thanks Bruce!

> 
>>
>> [main]dell[dpdk.org] $ git grep rte_event_pmd_vdev_init
>> drivers/event/dpaa/dpaa_eventdev.c:     eventdev = rte_event_pmd_vdev_init(name,
>> drivers/event/dpaa2/dpaa2_eventdev.c:   eventdev = rte_event_pmd_vdev_init(name,
>> drivers/event/dsw/dsw_evdev.c:  dev = rte_event_pmd_vdev_init(name,
>> sizeof(struct dsw_evdev),
>> drivers/event/octeontx/ssovf_evdev.c:   eventdev =
>> rte_event_pmd_vdev_init(name, sizeof(struct ssovf_evdev),
>> drivers/event/opdl/opdl_evdev.c:        dev = rte_event_pmd_vdev_init(name,
>> drivers/event/skeleton/skeleton_eventdev.c:     eventdev =
>> rte_event_pmd_vdev_init(name,
>> drivers/event/sw/sw_evdev.c:    dev = rte_event_pmd_vdev_init(name,
>> lib/eventdev/eventdev_pmd_vdev.h:rte_event_pmd_vdev_init(const char
>> *name, size_t dev_private_size,
>> lib/eventdev/version.map:       rte_event_pmd_vdev_init;
>>
>>
>>> /Bruce


More information about the dev mailing list