aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-11-22 18:46:39 -0500
committerPaul Mackerras <paulus@samba.org>2006-12-04 04:40:22 -0500
commit437a0706837d09d8ab071c6790da07d9d6bb3d22 (patch)
tree2f14b6e63bcc258586a05fbacce5c2f06fb1fead
parent5850dd8f6d4e79484d498c0d77b223d1041f9954 (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>
-rw-r--r--arch/powerpc/xmon/xmon.c22
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) \
2752do { \ 2752do { \
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
2768static void dump_spu_fields(struct spu *spu) 2771static 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}