Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751352AbdHAHbl (ORCPT ); Tue, 1 Aug 2017 03:31:41 -0400 Received: from mga11.intel.com ([192.55.52.93]:5645 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750917AbdHAHbk (ORCPT ); Tue, 1 Aug 2017 03:31:40 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,305,1498546800"; d="scan'208";a="999464178" Subject: Re: [PATCH] x86/hpet: Cure interface abuse in the resume path To: Thomas Gleixner , LKML Cc: x86@kernel.org, Peter Zijlstra , Martin Peres , "Rafael J. Wysocki" , Marc Zyngier , jeffy.chen@rock-chips.com References: From: Tomi Sarvela Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo Message-ID: <05930667-0196-4393-85e3-8360ac69028f@intel.com> Date: Tue, 1 Aug 2017 10:30:28 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1685 Lines: 34 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: jeffy.chen@rock-chips.com > 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. Tomi -- Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo