I'm implementing a character driver simulating of MDIO/MDC functionality (IEEE 802.3 clause 22) with GPIO pins; so what I do is write/read to/from GPIO registers. The driver will provide /dev/my_dev, 'open' and 'release' as usual, and also expose 'ioctl' interface to the user space, I/O control will invoke driver functions mdio_read, mdio_write.
Now I wonder what happens when two or more processes simultaneously open /dev/my_dev and try to read and write GPIO lines at once. Will it cause race condition situation? As far as I understand, RC comes about when a shared resource is accessed by two or more callers at once. But in my case, I basically do not have a shared resource; or I'm wrong ?
Thanks.