Currently, a user space driver write() API does not clear the number of 
interrupts occurred since the last read() API.  Instead it disable interrupt 
unless a UDD_RTIOC_IRQEN request comes in to enable interrupt.  The fact that 
ioctl() does support these requests makes write(UDD_RTIOC_IRQEN/anything) a 
redundant and inappropriate API.  Code change is to set both event  count and 
context->event_count to 0.

The second issue is the event ur->pulse needs to be cleared in udd_read_rt() 
because a select() on the file descriptor will return immediately as a result 
of a previous select() call when both select() invocation is on the same file 
descriptor even when the read() is sandwiched in between the select() calls 
while no interrupt occurs for the second select() call.

Below are the suggested code fixes for both issues.  I am using 4.9.51 Linux 
kernel with patch: ipipe-core-4.9.51-powerpc-3.


PS: If you cannot see the image , enclosed is the file with fix and the 
original file.

Notice: This e-mail and any files transmitted with it may contain Data Device 
Corporation's and its subsidiaries privileged and proprietary information. It 
is intended solely for the use of the individual or entity to whom it is 
addressed. If you are not the named recipient of this transmission, any 
disclosure, copying, distribution or reliance on the contents of this message 
is prohibited. If you received this e-mail in error, please destroy it and any 
attached files and notify me immediately.

Click Here<http://www.ddc-web.com/Profile/EmailPrivacy.aspx> to view our 
privacy statement.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 166033 bytes
Desc: image002.png
-------------- next part --------------
A non-text attachment was scrubbed...
Name: udd.c.orig
Type: application/octet-stream
Size: 17134 bytes
Desc: udd.c.orig
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: udd.c
Xenomai mailing list

Reply via email to