Message ID | 5CD2CFE6020000780022CCC9@prv1-mh.provo.novell.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86: EOI timer corrections / improvements | expand |
On Wed, May 08, 2019 at 06:47:34AM -0600, Jan Beulich wrote: > This is a timer handler, so it gets entered with IRQs enabled. Therefore > there's no need to save/restore the IRQ masking flag. > > Additionally the final switch()'es ACKTYPE_EOI case re-acquires the lock > just for it to be dropped again right away. Do away with this. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com> Thanks.
On 08/05/2019 13:47, Jan Beulich wrote: > This is a timer handler, so it gets entered with IRQs enabled. Therefore > there's no need to save/restore the IRQ masking flag. > > Additionally the final switch()'es ACKTYPE_EOI case re-acquires the lock > just for it to be dropped again right away. Do away with this. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> Yes - that is rather silly. Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
--- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -1106,9 +1106,8 @@ static void irq_guest_eoi_timer_fn(void unsigned int irq = desc - irq_desc; irq_guest_action_t *action; cpumask_t cpu_eoi_map; - unsigned long flags; - spin_lock_irqsave(&desc->lock, flags); + spin_lock_irq(&desc->lock); if ( !(desc->status & IRQ_GUEST) ) goto out; @@ -1145,12 +1144,11 @@ static void irq_guest_eoi_timer_fn(void cpumask_copy(&cpu_eoi_map, action->cpu_eoi_map); spin_unlock_irq(&desc->lock); on_selected_cpus(&cpu_eoi_map, set_eoi_ready, desc, 0); - spin_lock_irq(&desc->lock); - break; + return; } out: - spin_unlock_irqrestore(&desc->lock, flags); + spin_unlock_irq(&desc->lock); } static void __do_IRQ_guest(int irq)
This is a timer handler, so it gets entered with IRQs enabled. Therefore there's no need to save/restore the IRQ masking flag. Additionally the final switch()'es ACKTYPE_EOI case re-acquires the lock just for it to be dropped again right away. Do away with this. Signed-off-by: Jan Beulich <jbeulich@suse.com>