diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2011-12-21 18:09:51 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-12-21 18:09:51 -0500 |
commit | 6c9d290952642873548a78dfa0eecc4c82b9af1d (patch) | |
tree | ed9f912bdff2cbeee30ca9c7f3ae7af3e716ecf1 /arch | |
parent | 3fbacffbe9744920a80c04efc507c6a42e355c59 (diff) |
power: cmm - 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: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/platforms/pseries/cmm.c | 67 |
1 files changed, 34 insertions, 33 deletions
diff --git a/arch/powerpc/platforms/pseries/cmm.c b/arch/powerpc/platforms/pseries/cmm.c index 3cafc306b971..c638535753df 100644 --- a/arch/powerpc/platforms/pseries/cmm.c +++ b/arch/powerpc/platforms/pseries/cmm.c | |||
@@ -33,7 +33,7 @@ | |||
33 | #include <linux/sched.h> | 33 | #include <linux/sched.h> |
34 | #include <linux/stringify.h> | 34 | #include <linux/stringify.h> |
35 | #include <linux/swap.h> | 35 | #include <linux/swap.h> |
36 | #include <linux/sysdev.h> | 36 | #include <linux/device.h> |
37 | #include <asm/firmware.h> | 37 | #include <asm/firmware.h> |
38 | #include <asm/hvcall.h> | 38 | #include <asm/hvcall.h> |
39 | #include <asm/mmu.h> | 39 | #include <asm/mmu.h> |
@@ -65,7 +65,7 @@ static unsigned int oom_kb = CMM_OOM_KB; | |||
65 | static unsigned int cmm_debug = CMM_DEBUG; | 65 | static unsigned int cmm_debug = CMM_DEBUG; |
66 | static unsigned int cmm_disabled = CMM_DISABLE; | 66 | static unsigned int cmm_disabled = CMM_DISABLE; |
67 | static unsigned long min_mem_mb = CMM_MIN_MEM_MB; | 67 | static unsigned long min_mem_mb = CMM_MIN_MEM_MB; |
68 | static struct sys_device cmm_sysdev; | 68 | static struct device cmm_dev; |
69 | 69 | ||
70 | MODULE_AUTHOR("Brian King <brking@linux.vnet.ibm.com>"); | 70 | MODULE_AUTHOR("Brian King <brking@linux.vnet.ibm.com>"); |
71 | MODULE_DESCRIPTION("IBM System p Collaborative Memory Manager"); | 71 | MODULE_DESCRIPTION("IBM System p Collaborative Memory Manager"); |
@@ -347,25 +347,25 @@ static int cmm_thread(void *dummy) | |||
347 | } | 347 | } |
348 | 348 | ||
349 | #define CMM_SHOW(name, format, args...) \ | 349 | #define CMM_SHOW(name, format, args...) \ |
350 | static ssize_t show_##name(struct sys_device *dev, \ | 350 | static ssize_t show_##name(struct device *dev, \ |
351 | struct sysdev_attribute *attr, \ | 351 | struct device_attribute *attr, \ |
352 | char *buf) \ | 352 | char *buf) \ |
353 | { \ | 353 | { \ |
354 | return sprintf(buf, format, ##args); \ | 354 | return sprintf(buf, format, ##args); \ |
355 | } \ | 355 | } \ |
356 | static SYSDEV_ATTR(name, S_IRUGO, show_##name, NULL) | 356 | static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL) |
357 | 357 | ||
358 | CMM_SHOW(loaned_kb, "%lu\n", PAGES2KB(loaned_pages)); | 358 | CMM_SHOW(loaned_kb, "%lu\n", PAGES2KB(loaned_pages)); |
359 | CMM_SHOW(loaned_target_kb, "%lu\n", PAGES2KB(loaned_pages_target)); | 359 | CMM_SHOW(loaned_target_kb, "%lu\n", PAGES2KB(loaned_pages_target)); |
360 | 360 | ||
361 | static ssize_t show_oom_pages(struct sys_device *dev, | 361 | static ssize_t show_oom_pages(struct device *dev, |
362 | struct sysdev_attribute *attr, char *buf) | 362 | struct device_attribute *attr, char *buf) |
363 | { | 363 | { |
364 | return sprintf(buf, "%lu\n", PAGES2KB(oom_freed_pages)); | 364 | return sprintf(buf, "%lu\n", PAGES2KB(oom_freed_pages)); |
365 | } | 365 | } |
366 | 366 | ||
367 | static ssize_t store_oom_pages(struct sys_device *dev, | 367 | static ssize_t store_oom_pages(struct device *dev, |
368 | struct sysdev_attribute *attr, | 368 | struct device_attribute *attr, |
369 | const char *buf, size_t count) | 369 | const char *buf, size_t count) |
370 | { | 370 | { |
371 | unsigned long val = simple_strtoul (buf, NULL, 10); | 371 | unsigned long val = simple_strtoul (buf, NULL, 10); |
@@ -379,17 +379,18 @@ static ssize_t store_oom_pages(struct sys_device *dev, | |||
379 | return count; | 379 | return count; |
380 | } | 380 | } |
381 | 381 | ||
382 | static SYSDEV_ATTR(oom_freed_kb, S_IWUSR| S_IRUGO, | 382 | static DEVICE_ATTR(oom_freed_kb, S_IWUSR | S_IRUGO, |
383 | show_oom_pages, store_oom_pages); | 383 | show_oom_pages, store_oom_pages); |
384 | 384 | ||
385 | static struct sysdev_attribute *cmm_attrs[] = { | 385 | static struct device_attribute *cmm_attrs[] = { |
386 | &attr_loaned_kb, | 386 | &dev_attr_loaned_kb, |
387 | &attr_loaned_target_kb, | 387 | &dev_attr_loaned_target_kb, |
388 | &attr_oom_freed_kb, | 388 | &dev_attr_oom_freed_kb, |
389 | }; | 389 | }; |
390 | 390 | ||
391 | static struct sysdev_class cmm_sysdev_class = { | 391 | static struct bus_type cmm_subsys = { |
392 | .name = "cmm", | 392 | .name = "cmm", |
393 | .dev_name = "cmm", | ||
393 | }; | 394 | }; |
394 | 395 | ||
395 | /** | 396 | /** |
@@ -398,21 +399,21 @@ static struct sysdev_class cmm_sysdev_class = { | |||
398 | * Return value: | 399 | * Return value: |
399 | * 0 on success / other on failure | 400 | * 0 on success / other on failure |
400 | **/ | 401 | **/ |
401 | static int cmm_sysfs_register(struct sys_device *sysdev) | 402 | static int cmm_sysfs_register(struct device *dev) |
402 | { | 403 | { |
403 | int i, rc; | 404 | int i, rc; |
404 | 405 | ||
405 | if ((rc = sysdev_class_register(&cmm_sysdev_class))) | 406 | if ((rc = subsys_system_register(&cmm_subsys, NULL))) |
406 | return rc; | 407 | return rc; |
407 | 408 | ||
408 | sysdev->id = 0; | 409 | dev->id = 0; |
409 | sysdev->cls = &cmm_sysdev_class; | 410 | dev->bus = &cmm_subsys; |
410 | 411 | ||
411 | if ((rc = sysdev_register(sysdev))) | 412 | if ((rc = device_register(dev))) |
412 | goto class_unregister; | 413 | goto subsys_unregister; |
413 | 414 | ||
414 | for (i = 0; i < ARRAY_SIZE(cmm_attrs); i++) { | 415 | for (i = 0; i < ARRAY_SIZE(cmm_attrs); i++) { |
415 | if ((rc = sysdev_create_file(sysdev, cmm_attrs[i]))) | 416 | if ((rc = device_create_file(dev, cmm_attrs[i]))) |
416 | goto fail; | 417 | goto fail; |
417 | } | 418 | } |
418 | 419 | ||
@@ -420,10 +421,10 @@ static int cmm_sysfs_register(struct sys_device *sysdev) | |||
420 | 421 | ||
421 | fail: | 422 | fail: |
422 | while (--i >= 0) | 423 | while (--i >= 0) |
423 | sysdev_remove_file(sysdev, cmm_attrs[i]); | 424 | device_remove_file(dev, cmm_attrs[i]); |
424 | sysdev_unregister(sysdev); | 425 | device_unregister(dev); |
425 | class_unregister: | 426 | subsys_unregister: |
426 | sysdev_class_unregister(&cmm_sysdev_class); | 427 | bus_unregister(&cmm_subsys); |
427 | return rc; | 428 | return rc; |
428 | } | 429 | } |
429 | 430 | ||
@@ -431,14 +432,14 @@ class_unregister: | |||
431 | * cmm_unregister_sysfs - Unregister from sysfs | 432 | * cmm_unregister_sysfs - Unregister from sysfs |
432 | * | 433 | * |
433 | **/ | 434 | **/ |
434 | static void cmm_unregister_sysfs(struct sys_device *sysdev) | 435 | static void cmm_unregister_sysfs(struct device *dev) |
435 | { | 436 | { |
436 | int i; | 437 | int i; |
437 | 438 | ||
438 | for (i = 0; i < ARRAY_SIZE(cmm_attrs); i++) | 439 | for (i = 0; i < ARRAY_SIZE(cmm_attrs); i++) |
439 | sysdev_remove_file(sysdev, cmm_attrs[i]); | 440 | device_remove_file(dev, cmm_attrs[i]); |
440 | sysdev_unregister(sysdev); | 441 | device_unregister(dev); |
441 | sysdev_class_unregister(&cmm_sysdev_class); | 442 | bus_unregister(&cmm_subsys); |
442 | } | 443 | } |
443 | 444 | ||
444 | /** | 445 | /** |
@@ -657,7 +658,7 @@ static int cmm_init(void) | |||
657 | if ((rc = register_reboot_notifier(&cmm_reboot_nb))) | 658 | if ((rc = register_reboot_notifier(&cmm_reboot_nb))) |
658 | goto out_oom_notifier; | 659 | goto out_oom_notifier; |
659 | 660 | ||
660 | if ((rc = cmm_sysfs_register(&cmm_sysdev))) | 661 | if ((rc = cmm_sysfs_register(&cmm_dev))) |
661 | goto out_reboot_notifier; | 662 | goto out_reboot_notifier; |
662 | 663 | ||
663 | if (register_memory_notifier(&cmm_mem_nb) || | 664 | if (register_memory_notifier(&cmm_mem_nb) || |
@@ -678,7 +679,7 @@ static int cmm_init(void) | |||
678 | out_unregister_notifier: | 679 | out_unregister_notifier: |
679 | unregister_memory_notifier(&cmm_mem_nb); | 680 | unregister_memory_notifier(&cmm_mem_nb); |
680 | unregister_memory_isolate_notifier(&cmm_mem_isolate_nb); | 681 | unregister_memory_isolate_notifier(&cmm_mem_isolate_nb); |
681 | cmm_unregister_sysfs(&cmm_sysdev); | 682 | cmm_unregister_sysfs(&cmm_dev); |
682 | out_reboot_notifier: | 683 | out_reboot_notifier: |
683 | unregister_reboot_notifier(&cmm_reboot_nb); | 684 | unregister_reboot_notifier(&cmm_reboot_nb); |
684 | out_oom_notifier: | 685 | out_oom_notifier: |
@@ -701,7 +702,7 @@ static void cmm_exit(void) | |||
701 | unregister_memory_notifier(&cmm_mem_nb); | 702 | unregister_memory_notifier(&cmm_mem_nb); |
702 | unregister_memory_isolate_notifier(&cmm_mem_isolate_nb); | 703 | unregister_memory_isolate_notifier(&cmm_mem_isolate_nb); |
703 | cmm_free_pages(loaned_pages); | 704 | cmm_free_pages(loaned_pages); |
704 | cmm_unregister_sysfs(&cmm_sysdev); | 705 | cmm_unregister_sysfs(&cmm_dev); |
705 | } | 706 | } |
706 | 707 | ||
707 | /** | 708 | /** |