Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753338AbcKGPFH (ORCPT ); Mon, 7 Nov 2016 10:05:07 -0500 Received: from mga07.intel.com ([134.134.136.100]:60766 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752428AbcKGPFD (ORCPT ); Mon, 7 Nov 2016 10:05:03 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,606,1473145200"; d="scan'208";a="650382" Date: Mon, 7 Nov 2016 16:59:14 +0200 From: Mika Westerberg To: Marc Zyngier Cc: Jon Hunter , Thomas Gleixner , linux-kernel@vger.kernel.org Subject: Re: BUG? genirq: irq 14 uses trigger mode 8; requested 0 Message-ID: <20161107145914.GB1447@lahna.fi.intel.com> References: <20161101130231.GD1436@lahna.fi.intel.com> <57b67069-8fc0-800f-b869-1eec3d64111f@nvidia.com> <20161101144400.GE1436@lahna.fi.intel.com> <20161107114902.GA1447@lahna.fi.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1323 Lines: 36 On Mon, Nov 07, 2016 at 02:40:47PM +0000, Marc Zyngier wrote: > Sorry, missed this discussion entirely, as I was on the other side of > the world. Not having a irq_set_type definitely seems odd (and > configuring the trigger outside of the IRQ framework is quite ugly). > > Mika, can you please try the following (which is fully untested)? > > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c > index 48e6d84..822a6b8 100644 > --- a/arch/x86/kernel/apic/io_apic.c > +++ b/arch/x86/kernel/apic/io_apic.c > @@ -1868,6 +1868,15 @@ static int ioapic_set_affinity(struct irq_data *irq_data, > return ret; > } > > +static int ioapic_set_type(struct irq_data *data, unsigned int flow_type) > +{ > + /* > + * The IOAPIC has already been programmed behind our back, > + * just pretend it all went OK, and too bad if it didn't. > + */ > + return 0; > +} > + > static struct irq_chip ioapic_chip __read_mostly = { > .name = "IO-APIC", > .irq_startup = startup_ioapic_irq, > @@ -1876,6 +1885,7 @@ static struct irq_chip ioapic_chip __read_mostly = { > .irq_ack = irq_chip_ack_parent, > .irq_eoi = ioapic_ack_level, > .irq_set_affinity = ioapic_set_affinity, > + .irq_set_type = ioapic_set_type, > .flags = IRQCHIP_SKIP_SET_WAKE, > }; Thanks! This fixes the problem for me.