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.

Signed-off-by: Luke Hart <luke.h...@birchleys.eu>
---
 drivers/staging/unisys/common-spar/include/channels/channel.h | 10 +++++++---
 1 file changed, 7 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..5ba5e56 100644
--- a/drivers/staging/unisys/common-spar/include/channels/channel.h
+++ b/drivers/staging/unisys/common-spar/include/channels/channel.h
@@ -347,10 +347,13 @@ 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 +361,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

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to