diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-08-07 21:46:36 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-08-07 21:46:36 -0400 |
commit | 46bcea7751efc867ae4b073c99ad1d137a475bc0 (patch) | |
tree | 6600d52d5131d2ed1eb95640aa3604aecbcbc4af /arch/sparc64/kernel/mdesc.c | |
parent | 4a2a4df7b6db25df8f3d5cc6dd0b096119359d92 (diff) |
[SPARC]: Centralize find_in_proplist() instead of duplicating N times.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/mdesc.c')
-rw-r--r-- | arch/sparc64/kernel/mdesc.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c index cce4d0ddf5d5..95059c2ec414 100644 --- a/arch/sparc64/kernel/mdesc.c +++ b/arch/sparc64/kernel/mdesc.c | |||
@@ -568,20 +568,6 @@ static void __init report_platform_properties(void) | |||
568 | mdesc_release(hp); | 568 | mdesc_release(hp); |
569 | } | 569 | } |
570 | 570 | ||
571 | static int inline find_in_proplist(const char *list, const char *match, int len) | ||
572 | { | ||
573 | while (len > 0) { | ||
574 | int l; | ||
575 | |||
576 | if (!strcmp(list, match)) | ||
577 | return 1; | ||
578 | l = strlen(list) + 1; | ||
579 | list += l; | ||
580 | len -= l; | ||
581 | } | ||
582 | return 0; | ||
583 | } | ||
584 | |||
585 | static void __devinit fill_in_one_cache(cpuinfo_sparc *c, | 571 | static void __devinit fill_in_one_cache(cpuinfo_sparc *c, |
586 | struct mdesc_handle *hp, | 572 | struct mdesc_handle *hp, |
587 | u64 mp) | 573 | u64 mp) |
@@ -596,10 +582,10 @@ static void __devinit fill_in_one_cache(cpuinfo_sparc *c, | |||
596 | 582 | ||
597 | switch (*level) { | 583 | switch (*level) { |
598 | case 1: | 584 | case 1: |
599 | if (find_in_proplist(type, "instn", type_len)) { | 585 | if (of_find_in_proplist(type, "instn", type_len)) { |
600 | c->icache_size = *size; | 586 | c->icache_size = *size; |
601 | c->icache_line_size = *line_size; | 587 | c->icache_line_size = *line_size; |
602 | } else if (find_in_proplist(type, "data", type_len)) { | 588 | } else if (of_find_in_proplist(type, "data", type_len)) { |
603 | c->dcache_size = *size; | 589 | c->dcache_size = *size; |
604 | c->dcache_line_size = *line_size; | 590 | c->dcache_line_size = *line_size; |
605 | } | 591 | } |
@@ -677,7 +663,7 @@ static void __devinit set_core_ids(struct mdesc_handle *hp) | |||
677 | continue; | 663 | continue; |
678 | 664 | ||
679 | type = mdesc_get_property(hp, mp, "type", &len); | 665 | type = mdesc_get_property(hp, mp, "type", &len); |
680 | if (!find_in_proplist(type, "instn", len)) | 666 | if (!of_find_in_proplist(type, "instn", len)) |
681 | continue; | 667 | continue; |
682 | 668 | ||
683 | mark_core_ids(hp, mp, idx); | 669 | mark_core_ids(hp, mp, idx); |
@@ -718,8 +704,8 @@ static void __devinit __set_proc_ids(struct mdesc_handle *hp, | |||
718 | int len; | 704 | int len; |
719 | 705 | ||
720 | type = mdesc_get_property(hp, mp, "type", &len); | 706 | type = mdesc_get_property(hp, mp, "type", &len); |
721 | if (!find_in_proplist(type, "int", len) && | 707 | if (!of_find_in_proplist(type, "int", len) && |
722 | !find_in_proplist(type, "integer", len)) | 708 | !of_find_in_proplist(type, "integer", len)) |
723 | continue; | 709 | continue; |
724 | 710 | ||
725 | mark_proc_ids(hp, mp, idx); | 711 | mark_proc_ids(hp, mp, idx); |