summaryrefslogtreecommitdiffstats
path: root/ArmPkg/Drivers
diff options
context:
space:
mode:
authorRobbie King <robbiek@xsightlabs.com>2022-07-01 11:06:17 -0400
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2022-07-01 15:28:08 +0000
commit7861b24dc9c520449160e6322627587f0922b237 (patch)
treed68a13a1d34bc943930159c33843498d4e951319 /ArmPkg/Drivers
parent70586d4e3af67dcc4fa2cd49524b7e5b71e0c7e1 (diff)
downloadedk2-7861b24dc9c520449160e6322627587f0922b237.tar.gz
edk2-7861b24dc9c520449160e6322627587f0922b237.tar.bz2
edk2-7861b24dc9c520449160e6322627587f0922b237.zip
ArmPkg/Drivers: ArmGicIsInterruptEnabled returns incorrect value
The issue appears to have been introduced by: 41fb5d46 : ArmPkg/ArmGic: Use the GIC Redistributor instead of GIC Distributor for GICv3 The changes to ArmGicIsInterruptEnabled() introduced the error where the Boolean result is assigned to Interrupts, but then the bit position check is performed again (against the computed Boolean result instead of the interrupt mask) during the return statement. Fix removes erroneous test and relies on boolean test made at return. Signed-off-by: Robbie King <robbiek@xsightlabs.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'ArmPkg/Drivers')
-rw-r--r--ArmPkg/Drivers/ArmGic/ArmGicLib.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/ArmGicLib.c
index 58ab45f812..dd3670c7cc 100644
--- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c
+++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c
@@ -366,10 +366,9 @@ ArmGicIsInterruptEnabled (
FeaturePcdGet (PcdArmGicV3WithV2Legacy) ||
SourceIsSpi (Source))
{
- Interrupts = ((MmioRead32 (
- GicDistributorBase + ARM_GIC_ICDISER + (4 * RegOffset)
- )
- & (1 << RegShift)) != 0);
+ Interrupts = MmioRead32 (
+ GicDistributorBase + ARM_GIC_ICDISER + (4 * RegOffset)
+ );
} else {
GicCpuRedistributorBase = GicGetCpuRedistributorBase (
GicRedistributorBase,