Re: [PATCH] DevFS support for /dev/cpu/X/(cpuid|msr)

H. Peter Anvin
2002-01-06T21:07:31Z

Once again, this shit does not belong in N drivers; it is core code.

-hpa

Richard Gooch wrote:

> Matt Dainty writes:
>
>>Please find attached a patch to add support for devfs to the i386 cpuid and
>>msr drivers. Not only that, but it fixes a problem with loading these
>>drivers as modules in that the exit hooks on the module never run, (simply
>>changing the function prototypes to include 'static' seems to fix this).
>>
>>Patch is against 2.4.17. SMP environment isn't tested, but I can't see any
>>reason why it wouldn't work...
>>
>
> 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
>