Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751993AbbFTINj (ORCPT ); Sat, 20 Jun 2015 04:13:39 -0400 Received: from www.linutronix.de ([62.245.132.108]:60469 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752030AbbFTINX (ORCPT ); Sat, 20 Jun 2015 04:13:23 -0400 Date: Sat, 20 Jun 2015 10:13:22 +0200 (CEST) From: Thomas Gleixner To: Sergey Senozhatsky cc: Jiang Liu , Borislav Petkov , linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: Re: [-next] !irqd_can_balance() WARNINGs at irq_move_masked_irq() In-Reply-To: <20150620075727.GC365@swordfish> Message-ID: References: <20150619071123.GA511@swordfish> <20150620043110.GA365@swordfish> <20150620075727.GC365@swordfish> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1988 Lines: 77 On Sat, 20 Jun 2015, Sergey Senozhatsky wrote: > On (06/20/15 09:52), Thomas Gleixner wrote: > [..] > > > > Can you please send me the dmesg of the second patch as well? > > > > I'm sorry, what second patch? The one which I forgot to append when I replied yesterday. Appended now. Thanks, tglx ---- diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index e2449cf38b06..c47aab35a17e 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c @@ -578,7 +578,7 @@ static void hpet_msi_capability_lookup(unsigned int start_timer) continue; irq = hpet_assign_irq(hpet_domain, hdev, hdev->num); - if (irq < 0) + if (irq <= 0) continue; sprintf(hdev->name, "hpet%d", i); diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index b1c7e8f46bfb..49f9b6d2edf6 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -209,6 +209,9 @@ int irq_set_affinity_locked(struct irq_data *data, const struct cpumask *mask, if (!chip || !chip->irq_set_affinity) return -EINVAL; + /* Figure out where the set affinitycall comes from */ + WARN_ON(data->irq == 0); + if (irq_can_move_pcntxt(data)) { ret = irq_do_set_affinity(data, mask, force); } else { diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c index dd203e276b07..00bbabbc144b 100644 --- a/kernel/irq/migration.c +++ b/kernel/irq/migration.c @@ -12,16 +12,17 @@ void irq_move_masked_irq(struct irq_data *idata) if (likely(!irqd_is_setaffinity_pending(&desc->irq_data))) return; + irqd_clr_move_pending(&desc->irq_data); + + /* * Paranoia: cpu-local interrupts shouldn't be calling in here anyway. */ - if (!irqd_can_balance(&desc->irq_data)) { + if (irqd_is_per_cpu(&desc->irq_data)) { WARN_ON(1); return; } - irqd_clr_move_pending(&desc->irq_data); - if (unlikely(cpumask_empty(desc->pending_mask))) return; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in Please read the FAQ at http://www.tux.org/lkml/