On Fri, Aug 25, 2017 at 06:11:18PM -0300, Daniel Henrique Barboza wrote: > v2: > - rebased with ppc-for-2.11 > - function 'spapr_cas_completed' dropped > - function 'spapr_drc_needed' made public and it's now used inside > 'spapr_hotplugged_dev_before_cas' > - 'spapr_drc_needed' was changed to support the migration of logical > DRCs with devs attached in UNUSED state > - new function: 'spapr_clear_pending_events'. This function is used > inside ppc_spapr_reset to reset the pending_events QTAILQ Thanks for the followup, unfortunately there is still an important bug left, see comments on the patch itself. At a higher level, though, looking at the event reset code made me think of a possible even simpler solution to this problem. The queue of events (both hotplug and epow) is already in a simple internal form that's independent of the two delivery mechanisms. The only difference is what event source triggers the interrupt. This explains why an extra hotplug event after the CAS "unstuck" the queue. AFAICT, a spurious interrupts here should be harmless - the kernel will just check the queue and find nothing there. So, it should be sufficient to, after CAS, pulse the hotplug queue interrupt if the hotplug queue is negotiated. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson