Messages in this thread | | | Date | Tue, 29 Jan 2008 09:44:35 +0100 | From | Sam Ravnborg <> | Subject | Re: [PATCH 2.6.24] x86: add sysfs interface for cpuid module |
| |
> + > +static struct notifier_block __cpuinitdata cpuid_sysfs_cpu_notifier = { > + .notifier_call = cpuid_sysfs_cpu_callback, > +}; Data is annotated _cpuintidata
but
> + Data is annotated _cpuintidata
> @@ -217,11 +445,14 @@ static void __exit cpuid_exit(void) > { > int cpu = 0; > > - for_each_online_cpu(cpu) > + for_each_online_cpu(cpu) { > cpuid_device_destroy(cpu); > + remove_cpuid_sysfs(cpu); > + } > class_destroy(cpuid_class); > unregister_chrdev(CPUID_MAJOR, "cpu/cpuid"); > unregister_hotcpu_notifier(&cpuid_class_cpu_notifier); > + unregister_hotcpu_notifier(&cpuid_sysfs_cpu_notifier);
used in an __exit function.
You should have seen a Section mismatch warning for this. The right fix is to annotate the cpuid_sysfs_cpu_notifier with __initdata_refok (soon to be named __refdata) Or even better to declare it const and use _refconst.
Sam
| |