|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Avoid race conditions in HPET initialization
>>> On 03.01.14 at 14:15, Frediano Ziglio <frediano.ziglio@xxxxxxxxxx> wrote:
> Avoid turning on legacy interrupts before hpet_event has been set up.
> Particularly, the spinlock can be uninitialised at the point at which
> the interrupt first arrives.
I suppose you actually saw this issue, but I currently fail to see how
it would occur:
spin_lock_init(&hpet_events[i].lock);
wmb();
hpet_events[i].event_handler = handle_hpet_broadcast;
guarantees that the lock gets initialized before the handler gets set
(i.e. if anything you'd do a call through a NULL pointer). And this
if ( !num_hpets_used )
hpet_events->flags = HPET_EVT_LEGACY;
happens even later, yet hpet_legacy_irq_tick() checks that flag
before calling the handler (and hence before taking the lock).
Before applying the patch I'd like to understand what I'm
overlooking.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |