[PATCH] staging: unisys: fix IO memory copy in channel.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The function ULTRA_check_channel_client() was recently patched to use
ioread8_rep(). Unfortunately the parameters were incorrectly ordered, and this
causes the function to fail and the guest to not boot.

This patch switches the parameters around and uses memcpy_fromio() instead,
which is clearer since a structure is being copied, not an array, and it
fixes the error message printout later in the function that was using the UUID
value in the channel, rather than the value copied from the channel, which
causes a misleading error to be reported.

Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
---
 drivers/staging/unisys/common-spar/include/channels/channel.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/unisys/common-spar/include/channels/channel.h b/drivers/staging/unisys/common-spar/include/channels/channel.h
index 5ba5e56..4af9457 100644
--- a/drivers/staging/unisys/common-spar/include/channels/channel.h
+++ b/drivers/staging/unisys/common-spar/include/channels/channel.h
@@ -350,14 +350,14 @@ ULTRA_check_channel_client(void __iomem *pChannel,
 	if (uuid_le_cmp(expectedTypeGuid, NULL_UUID_LE) != 0) {
 		uuid_le guid;
 
-		ioread8_rep(&((CHANNEL_HEADER __iomem *)(pChannel))->Type,
-			&guid, sizeof(guid));
+		memcpy_fromio(&guid,
+			      &((CHANNEL_HEADER __iomem *)(pChannel))->Type,
+			      sizeof(guid));
 		/* caller wants us to verify type GUID */
 		if (uuid_le_cmp(guid, expectedTypeGuid) != 0) {
 			CHANNEL_GUID_MISMATCH(expectedTypeGuid, channelName,
 					      "type", expectedTypeGuid,
-					      ((CHANNEL_HEADER __iomem *)
-					       (pChannel))->Type, fileName,
+					      guid, fileName,
 					      lineNumber, logCtx);
 			return 0;
 		}
-- 
1.9.1

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




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux