diff options
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/memory.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/drivers/base/memory.c b/drivers/base/memory.c index bd025059711f..ae6b6c43cff9 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c | |||
@@ -309,17 +309,19 @@ static SYSDEV_ATTR(removable, 0444, show_mem_removable, NULL); | |||
309 | * Block size attribute stuff | 309 | * Block size attribute stuff |
310 | */ | 310 | */ |
311 | static ssize_t | 311 | static ssize_t |
312 | print_block_size(struct class *class, char *buf) | 312 | print_block_size(struct sysdev_class *class, |
313 | struct sysdev_class_attribute *class_attr, | ||
314 | char *buf) | ||
313 | { | 315 | { |
314 | return sprintf(buf, "%#lx\n", (unsigned long)PAGES_PER_SECTION * PAGE_SIZE); | 316 | return sprintf(buf, "%#lx\n", (unsigned long)PAGES_PER_SECTION * PAGE_SIZE); |
315 | } | 317 | } |
316 | 318 | ||
317 | static CLASS_ATTR(block_size_bytes, 0444, print_block_size, NULL); | 319 | static SYSDEV_CLASS_ATTR(block_size_bytes, 0444, print_block_size, NULL); |
318 | 320 | ||
319 | static int block_size_init(void) | 321 | static int block_size_init(void) |
320 | { | 322 | { |
321 | return sysfs_create_file(&memory_sysdev_class.kset.kobj, | 323 | return sysfs_create_file(&memory_sysdev_class.kset.kobj, |
322 | &class_attr_block_size_bytes.attr); | 324 | &attr_block_size_bytes.attr); |
323 | } | 325 | } |
324 | 326 | ||
325 | /* | 327 | /* |
@@ -330,7 +332,9 @@ static int block_size_init(void) | |||
330 | */ | 332 | */ |
331 | #ifdef CONFIG_ARCH_MEMORY_PROBE | 333 | #ifdef CONFIG_ARCH_MEMORY_PROBE |
332 | static ssize_t | 334 | static ssize_t |
333 | memory_probe_store(struct class *class, const char *buf, size_t count) | 335 | memory_probe_store(struct sysdev_class *class, |
336 | struct sysdev_class_attribute *class_attr, | ||
337 | const char *buf, size_t count) | ||
334 | { | 338 | { |
335 | u64 phys_addr; | 339 | u64 phys_addr; |
336 | int nid; | 340 | int nid; |
@@ -346,12 +350,12 @@ memory_probe_store(struct class *class, const char *buf, size_t count) | |||
346 | 350 | ||
347 | return count; | 351 | return count; |
348 | } | 352 | } |
349 | static CLASS_ATTR(probe, S_IWUSR, NULL, memory_probe_store); | 353 | static SYSDEV_CLASS_ATTR(probe, S_IWUSR, NULL, memory_probe_store); |
350 | 354 | ||
351 | static int memory_probe_init(void) | 355 | static int memory_probe_init(void) |
352 | { | 356 | { |
353 | return sysfs_create_file(&memory_sysdev_class.kset.kobj, | 357 | return sysfs_create_file(&memory_sysdev_class.kset.kobj, |
354 | &class_attr_probe.attr); | 358 | &attr_probe.attr); |
355 | } | 359 | } |
356 | #else | 360 | #else |
357 | static inline int memory_probe_init(void) | 361 | static inline int memory_probe_init(void) |
@@ -367,7 +371,9 @@ static inline int memory_probe_init(void) | |||
367 | 371 | ||
368 | /* Soft offline a page */ | 372 | /* Soft offline a page */ |
369 | static ssize_t | 373 | static ssize_t |
370 | store_soft_offline_page(struct class *class, const char *buf, size_t count) | 374 | store_soft_offline_page(struct sysdev_class *class, |
375 | struct sysdev_class_attribute *class_attr, | ||
376 | const char *buf, size_t count) | ||
371 | { | 377 | { |
372 | int ret; | 378 | int ret; |
373 | u64 pfn; | 379 | u64 pfn; |
@@ -384,7 +390,9 @@ store_soft_offline_page(struct class *class, const char *buf, size_t count) | |||
384 | 390 | ||
385 | /* Forcibly offline a page, including killing processes. */ | 391 | /* Forcibly offline a page, including killing processes. */ |
386 | static ssize_t | 392 | static ssize_t |
387 | store_hard_offline_page(struct class *class, const char *buf, size_t count) | 393 | store_hard_offline_page(struct sysdev_class *class, |
394 | struct sysdev_class_attribute *class_attr, | ||
395 | const char *buf, size_t count) | ||
388 | { | 396 | { |
389 | int ret; | 397 | int ret; |
390 | u64 pfn; | 398 | u64 pfn; |
@@ -397,18 +405,18 @@ store_hard_offline_page(struct class *class, const char *buf, size_t count) | |||
397 | return ret ? ret : count; | 405 | return ret ? ret : count; |
398 | } | 406 | } |
399 | 407 | ||
400 | static CLASS_ATTR(soft_offline_page, 0644, NULL, store_soft_offline_page); | 408 | static SYSDEV_CLASS_ATTR(soft_offline_page, 0644, NULL, store_soft_offline_page); |
401 | static CLASS_ATTR(hard_offline_page, 0644, NULL, store_hard_offline_page); | 409 | static SYSDEV_CLASS_ATTR(hard_offline_page, 0644, NULL, store_hard_offline_page); |
402 | 410 | ||
403 | static __init int memory_fail_init(void) | 411 | static __init int memory_fail_init(void) |
404 | { | 412 | { |
405 | int err; | 413 | int err; |
406 | 414 | ||
407 | err = sysfs_create_file(&memory_sysdev_class.kset.kobj, | 415 | err = sysfs_create_file(&memory_sysdev_class.kset.kobj, |
408 | &class_attr_soft_offline_page.attr); | 416 | &attr_soft_offline_page.attr); |
409 | if (!err) | 417 | if (!err) |
410 | err = sysfs_create_file(&memory_sysdev_class.kset.kobj, | 418 | err = sysfs_create_file(&memory_sysdev_class.kset.kobj, |
411 | &class_attr_hard_offline_page.attr); | 419 | &attr_hard_offline_page.attr); |
412 | return err; | 420 | return err; |
413 | } | 421 | } |
414 | #else | 422 | #else |