From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by mx.groups.io with SMTP id smtpd.web09.5572.1633991091433894804 for ; Mon, 11 Oct 2021 15:24:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=AEn2TNe1; spf=pass (domain: kernel.org, ip: 198.145.29.99, mailfrom: ardb@kernel.org) Received: by mail.kernel.org (Postfix) with ESMTPSA id D1E8D60F43 for ; Mon, 11 Oct 2021 22:24:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1633991090; bh=NgEcxN2F3sVVK658CDcMNNb7omBHMo1DjLHBNrYaQoQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=AEn2TNe1g3kmdKOCb5E5n6ds7kTBjhQK1DQIX65thwouDHhc82wql6/U06q8qxYor Df/Qq/fWJSAxoM9jYNUBRAhomxGWNx/5FRfbnW7449eJKs6ueZTdYgRuHzukRGUPP0 A/yfXc0CrhJ9/JL4vs/sufIsFD/ImHbsqPl8yGnRS/CK8RNYxAvpTnWrlvW4mADG5+ avZhI7enS4M7sOKjWxzb7CNcKfesbsKk/20sxVpn/gokgpQTLoekEsqmQhSQGlnH5T K4iZfuBdEb/8OWIT61UkgLx9zEbXk3SYD93j1aQnS+imk28AmjSkElSoUSmLtsYV6F bRC0ICiy47QKw== Received: by mail-ot1-f46.google.com with SMTP id g62-20020a9d2dc4000000b0054752cfbc59so23572528otb.1 for ; Mon, 11 Oct 2021 15:24:50 -0700 (PDT) X-Gm-Message-State: AOAM5320S+kpnA0vsqWmz+DhNDvo55Tyb/C5CvJ8WFnQhP0jzD0T2QKM lgxIWVRscdGUwTGhcVWz9WBe5l06CuQ0LZQudmk= X-Google-Smtp-Source: ABdhPJwyoBmAu6BIxy/0X7jgEKYB/LvXIRQ0L5hp9evvkuZl3J2lBl++ybQyWDUvS5sLL7Y3n1P91QHl/ttdG3sVmZM= X-Received: by 2002:a9d:63c7:: with SMTP id e7mr23088261otl.30.1633991090154; Mon, 11 Oct 2021 15:24:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "Ard Biesheuvel" Date: Tue, 12 Oct 2021 00:24:38 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] ArmPkg/TimerDxe: Delay End Of Interrupt Signal To: Ashish Singhal , Marc Zyngier Cc: edk2-devel-groups-io , Leif Lindholm , Ard Biesheuvel Content-Type: text/plain; charset="UTF-8" (+ Marc) On Mon, 11 Oct 2021 at 23:40, Ashish Singhal wrote: > > In an interrupt handler for the timers, it is important that > software clears the interrupt before deactivating the interrupt > in the GIC. Otherwise the GIC will re-signal the same interrupt > again. > > Signed-off-by: Ashish Singhal Please don't spam us with almost identical versions of the same patch without even documenting what the difference is. > --- > ArmPkg/Drivers/TimerDxe/TimerDxe.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/ArmPkg/Drivers/TimerDxe/TimerDxe.c b/ArmPkg/Drivers/TimerDxe/TimerDxe.c > index 0370620fae..46e5bbf287 100644 > --- a/ArmPkg/Drivers/TimerDxe/TimerDxe.c > +++ b/ArmPkg/Drivers/TimerDxe/TimerDxe.c > @@ -300,10 +300,6 @@ TimerInterruptHandler ( > // > OriginalTPL = gBS->RaiseTPL (TPL_HIGH_LEVEL); > > - // Signal end of interrupt early to help avoid losing subsequent ticks > - // from long duration handlers > - gInterrupt->EndOfInterrupt (gInterrupt, Source); > - > // Check if the timer interrupt is active > if ((ArmGenericTimerGetTimerCtrlReg () ) & ARM_ARCH_TIMER_ISTATUS) { > > @@ -335,6 +331,11 @@ TimerInterruptHandler ( > ArmInstructionSynchronizationBarrier (); > } > > + // In an interrupt handler for the timers, it is important that software clears the interrupt > + // before deactivating the interrupt in the GIC. Otherwise the GIC will re-signal the same > + // interrupt again. > + gInterrupt->EndOfInterrupt (gInterrupt, Source); > + > gBS->RestoreTPL (OriginalTPL); > } > > -- > 2.17.1 >