From: Oliver Kurth Date: Tue, 5 Jun 2018 22:47:41 +0000 (-0700) Subject: Various small fixes to windows balloon driver; not applicable to open-vm-tools. X-Git-Tag: stable-11.0.0~542 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3fa62739ec86f00b90c5a7586698125093de8bc;p=thirdparty%2Fopen-vm-tools.git Various small fixes to windows balloon driver; not applicable to open-vm-tools. --- diff --git a/open-vm-tools/modules/shared/vmmemctl/backdoor_balloon.c b/open-vm-tools/modules/shared/vmmemctl/backdoor_balloon.c index b6633f6a8..85940e64c 100644 --- a/open-vm-tools/modules/shared/vmmemctl/backdoor_balloon.c +++ b/open-vm-tools/modules/shared/vmmemctl/backdoor_balloon.c @@ -246,19 +246,16 @@ Backdoor_MonitorGetTarget(Balloon *b, // IN/OUT limit = OS_ReservedPageGetLimit(); if (!BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { - uint32 limit32; - /* Ensure limit fits in 32-bits */ - limit32 = (uint32)limit; - if (limit32 != limit) { - return BALLOON_FAILURE; + if (limit != (uint32)limit) { + limit = (uint32)limit; } } status = BackdoorCmd(BALLOON_BDOOR_CMD_TARGET, limit, 0, target, &b->resetFlag); - if (!BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { - *target = MAX(MAX_UINT32, *target); + if (target != NULL && !BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { + *target = MIN(MAX_UINT32, *target); } /* update stats */ @@ -307,8 +304,8 @@ Backdoor_MonitorLockPage(Balloon *b, // IN/OUT status = BackdoorCmd(BALLOON_BDOOR_CMD_LOCK, ppn, 0, target, &b->resetFlag); - if (!BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { - *target = MAX(MAX_UINT32, *target); + if (target != NULL && !BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { + *target = MIN(MAX_UINT32, *target); } /* update stats */ @@ -357,8 +354,8 @@ Backdoor_MonitorUnlockPage(Balloon *b, // IN/OUT status = BackdoorCmd(BALLOON_BDOOR_CMD_UNLOCK, ppn, 0, target, &b->resetFlag); - if (!BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { - *target = MAX(MAX_UINT32, *target); + if (target != NULL && !BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { + *target = MIN(MAX_UINT32, *target); } /* update stats */ @@ -403,8 +400,8 @@ Backdoor_MonitorLockPagesBatched(Balloon *b, // IN/OUT } status = BackdoorCmd(cmd, (size_t)ppn, nPages, target, &b->resetFlag); - if (!BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { - *target = MAX(MAX_UINT32, *target); + if (target != NULL && !BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { + *target = MIN(MAX_UINT32, *target); } /* update stats */ @@ -449,8 +446,8 @@ Backdoor_MonitorUnlockPagesBatched(Balloon *b, // IN/OUT } status = BackdoorCmd(cmd, (size_t)ppn, nPages, target, &b->resetFlag); - if (!BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { - *target = MAX(MAX_UINT32, *target); + if (target != NULL && !BackdoorHasCapability(b, BALLOON_64_BIT_TARGET)) { + *target = MIN(MAX_UINT32, *target); } /* update stats */