Para eliminar el módulo, dentro de la función cleanup_module, insertamos la función unregister_chrdev para liberar el número mayor dentro del kernel.
<<memoria cleanup module>>= void cleanup_module(void) { /* Liberamos numero mayor */ unregister_chrdev(memoria_major, "memoria"); /* Liberamos memoria del buffer */ if (memoria_buffer) { kfree(memoria_buffer); } printk("<1>Quitando modulo\n"); } |
En esta subrutina también liberamos la memoria del buffer del dispositivo para dejar el kernel limpio al quitar el módulo.