driver-core: Add attribute argument to class_attribute show/store

Passing the attribute to the low level IO functions allows all kinds
of cleanups, by sharing low level IO code without requiring
an own function for every piece of data.

Also drivers can extend the attributes with own data fields
and use that in the low level function.

This makes the class attributes the same as sysdev_class attributes
and plain attributes.

This will allow further cleanups in drivers.

Full tree sweep converting all users.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Andi Kleen
2010-01-05 12:48:07 +01:00
committed by Greg Kroah-Hartman
parent 5fbcae57db
commit 28812fe11a
21 changed files with 87 additions and 32 deletions

View File

@@ -331,7 +331,8 @@ static int block_size_init(void)
*/
#ifdef CONFIG_ARCH_MEMORY_PROBE
static ssize_t
memory_probe_store(struct class *class, const char *buf, size_t count)
memory_probe_store(struct class *class, struct class_attribute *attr,
const char *buf, size_t count)
{
u64 phys_addr;
int nid;
@@ -368,7 +369,9 @@ static inline int memory_probe_init(void)
/* Soft offline a page */
static ssize_t
store_soft_offline_page(struct class *class, const char *buf, size_t count)
store_soft_offline_page(struct class *class,
struct class_attribute *attr,
const char *buf, size_t count)
{
int ret;
u64 pfn;
@@ -385,7 +388,9 @@ store_soft_offline_page(struct class *class, const char *buf, size_t count)
/* Forcibly offline a page, including killing processes. */
static ssize_t
store_hard_offline_page(struct class *class, const char *buf, size_t count)
store_hard_offline_page(struct class *class,
struct class_attribute *attr,
const char *buf, size_t count)
{
int ret;
u64 pfn;