Staging: unisys: Fixup sparse warnings for dereferencing noderef types.

Fixed the usage of the following so they don't try to dereference
pointers to iomem.
	CHANNEL_U64_MISMATCH
	CHANNEL_U32_MISMATCH
	wait_for_valid_guid

Signed-off-by: Ken Cox <jkc@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Ken Cox 2014-05-22 12:31:13 -05:00 committed by Greg Kroah-Hartman
parent 60e1741fc3
commit e40d1c8ad9
3 changed files with 26 additions and 17 deletions

View File

@ -333,8 +333,9 @@ ULTRA_check_channel_client(void __iomem *pChannel,
(pChannel))->Size) < expectedMinBytes) {
CHANNEL_U64_MISMATCH(expectedTypeGuid, channelName,
"size", expectedMinBytes,
((CHANNEL_HEADER __iomem *)
(pChannel))->Size, fileName,
readq(&((CHANNEL_HEADER __iomem *)
(pChannel))->Size),
fileName,
lineNumber, logCtx);
return 0;
}
@ -344,9 +345,9 @@ ULTRA_check_channel_client(void __iomem *pChannel,
!= expectedVersionId) {
CHANNEL_U32_MISMATCH(expectedTypeGuid, channelName,
"version", expectedVersionId,
((CHANNEL_HEADER __iomem *)
(pChannel))->VersionId, fileName,
lineNumber, logCtx);
readl(&((CHANNEL_HEADER __iomem *)
(pChannel))->VersionId),
fileName, lineNumber, logCtx);
return 0;
}
if (expectedSignature > 0) /* caller wants us to verify
@ -355,8 +356,9 @@ ULTRA_check_channel_client(void __iomem *pChannel,
!= expectedSignature) {
CHANNEL_U64_MISMATCH(expectedTypeGuid, channelName,
"signature", expectedSignature,
((CHANNEL_HEADER __iomem *)
(pChannel))->Signature, fileName,
readq(&((CHANNEL_HEADER __iomem *)
(pChannel))->Signature),
fileName,
lineNumber, logCtx);
return 0;
}

View File

@ -194,14 +194,21 @@ struct chaninfo {
* correctly at DEVICE_CREATE time, INSTEAD OF waiting until
* DEVICE_CONFIGURE time.
*/
#define WAIT_FOR_VALID_GUID(guid) \
do { \
while (uuid_le_cmp(guid, NULL_UUID_LE) == 0) { \
LOGERR("Waiting for non-0 GUID (why???)...\n"); \
UIS_THREAD_WAIT_SEC(5); \
} \
LOGERR("OK... GUID is non-0 now\n"); \
} while (0)
static inline void
wait_for_valid_guid(uuid_le __iomem *guid)
{
uuid_le tmpguid;
while (1) {
memcpy_fromio((void *)&tmpguid,
(void __iomem *)guid, sizeof(uuid_le));
if (uuid_le_cmp(tmpguid, NULL_UUID_LE) != 0)
break;
LOGERR("Waiting for non-0 GUID (why???)...\n");
UIS_THREAD_WAIT_SEC(5);
}
LOGERR("OK... GUID is non-0 now\n");
}
/* CopyFragsInfoFromSkb returns the number of entries added to frags array
* Returns -1 on failure.

View File

@ -447,7 +447,7 @@ create_device(CONTROLVM_MESSAGE *msg, char *buf)
struct guest_msgs cmd;
if (!uuid_le_cmp(dev->channelTypeGuid,
UltraVhbaChannelProtocolGuid)) {
WAIT_FOR_VALID_GUID(((CHANNEL_HEADER
wait_for_valid_guid(&((CHANNEL_HEADER
__iomem *) (dev->
chanptr))->
Type);
@ -472,7 +472,7 @@ create_device(CONTROLVM_MESSAGE *msg, char *buf)
} else
if (!uuid_le_cmp(dev->channelTypeGuid,
UltraVnicChannelProtocolGuid)) {
WAIT_FOR_VALID_GUID(((CHANNEL_HEADER
wait_for_valid_guid(&((CHANNEL_HEADER
__iomem *) (dev->
chanptr))->
Type);