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.