On 29/06/2017 14:05, Wanpeng Li wrote:
> +            /* In case the sw timer triggered in the window */
> +            if (!apic_lvtt_period(apic)) {
> +                if (r || atomic_read(&apic->lapic_timer.pending)) {
> +                    need_cancel = true;
> +                    if (r)
> +                    apic_timer_expired(apic);
> +                }
> +            }

Yes, that's equivalent.  The compiler should thread the jumps as if it were:

        if (r) {
                apic_timer_expired(apic);
                goto cancel_timer;
        }
        if (atomic_read(&apic->lapic_timer.pending))
                goto cancel_timer;

so it produces pretty good code too.

Paolo

Reply via email to