From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752068AbdGGQlo (ORCPT ); Fri, 7 Jul 2017 12:41:44 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:33026 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750882AbdGGQln (ORCPT ); Fri, 7 Jul 2017 12:41:43 -0400 Date: Fri, 7 Jul 2017 18:41:32 +0200 (CEST) From: Thomas Gleixner To: Juergen Gross cc: jeffy.chen@rock-chips.com, Linux Kernel Mailing List , xen-devel , Boris Ostrovsky , Konrad Rzeszutek Wilk , Marc Zyngier , Peter Zijlstra Subject: Re: Problem with commit bf22ff45bed664aefb5c4e43029057a199b7070c In-Reply-To: Message-ID: References: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 7 Jul 2017, Juergen Gross wrote: > Commit bf22ff45bed664aefb5c4e43029057a199b7070c ("genirq: Avoid > unnecessary low level irq function calls") breaks Xen guest > save/restore handling. > > The main problem are the PV devices using Xen event channels as > interrupt sources which are represented as an "irq chip" in the kernel. > When saving the guest the event channels are masked internally. At > restore time event channels are re-established and unmasked via > irq_startup(). Unfortunately above commit will let the unmask operation > be a nop as the irq handling doesn't know about the masking done before. Rightfully so. Making assumptions about the inner workings of core code is always wrong. > I have a patch repairing the issue, but I'm not sure if this way to do > it would be accepted. I have exported mask_irq() and I'm doing the > masking now through this function. Would the attached patch be > acceptable? Or is there a better way to solve the problem? Without looking at the patch (too lazy to fiddle with attachments right now), this is definitely wrong. I'll have a look later tonight. Thanks, tglx