I am currently writing a platform device driver for embedded linux on ARM. What I've noticed is that a multithreaded application from user space can only access the driver one thread at a time, and never simultaneously regardless of separate file access in /dev/* to the driver.
The same driver (with modified probe()) targeted for x86 on PCIe works fine with multithreaded access to its functions.
Any idea why? Thanks.
This was actually an error in the user space application.