Driver core: convert msr code to use struct device
Converts from using struct "class_device" to "struct device" making everything show up properly in /sys/devices/ with symlinks from the /sys/class directory. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
@@ -239,14 +239,14 @@ static struct file_operations msr_fops = {
|
|||||||
.open = msr_open,
|
.open = msr_open,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int msr_class_device_create(int i)
|
static int msr_device_create(int i)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
struct class_device *class_err;
|
struct device *dev;
|
||||||
|
|
||||||
class_err = class_device_create(msr_class, NULL, MKDEV(MSR_MAJOR, i), NULL, "msr%d",i);
|
dev = device_create(msr_class, NULL, MKDEV(MSR_MAJOR, i), "msr%d",i);
|
||||||
if (IS_ERR(class_err))
|
if (IS_ERR(dev))
|
||||||
err = PTR_ERR(class_err);
|
err = PTR_ERR(dev);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,10 +258,10 @@ static int msr_class_cpu_callback(struct notifier_block *nfb,
|
|||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case CPU_ONLINE:
|
case CPU_ONLINE:
|
||||||
msr_class_device_create(cpu);
|
msr_device_create(cpu);
|
||||||
break;
|
break;
|
||||||
case CPU_DEAD:
|
case CPU_DEAD:
|
||||||
class_device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu));
|
device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return NOTIFY_OK;
|
return NOTIFY_OK;
|
||||||
@@ -290,7 +290,7 @@ static int __init msr_init(void)
|
|||||||
goto out_chrdev;
|
goto out_chrdev;
|
||||||
}
|
}
|
||||||
for_each_online_cpu(i) {
|
for_each_online_cpu(i) {
|
||||||
err = msr_class_device_create(i);
|
err = msr_device_create(i);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
goto out_class;
|
goto out_class;
|
||||||
}
|
}
|
||||||
@@ -302,7 +302,7 @@ static int __init msr_init(void)
|
|||||||
out_class:
|
out_class:
|
||||||
i = 0;
|
i = 0;
|
||||||
for_each_online_cpu(i)
|
for_each_online_cpu(i)
|
||||||
class_device_destroy(msr_class, MKDEV(MSR_MAJOR, i));
|
device_destroy(msr_class, MKDEV(MSR_MAJOR, i));
|
||||||
class_destroy(msr_class);
|
class_destroy(msr_class);
|
||||||
out_chrdev:
|
out_chrdev:
|
||||||
unregister_chrdev(MSR_MAJOR, "cpu/msr");
|
unregister_chrdev(MSR_MAJOR, "cpu/msr");
|
||||||
@@ -314,7 +314,7 @@ static void __exit msr_exit(void)
|
|||||||
{
|
{
|
||||||
int cpu = 0;
|
int cpu = 0;
|
||||||
for_each_online_cpu(cpu)
|
for_each_online_cpu(cpu)
|
||||||
class_device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu));
|
device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu));
|
||||||
class_destroy(msr_class);
|
class_destroy(msr_class);
|
||||||
unregister_chrdev(MSR_MAJOR, "cpu/msr");
|
unregister_chrdev(MSR_MAJOR, "cpu/msr");
|
||||||
unregister_hotcpu_notifier(&msr_class_cpu_notifier);
|
unregister_hotcpu_notifier(&msr_class_cpu_notifier);
|
||||||
|
Reference in New Issue
Block a user