After adding request_mem_region my driver fails every first access with “busy” message
OK, this is really weird to me. I've got a simulated CAN bus driver, it is a Linux Kernel module. Then I have a test application running in user space which accesses the driver via opening a file descriptor and sending ioctl() messages. Now the CAN bus driver is just something I've been adopting to run on the x86 platform (it was running on our embedded Coldfire system). On the embedded system it had to use request_mem_region() / ioremap() to get the memory I/O area accessible, I don't need to do this, but I want to keep as much of the code common as I can. Here are some useful defines: