On 9/6/19 5:43 PM, Jan Kiszka wrote:
> On 06.09.19 16:52, Philippe Gerum via Xenomai wrote:
>> On 9/4/19 4:44 PM, Quirin Gylstorff via Xenomai wrote:
>>>
>>> I tested xenomai-next with xeno-test on 4.19.66+ amd64.
>>> This patch triggers a general protection fault during the execution of
>>> xeno-test. The log is attached.
>>>
>> Ok, I'll have a look. Thanks.
>>
>
> I've started to dig into this a bit already but got distracted multiple
> times. One thing I already found out: It's not a good idea to close the
> fd on unregister without also ensuring that it's no longer pending in
> rtdm_fd_cleanup_queue. But fixing that does not resolve the issue we see
> with the test case.
>
> Jan
>
There is that stupid bug at least:
diff --git a/kernel/cobalt/rtdm/device.c b/kernel/cobalt/rtdm/device.c
index ea72be15c..64767a3ef 100644
--- a/kernel/cobalt/rtdm/device.c
+++ b/kernel/cobalt/rtdm/device.c
@@ -548,6 +548,8 @@ void rtdm_dev_unregister(struct rtdm_device *dev)
xnlock_get_irqsave(&nklock, s);
for (;;) {
+ if (list_empty(&dev->openfd_list))
+ break;
fd = list_get_entry(&dev->openfd_list, struct rtdm_fd, next);
if (fd == NULL)
break;
--
Philippe.