diff --git a/tsc_freq_khz.c b/tsc_freq_khz.c index 5a15d62..1c6d505 100644 --- a/tsc_freq_khz.c +++ b/tsc_freq_khz.c @@ -2,8 +2,7 @@ #include #include #include -//#include -extern unsigned int tsc_khz; +#include // extern unsigned int tsc_khz; #include #include #include @@ -21,22 +20,15 @@ static ssize_t tsc_freq_khz_show(struct kobject *kobj, struct kobj_attribute *at char *buf) { ssize_t r; - r = sprintf(buf, "%d\n", tsc_khz); + r = sprintf(buf, "%u\n", tsc_khz); return r; } -static ssize_t tsc_freq_khz_store(struct kobject *kobj, struct kobj_attribute *attr, - const char *buf, size_t count) -{ - // unimplemented - return count; -} - static struct kobj_attribute tsc_freq_khz_attribute = __ATTR(tsc_freq_khz, S_IRUGO, // world readable, unchangeable tsc_freq_khz_show, - tsc_freq_khz_store); + NULL); // store not implemented static int __init tsc_khz_init(void){ struct device *dev; @@ -62,15 +54,15 @@ static int __init tsc_khz_init(void){ } static void __exit tsc_khz_exit(void) { - struct device *dev; - printk(KERN_INFO DRIVER_NAME ": unloading driver\n"); - dev = get_cpu_device(0); // assumes always a cpu0 - if (!dev) { - printk(KERN_INFO DRIVER_NAME ": could not get device for CPU %d\n", 0); - return; - } - sysfs_remove_file(&dev->kobj, &tsc_freq_khz_attribute.attr); + struct device *dev; + printk(KERN_INFO DRIVER_NAME ": unloading driver\n"); + dev = get_cpu_device(0); // assumes always a cpu0 + if (!dev) { + printk(KERN_INFO DRIVER_NAME ": could not get device for CPU %d\n", 0); + return; + } + sysfs_remove_file(&dev->kobj, &tsc_freq_khz_attribute.attr); } module_init(tsc_khz_init); -module_exit(tsc_khz_exit); \ No newline at end of file +module_exit(tsc_khz_exit);