[lkml]   [2017]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] x86/hpet: Cure interface abuse in the resume path
On 31/07/17 23:07, Thomas Gleixner wrote:
> The HPET resume path abuses irq_domain_[de]activate_irq() to restore the
> MSI message in the HPET chip for the boot CPU on resume and it relies on an
> implementation detail of the interrupt core code, which magically makes the
> HPET unmask call invoked via a irq_disable/enable pair. This worked as long
> as the irq code did unconditionally invoke the unmask() callback. With the
> recent changes which keep track of the masked state to avoid expensive
> hardware access, this does not longer work. As a consequence the HPET timer
> interrupts are not unmasked which breaks resume as the boot CPU waits
> forever that a timer interrupt arrives.
> Make the restore of the MSI message explicit and invoke the unmask()
> function directly. While at it get rid of the pointless affinity setting as
> nothing can change the affinity of the interrupt and the vector across
> suspend/resume. The restore of the MSI message reestablishes the previous
> affinity setting which is the correct one.
> Fixes: bf22ff45bed6 ("genirq: Avoid unnecessary low level irq function calls")
> Reported-by: Martin Peres <>
> Reported-by: Tomi Sarvela <>
> Signed-off-by: Thomas Gleixner <>
> Cc:
> Cc: Marc Zyngier <>
> Cc: Peter Ziljstra <>
> Cc: "Rafael J. Wysocki" <>

Tested-by: Tomi Sarvela <>

Tested only on the regressed Eagle Lake testhost. This patch fixes the
suspend/resume issue.

Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo

 \ /
  Last update: 2017-08-01 09:32    [W:0.054 / U:32.972 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site