Looks mostly reasonable, except for:
> -void __exit cpuid_exit(void)
> +static void __exit cpuid_exit(void)
> {
> - unregister_chrdev(CPUID_MAJOR, "cpu/cpuid");
> + int i;
> + devfs_handle_t parent;
> +
> + for(i = 0; i < NR_CPUS; i++) {
> + parent = devfs_get_parent(devfs_handle[i]);
> + devfs_unregister(devfs_handle[i]);
> + if(devfs_get_first_child(parent) == NULL)
> + devfs_unregister(parent);
> + }
> + devfs_unregister_chrdev(CPUID_MAJOR, "cpu/%d/cpuid");
> }
There is no need to remove the parent /dev/cpu/%d directory, and in
fact it's better not to. All you need is this simpler loop:
for(i = 0; i < NR_CPUS; i++)
devfs_unregister(devfs_handle[i]);
You do something similar in the MSR driver.
Regards,
Richard....
Permanent: rgooch@atnf.csiro.au
Current: rgooch@ras.ucalgary.ca
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/