[PATCH] unisys: Fix sparse error - accessing __iomem directly
Luke Hart
luke.hart at birchleys.eu
Mon Sep 8 12:44:49 UTC 2014
Copy the channel type into a temporary buffer so that code will work for architectures that don't support MMIO. This now works in same way as other tests in same function.
Re-sent since I initially didn't copy devel at driverdev.osuosl.org and sparmaintainer at unisys.com doesn't seem to be a mailing list (despite what get_maintainer.pl indicates).
Signed-off-by: Luke Hart <luke.hart at birchleys.eu>
---
drivers/staging/unisys/common-spar/include/channels/channel.h | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/unisys/common-spar/include/channels/channel.h b/drivers/staging/unisys/common-spar/include/channels/channel.h
index 2004cfe..ef24f5a 100644
--- a/drivers/staging/unisys/common-spar/include/channels/channel.h
+++ b/drivers/staging/unisys/common-spar/include/channels/channel.h
@@ -347,10 +347,12 @@ ULTRA_check_channel_client(void __iomem *pChannel,
u64 expectedSignature,
char *fileName, int lineNumber, void *logCtx)
{
- if (uuid_le_cmp(expectedTypeGuid, NULL_UUID_LE) != 0)
+ if (uuid_le_cmp(expectedTypeGuid, NULL_UUID_LE) != 0) {
+ uuid_le guid;
+
+ ioread8_rep(&((CHANNEL_HEADER __iomem *)(pChannel))->Type,
+ &guid, sizeof(guid));
/* caller wants us to verify type GUID */
- if (uuid_le_cmp((((CHANNEL_HEADER __iomem *)(pChannel))->Type),
- expectedTypeGuid) != 0) {
+ if (uuid_le_cmp(guid, expectedTypeGuid) != 0) {
CHANNEL_GUID_MISMATCH(expectedTypeGuid, channelName,
"type", expectedTypeGuid,
((CHANNEL_HEADER __iomem *)
@@ -358,6 +360,7 @@ ULTRA_check_channel_client(void __iomem *pChannel,
lineNumber, logCtx);
return 0;
}
+ }
if (expectedMinBytes > 0) /* caller wants us to verify
* channel size */
if (readq(&((CHANNEL_HEADER __iomem *)
--
1.8.5.5
More information about the devel
mailing list