static atomic_t access_count = ATOMIC_INIT(-1); static int driver_open(struct inode *devicefile, struct file *instance) { if (atomic_inc_and_test(&access_count) != 0) { // true, falls ==0 return 0; // Zugriff erlaubt } atomic_dec(&access_count); return -EBUSY; } static int driver_release(struct inode *devicefile, struct file *instance) { atomic_dec(&access_count); return 0; }