diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2006-11-22 18:46:39 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-12-04 04:40:22 -0500 |
commit | 437a0706837d09d8ab071c6790da07d9d6bb3d22 (patch) | |
tree | 2f14b6e63bcc258586a05fbacce5c2f06fb1fead /arch/powerpc/xmon/xmon.c | |
parent | 5850dd8f6d4e79484d498c0d77b223d1041f9954 (diff) |
[POWERPC] Fix sparse warning in xmon Cell code
My patch to add spu helpers to xmon (a898497088f46252e6750405504064e2dce53117)
introduced a few sparse warnings, because I was dereferencing an __iomem
pointer.
I think the best way to handle it is to actually use the appropriate in_beXX
functions. Need to rejigger the DUMP macro a little to accomodate that.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Diffstat (limited to 'arch/powerpc/xmon/xmon.c')
-rw-r--r-- | arch/powerpc/xmon/xmon.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index d66c3a170327..6b9d720f7ff8 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c | |||
@@ -2748,13 +2748,13 @@ static void restart_spus(void) | |||
2748 | } | 2748 | } |
2749 | 2749 | ||
2750 | #define DUMP_WIDTH 23 | 2750 | #define DUMP_WIDTH 23 |
2751 | #define DUMP_FIELD(obj, format, field) \ | 2751 | #define DUMP_VALUE(format, field, value) \ |
2752 | do { \ | 2752 | do { \ |
2753 | if (setjmp(bus_error_jmp) == 0) { \ | 2753 | if (setjmp(bus_error_jmp) == 0) { \ |
2754 | catch_memory_errors = 1; \ | 2754 | catch_memory_errors = 1; \ |
2755 | sync(); \ | 2755 | sync(); \ |
2756 | printf(" %-*s = "format"\n", DUMP_WIDTH, \ | 2756 | printf(" %-*s = "format"\n", DUMP_WIDTH, \ |
2757 | #field, obj->field); \ | 2757 | #field, value); \ |
2758 | sync(); \ | 2758 | sync(); \ |
2759 | __delay(200); \ | 2759 | __delay(200); \ |
2760 | } else { \ | 2760 | } else { \ |
@@ -2765,6 +2765,9 @@ do { \ | |||
2765 | catch_memory_errors = 0; \ | 2765 | catch_memory_errors = 0; \ |
2766 | } while (0) | 2766 | } while (0) |
2767 | 2767 | ||
2768 | #define DUMP_FIELD(obj, format, field) \ | ||
2769 | DUMP_VALUE(format, field, obj->field) | ||
2770 | |||
2768 | static void dump_spu_fields(struct spu *spu) | 2771 | static void dump_spu_fields(struct spu *spu) |
2769 | { | 2772 | { |
2770 | printf("Dumping spu fields at address %p:\n", spu); | 2773 | printf("Dumping spu fields at address %p:\n", spu); |
@@ -2793,13 +2796,18 @@ static void dump_spu_fields(struct spu *spu) | |||
2793 | DUMP_FIELD(spu, "0x%p", timestamp); | 2796 | DUMP_FIELD(spu, "0x%p", timestamp); |
2794 | DUMP_FIELD(spu, "0x%lx", problem_phys); | 2797 | DUMP_FIELD(spu, "0x%lx", problem_phys); |
2795 | DUMP_FIELD(spu, "0x%p", problem); | 2798 | DUMP_FIELD(spu, "0x%p", problem); |
2796 | DUMP_FIELD(spu, "0x%x", problem->spu_runcntl_RW); | 2799 | DUMP_VALUE("0x%x", problem->spu_runcntl_RW, |
2797 | DUMP_FIELD(spu, "0x%x", problem->spu_status_R); | 2800 | in_be32(&spu->problem->spu_runcntl_RW)); |
2798 | DUMP_FIELD(spu, "0x%x", problem->spu_npc_RW); | 2801 | DUMP_VALUE("0x%x", problem->spu_status_R, |
2802 | in_be32(&spu->problem->spu_status_R)); | ||
2803 | DUMP_VALUE("0x%x", problem->spu_npc_RW, | ||
2804 | in_be32(&spu->problem->spu_npc_RW)); | ||
2799 | DUMP_FIELD(spu, "0x%p", priv1); | 2805 | DUMP_FIELD(spu, "0x%p", priv1); |
2800 | 2806 | ||
2801 | if (spu->priv1) | 2807 | if (spu->priv1) { |
2802 | DUMP_FIELD(spu, "0x%lx", priv1->mfc_sr1_RW); | 2808 | DUMP_VALUE("0x%lx", priv1->mfc_sr1_RW, |
2809 | in_be64(&spu->priv1->mfc_sr1_RW)); | ||
2810 | } | ||
2803 | 2811 | ||
2804 | DUMP_FIELD(spu, "0x%p", priv2); | 2812 | DUMP_FIELD(spu, "0x%p", priv2); |
2805 | } | 2813 | } |