[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.11.1506201002570.4107@nanos>
Date: Sat, 20 Jun 2015 10:13:22 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>
cc: Jiang Liu <jiang.liu@...ux.intel.com>,
Borislav Petkov <bp@...en8.de>, linux-kernel@...r.kernel.org,
Sergey Senozhatsky <sergey.senozhatsky@...il.com>
Subject: Re: [-next] !irqd_can_balance() WARNINGs at irq_move_masked_irq()
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/
Powered by blists - more mailing lists