summaryrefslogtreecommitdiff
path: root/OvmfPkg/XenBusDxe/TestAndClearBit.c
diff options
context:
space:
mode:
Diffstat (limited to 'OvmfPkg/XenBusDxe/TestAndClearBit.c')
-rw-r--r--OvmfPkg/XenBusDxe/TestAndClearBit.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/OvmfPkg/XenBusDxe/TestAndClearBit.c b/OvmfPkg/XenBusDxe/TestAndClearBit.c
index 410677ee8a..ac01b3ce50 100644
--- a/OvmfPkg/XenBusDxe/TestAndClearBit.c
+++ b/OvmfPkg/XenBusDxe/TestAndClearBit.c
@@ -2,6 +2,7 @@
Implementation of TestAndClearBit using compare-exchange primitive
Copyright (C) 2015, Linaro Ltd.
+ Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -32,7 +33,7 @@ TestAndClearBit (
// ensure we round towards -Inf, and end up with a positive shift in
// 'Bit', even if 'Bit' itself is negative.
//
- Address += (Bit >> 4) * sizeof(UINT16);
+ Address = (VOID*)((UINT8*) Address + ((Bit >> 4) * sizeof(UINT16)));
Mask = 1U << (Bit & 15);
for (Word = *(UINT16 *) Address; Word & Mask; Word = Read) {