El driver “memoria”: eliminando el módulo

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.