#include static struct mutex kern_technik; static int __init mod_init(void) { debug_locks = 1; /* Mutex-Debugging reaktivieren */ mutex_init(&kern_technik); if (mutex_lock_killable(&kern_technik) == -EINTR) { pr_info("Durch Signal unterbrochen!\n");; return -EIO; } /* * FEHLER: Mutexe dürfen nicht zweimal * (rekursiv) reserviert werden */ if (mutex_lock_interruptible(&kern_technik) == -EINTR) { pr_info("Durch Signal unterbrochen!\n");; mutex_unlock(&kern_technik); return -EIO; } /* * Hier steht eigentlich der Code des durch * das Mutex geschützten kritischen Abschnitts. */ mutex_unlock(&kern_technik); return -EIO; } static void __exit mod_exit(void) { } module_init(mod_init); module_exit(mod_exit); MODULE_LICENSE("GPL");