forked from svenkatr/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rtmutex-tester: convert sysdev_class to a regular subsystem
After all sysdev classes are ported to regular driver core entities, the sysdev implementation will be entirely removed from the kernel. Cc: Thomas Gleixner <[email protected]> Cc: Paul Gortmaker <[email protected]> Cc: Arnd Bergmann <[email protected]> Signed-off-by: Kay Sievers <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
- Loading branch information
1 parent
ca22e56
commit 997d3ea
Showing
1 changed file
with
19 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,11 +6,11 @@ | |
* Copyright (C) 2006, Timesys Corp., Thomas Gleixner <[email protected]> | ||
* | ||
*/ | ||
#include <linux/device.h> | ||
#include <linux/kthread.h> | ||
#include <linux/export.h> | ||
#include <linux/sched.h> | ||
#include <linux/spinlock.h> | ||
#include <linux/sysdev.h> | ||
#include <linux/timer.h> | ||
#include <linux/freezer.h> | ||
|
||
|
@@ -27,7 +27,7 @@ struct test_thread_data { | |
int opdata; | ||
int mutexes[MAX_RT_TEST_MUTEXES]; | ||
int event; | ||
struct sys_device sysdev; | ||
struct device dev; | ||
}; | ||
|
||
static struct test_thread_data thread_data[MAX_RT_TEST_THREADS]; | ||
|
@@ -271,16 +271,16 @@ static int test_func(void *data) | |
* | ||
* opcode:data | ||
*/ | ||
static ssize_t sysfs_test_command(struct sys_device *dev, struct sysdev_attribute *attr, | ||
static ssize_t sysfs_test_command(struct device *dev, struct device_attribute *attr, | ||
const char *buf, size_t count) | ||
{ | ||
struct sched_param schedpar; | ||
struct test_thread_data *td; | ||
char cmdbuf[32]; | ||
int op, dat, tid, ret; | ||
|
||
td = container_of(dev, struct test_thread_data, sysdev); | ||
tid = td->sysdev.id; | ||
td = container_of(dev, struct test_thread_data, dev); | ||
tid = td->dev.id; | ||
|
||
/* strings from sysfs write are not 0 terminated! */ | ||
if (count >= sizeof(cmdbuf)) | ||
|
@@ -334,16 +334,16 @@ static ssize_t sysfs_test_command(struct sys_device *dev, struct sysdev_attribut | |
* @dev: thread to query | ||
* @buf: char buffer to be filled with thread status info | ||
*/ | ||
static ssize_t sysfs_test_status(struct sys_device *dev, struct sysdev_attribute *attr, | ||
static ssize_t sysfs_test_status(struct device *dev, struct device_attribute *attr, | ||
char *buf) | ||
{ | ||
struct test_thread_data *td; | ||
struct task_struct *tsk; | ||
char *curr = buf; | ||
int i; | ||
|
||
td = container_of(dev, struct test_thread_data, sysdev); | ||
tsk = threads[td->sysdev.id]; | ||
td = container_of(dev, struct test_thread_data, dev); | ||
tsk = threads[td->dev.id]; | ||
|
||
spin_lock(&rttest_lock); | ||
|
||
|
@@ -360,28 +360,29 @@ static ssize_t sysfs_test_status(struct sys_device *dev, struct sysdev_attribute | |
spin_unlock(&rttest_lock); | ||
|
||
curr += sprintf(curr, ", T: %p, R: %p\n", tsk, | ||
mutexes[td->sysdev.id].owner); | ||
mutexes[td->dev.id].owner); | ||
|
||
return curr - buf; | ||
} | ||
|
||
static SYSDEV_ATTR(status, 0600, sysfs_test_status, NULL); | ||
static SYSDEV_ATTR(command, 0600, NULL, sysfs_test_command); | ||
static DEVICE_ATTR(status, 0600, sysfs_test_status, NULL); | ||
static DEVICE_ATTR(command, 0600, NULL, sysfs_test_command); | ||
|
||
static struct sysdev_class rttest_sysclass = { | ||
static struct bus_type rttest_subsys = { | ||
.name = "rttest", | ||
.dev_name = "rttest", | ||
}; | ||
|
||
static int init_test_thread(int id) | ||
{ | ||
thread_data[id].sysdev.cls = &rttest_sysclass; | ||
thread_data[id].sysdev.id = id; | ||
thread_data[id].dev.bus = &rttest_subsys; | ||
thread_data[id].dev.id = id; | ||
|
||
threads[id] = kthread_run(test_func, &thread_data[id], "rt-test-%d", id); | ||
if (IS_ERR(threads[id])) | ||
return PTR_ERR(threads[id]); | ||
|
||
return sysdev_register(&thread_data[id].sysdev); | ||
return device_register(&thread_data[id].dev); | ||
} | ||
|
||
static int init_rttest(void) | ||
|
@@ -393,18 +394,18 @@ static int init_rttest(void) | |
for (i = 0; i < MAX_RT_TEST_MUTEXES; i++) | ||
rt_mutex_init(&mutexes[i]); | ||
|
||
ret = sysdev_class_register(&rttest_sysclass); | ||
ret = subsys_system_register(&rttest_subsys, NULL); | ||
if (ret) | ||
return ret; | ||
|
||
for (i = 0; i < MAX_RT_TEST_THREADS; i++) { | ||
ret = init_test_thread(i); | ||
if (ret) | ||
break; | ||
ret = sysdev_create_file(&thread_data[i].sysdev, &attr_status); | ||
ret = device_create_file(&thread_data[i].dev, &dev_attr_status); | ||
if (ret) | ||
break; | ||
ret = sysdev_create_file(&thread_data[i].sysdev, &attr_command); | ||
ret = device_create_file(&thread_data[i].dev, &dev_attr_command); | ||
if (ret) | ||
break; | ||
} | ||
|