]> Git Repo - linux.git/commitdiff
genirq: Remove IRQ_MOVE_PCNTXT and related code
authorThomas Gleixner <[email protected]>
Tue, 10 Dec 2024 10:34:17 +0000 (11:34 +0100)
committerThomas Gleixner <[email protected]>
Wed, 15 Jan 2025 20:38:53 +0000 (21:38 +0100)
Now that x86 is converted over to use the IRQCHIP_MOVE_DEFERRED flags,
remove IRQ*_MOVE_PCNTXT and related code.

Signed-off-by: Thomas Gleixner <[email protected]>
Link: https://lore.kernel.org/all/[email protected]
arch/x86/Kconfig
include/linux/irq.h
kernel/irq/chip.c
kernel/irq/debugfs.c
kernel/irq/internals.h
kernel/irq/settings.h

index df0fd72dc9c55665cbcabd06b03bdcf7e8ba0a97..9d7bd0ae48c4260f4abb6dbedc696e3915c230ea 100644 (file)
@@ -173,7 +173,6 @@ config X86
        select GENERIC_IRQ_RESERVATION_MODE
        select GENERIC_IRQ_SHOW
        select GENERIC_PENDING_IRQ              if SMP
-       select GENERIC_PENDING_IRQ_CHIPFLAGS    if SMP
        select GENERIC_PTDUMP
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_TIME_VSYSCALL
index 6e021548fa0a414ba7d1e73b1029500e628b71ef..8daa17f0107ac06ff0c05e4ba94e62f50ea27d5c 100644 (file)
@@ -64,7 +64,6 @@ enum irqchip_irq_state;
  * IRQ_NOAUTOEN                        - Interrupt is not automatically enabled in
  *                               request/setup_irq()
  * IRQ_NO_BALANCING            - Interrupt cannot be balanced (affinity set)
- * IRQ_MOVE_PCNTXT             - Interrupt can be migrated from process context
  * IRQ_NESTED_THREAD           - Interrupt nests into another thread
  * IRQ_PER_CPU_DEVID           - Dev_id is a per-cpu variable
  * IRQ_IS_POLLED               - Always polled by another interrupt. Exclude
@@ -93,7 +92,6 @@ enum {
        IRQ_NOREQUEST           = (1 << 11),
        IRQ_NOAUTOEN            = (1 << 12),
        IRQ_NO_BALANCING        = (1 << 13),
-       IRQ_MOVE_PCNTXT         = (1 << 14),
        IRQ_NESTED_THREAD       = (1 << 15),
        IRQ_NOTHREAD            = (1 << 16),
        IRQ_PER_CPU_DEVID       = (1 << 17),
@@ -105,7 +103,7 @@ enum {
 
 #define IRQF_MODIFY_MASK       \
        (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
-        IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
+        IRQ_NOAUTOEN | IRQ_LEVEL | IRQ_NO_BALANCING | \
         IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \
         IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY | IRQ_HIDDEN)
 
@@ -201,8 +199,6 @@ struct irq_data {
  * IRQD_LEVEL                  - Interrupt is level triggered
  * IRQD_WAKEUP_STATE           - Interrupt is configured for wakeup
  *                               from suspend
- * IRQD_MOVE_PCNTXT            - Interrupt can be moved in process
- *                               context
  * IRQD_IRQ_DISABLED           - Disabled state of the interrupt
  * IRQD_IRQ_MASKED             - Masked state of the interrupt
  * IRQD_IRQ_INPROGRESS         - In progress state of the interrupt
@@ -233,7 +229,6 @@ enum {
        IRQD_AFFINITY_SET               = BIT(12),
        IRQD_LEVEL                      = BIT(13),
        IRQD_WAKEUP_STATE               = BIT(14),
-       IRQD_MOVE_PCNTXT                = BIT(15),
        IRQD_IRQ_DISABLED               = BIT(16),
        IRQD_IRQ_MASKED                 = BIT(17),
        IRQD_IRQ_INPROGRESS             = BIT(18),
@@ -338,11 +333,6 @@ static inline bool irqd_is_wakeup_set(struct irq_data *d)
        return __irqd_to_state(d) & IRQD_WAKEUP_STATE;
 }
 
-static inline bool irqd_can_move_in_process_context(struct irq_data *d)
-{
-       return __irqd_to_state(d) & IRQD_MOVE_PCNTXT;
-}
-
 static inline bool irqd_irq_disabled(struct irq_data *d)
 {
        return __irqd_to_state(d) & IRQD_IRQ_DISABLED;
index 7989da287d4ca1a531eb7e15d20840c7f07e279c..c901436ebd9f45f297ce227735590307517994a4 100644 (file)
@@ -47,13 +47,6 @@ int irq_set_chip(unsigned int irq, const struct irq_chip *chip)
                return -EINVAL;
 
        desc->irq_data.chip = (struct irq_chip *)(chip ?: &no_irq_chip);
-
-       if (IS_ENABLED(CONFIG_GENERIC_PENDING_IRQ_CHIPFLAGS) && chip) {
-               if (chip->flags & IRQCHIP_MOVE_DEFERRED)
-                       irqd_clear(&desc->irq_data, IRQD_MOVE_PCNTXT);
-               else
-                       irqd_set(&desc->irq_data, IRQD_MOVE_PCNTXT);
-       }
        irq_put_desc_unlock(desc, flags);
        /*
         * For !CONFIG_SPARSE_IRQ make the irq show up in
@@ -1129,13 +1122,6 @@ void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set)
        if (irq_settings_is_level(desc))
                irqd_set(&desc->irq_data, IRQD_LEVEL);
 
-       /* Keep this around until x86 is converted over */
-       if (!IS_ENABLED(CONFIG_GENERIC_PENDING_IRQ_CHIPFLAGS)) {
-               irqd_clear(&desc->irq_data, IRQD_MOVE_PCNTXT);
-               if (irq_settings_can_move_pcntxt(desc))
-                       irqd_set(&desc->irq_data, IRQD_MOVE_PCNTXT);
-       }
-
        tmp = irq_settings_get_trigger_mask(desc);
        if (tmp != IRQ_TYPE_NONE)
                trigger = tmp;
index 975eb8d681682cfa4743545ab0f477d14ee7396d..ca142b9a4db3dbc730530ad20b5e8f17b4257911 100644 (file)
@@ -109,7 +109,6 @@ static const struct irq_bit_descr irqdata_states[] = {
        BIT_MASK_DESCR(IRQD_NO_BALANCING),
 
        BIT_MASK_DESCR(IRQD_SINGLE_TARGET),
-       BIT_MASK_DESCR(IRQD_MOVE_PCNTXT),
        BIT_MASK_DESCR(IRQD_AFFINITY_SET),
        BIT_MASK_DESCR(IRQD_SETAFFINITY_PENDING),
        BIT_MASK_DESCR(IRQD_AFFINITY_MANAGED),
index b61fc64c3484400106f871a414e275f4bcadd8ab..a979523640d0a05c1481027a304fa2b85a352a0f 100644 (file)
@@ -421,7 +421,7 @@ irq_init_generic_chip(struct irq_chip_generic *gc, const char *name,
 #ifdef CONFIG_GENERIC_PENDING_IRQ
 static inline bool irq_can_move_pcntxt(struct irq_data *data)
 {
-       return irqd_can_move_in_process_context(data);
+       return !(data->chip->flags & IRQCHIP_MOVE_DEFERRED);
 }
 static inline bool irq_move_pending(struct irq_data *data)
 {
index 7b7efb1a114bd8132e45409fcc99c7a10492b5e6..00b3bd127692cb8ea8bd0750b35e589fb15367af 100644 (file)
@@ -11,7 +11,6 @@ enum {
        _IRQ_NOREQUEST          = IRQ_NOREQUEST,
        _IRQ_NOTHREAD           = IRQ_NOTHREAD,
        _IRQ_NOAUTOEN           = IRQ_NOAUTOEN,
-       _IRQ_MOVE_PCNTXT        = IRQ_MOVE_PCNTXT,
        _IRQ_NO_BALANCING       = IRQ_NO_BALANCING,
        _IRQ_NESTED_THREAD      = IRQ_NESTED_THREAD,
        _IRQ_PER_CPU_DEVID      = IRQ_PER_CPU_DEVID,
@@ -142,11 +141,6 @@ static inline void irq_settings_set_noprobe(struct irq_desc *desc)
        desc->status_use_accessors |= _IRQ_NOPROBE;
 }
 
-static inline bool irq_settings_can_move_pcntxt(struct irq_desc *desc)
-{
-       return desc->status_use_accessors & _IRQ_MOVE_PCNTXT;
-}
-
 static inline bool irq_settings_can_autoenable(struct irq_desc *desc)
 {
        return !(desc->status_use_accessors & _IRQ_NOAUTOEN);
This page took 0.078833 seconds and 4 git commands to generate.