All of lore.kernel.org
 help / color / mirror / Atom feed
From: "irqchip-bot for Samuel Holland" <tip-bot2@linutronix.de>
To: linux-kernel@vger.kernel.org
Cc: Samuel Holland <samuel@sholland.org>,
	Marc Zyngier <maz@kernel.org>,
	tglx@linutronix.de
Subject: [irqchip: irq/irqchip-next] genirq: Provide an IRQ affinity mask in non-SMP configs
Date: Thu, 07 Jul 2022 08:50:00 -0000	[thread overview]
Message-ID: <165718380003.15455.9821341691594991462.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20220701200056.46555-9-samuel@sholland.org>

The following commit has been merged into the irq/irqchip-next branch of irqchip:

Commit-ID:     aa0813581b8d37bdd91cd40b67ef79ffa45104b2
Gitweb:        https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/aa0813581b8d37bdd91cd40b67ef79ffa45104b2
Author:        Samuel Holland <samuel@sholland.org>
AuthorDate:    Fri, 01 Jul 2022 15:00:56 -05:00
Committer:     Marc Zyngier <maz@kernel.org>
CommitterDate: Thu, 07 Jul 2022 09:38:04 +01:00

genirq: Provide an IRQ affinity mask in non-SMP configs

IRQ affinity masks are not allocated in uniprocessor configurations.
This requires special case non-SMP code in drivers for irqchips which
have per-CPU enable or mask registers.

Since IRQ affinity is always the same in a uniprocessor configuration,
we can provide a correct affinity mask without allocating one per IRQ.

By returning a real cpumask from irq_data_get_affinity_mask even when
SMP is disabled, irqchip drivers which iterate over that mask will
automatically do the right thing.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220701200056.46555-9-samuel@sholland.org
---
 include/linux/irq.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index 02073f7..996e227 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -151,7 +151,9 @@ struct irq_common_data {
 #endif
 	void			*handler_data;
 	struct msi_desc		*msi_desc;
+#ifdef CONFIG_SMP
 	cpumask_var_t		affinity;
+#endif
 #ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK
 	cpumask_var_t		effective_affinity;
 #endif
@@ -882,13 +884,19 @@ static inline int irq_data_get_node(struct irq_data *d)
 static inline
 const struct cpumask *irq_data_get_affinity_mask(struct irq_data *d)
 {
+#ifdef CONFIG_SMP
 	return d->common->affinity;
+#else
+	return cpumask_of(0);
+#endif
 }
 
 static inline void irq_data_update_affinity(struct irq_data *d,
 					    const struct cpumask *m)
 {
+#ifdef CONFIG_SMP
 	cpumask_copy(d->common->affinity, m);
+#endif
 }
 
 static inline const struct cpumask *irq_get_affinity_mask(int irq)

      reply	other threads:[~2022-07-07  8:50 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-01 20:00 [PATCH v3 0/8] genirq: Provide real IRQ affinity masks in non-SMP configs Samuel Holland
2022-07-01 20:00 ` Samuel Holland
2022-07-01 20:00 ` Samuel Holland
2022-07-01 20:00 ` Samuel Holland
2022-07-01 20:00 ` [PATCH v3 1/8] irqchip/mips-gic: Only register IPI domain when SMP is enabled Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-05 13:52   ` Serge Semin
2022-07-05 13:52     ` Serge Semin
2022-07-05 13:52     ` Serge Semin
2022-07-05 13:52     ` Serge Semin
2022-07-07  8:22     ` Marc Zyngier
2022-07-07  8:22       ` Marc Zyngier
2022-07-07  8:22       ` Marc Zyngier
2022-07-07 10:45       ` Serge Semin
2022-07-07 10:45         ` Serge Semin
2022-07-07 10:45         ` Serge Semin
2022-07-07  8:50   ` [irqchip: irq/irqchip-next] " irqchip-bot for Samuel Holland
2022-07-01 20:00 ` [PATCH v3 2/8] genirq: GENERIC_IRQ_IPI depends on SMP Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-07  8:50   ` [irqchip: irq/irqchip-next] " irqchip-bot for Samuel Holland
2022-07-01 20:00 ` [PATCH v3 3/8] genirq: GENERIC_IRQ_EFFECTIVE_AFF_MASK " Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-07  8:50   ` [irqchip: irq/irqchip-next] " irqchip-bot for Samuel Holland
2022-07-01 20:00 ` [PATCH v3 4/8] genirq: Drop redundant irq_init_effective_affinity Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-07  8:50   ` [irqchip: irq/irqchip-next] " irqchip-bot for Samuel Holland
2022-07-01 20:00 ` [PATCH v3 5/8] genirq: Refactor accessors to use irq_data_get_affinity_mask Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-07  8:50   ` [irqchip: irq/irqchip-next] " irqchip-bot for Samuel Holland
2022-07-01 20:00 ` [PATCH v3 6/8] genirq: Add and use an irq_data_update_affinity helper Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-03 15:22   ` Oleksandr
2022-07-03 15:22     ` Oleksandr
2022-07-03 15:22     ` Oleksandr
2022-07-03 15:22     ` Oleksandr
2022-07-07  8:39     ` Marc Zyngier
2022-07-07  8:39       ` Marc Zyngier
2022-07-07  8:39       ` Marc Zyngier
2022-07-07  9:37       ` Oleksandr Tyshchenko
2022-07-07  9:37         ` Oleksandr Tyshchenko
2022-07-07  9:37         ` Oleksandr Tyshchenko
2022-07-07  8:50   ` [irqchip: irq/irqchip-next] " irqchip-bot for Samuel Holland
2022-07-01 20:00 ` [PATCH v3 7/8] genirq: Return a const cpumask from irq_data_get_affinity_mask Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-03 14:57   ` Michael Kelley (LINUX)
2022-07-03 14:57     ` Michael Kelley (LINUX)
2022-07-03 14:57     ` Michael Kelley (LINUX)
2022-07-03 14:57     ` Michael Kelley (LINUX) via iommu
2022-07-03 15:04   ` Andy Shevchenko
2022-07-03 15:04     ` Andy Shevchenko
2022-07-03 15:04     ` Andy Shevchenko
2022-07-03 15:04     ` Andy Shevchenko
2022-07-07  8:50   ` [irqchip: irq/irqchip-next] " irqchip-bot for Samuel Holland
2022-07-01 20:00 ` [PATCH v3 8/8] genirq: Provide an IRQ affinity mask in non-SMP configs Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-01 20:00   ` Samuel Holland
2022-07-07  8:50   ` irqchip-bot for Samuel Holland [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=165718380003.15455.9821341691594991462.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=samuel@sholland.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.