From: Jan Kiszka <jan.kis...@siemens.com>

It's time to let ipipe_enable_irq return a proper error as it will gain
another function that may fail. Drop the WARN_ON_ONCE in favor of that.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 include/linux/ipipe.h |  2 +-
 kernel/irq/chip.c     | 12 +++++++-----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/include/linux/ipipe.h b/include/linux/ipipe.h
index b8a80eeade4f..f7c07a207093 100644
--- a/include/linux/ipipe.h
+++ b/include/linux/ipipe.h
@@ -475,7 +475,7 @@ static inline struct ipipe_threadinfo 
*ipipe_current_threadinfo(void)
 
 #define ipipe_task_threadinfo(p) (&task_thread_info(p)->ipipe_data)
 
-void ipipe_enable_irq(unsigned int irq);
+int ipipe_enable_irq(unsigned int irq);
 
 static inline void ipipe_disable_irq(unsigned int irq)
 {
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 6c279e065879..65d345b727be 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -1082,7 +1082,7 @@ __fixup_irq_handler(struct irq_desc *desc, 
irq_flow_handler_t handle, int is_cha
        return handle;
 }
 
-void ipipe_enable_irq(unsigned int irq)
+int ipipe_enable_irq(unsigned int irq)
 {
        struct irq_desc *desc;
        struct irq_chip *chip;
@@ -1090,7 +1090,7 @@ void ipipe_enable_irq(unsigned int irq)
 
        desc = irq_to_desc(irq);
        if (desc == NULL)
-               return;
+               return -EINVAL;
 
        chip = irq_desc_get_chip(desc);
 
@@ -1105,16 +1105,18 @@ void ipipe_enable_irq(unsigned int irq)
                }
                raw_spin_unlock_irqrestore(&desc->lock, flags);
 
-               return;
+               return 0;
        }
 
-       if (WARN_ON_ONCE(chip->irq_enable == NULL && chip->irq_unmask == NULL))
-               return;
+       if (chip->irq_enable == NULL && chip->irq_unmask == NULL)
+               return -ENOSYS;
 
        if (chip->irq_enable)
                chip->irq_enable(&desc->irq_data);
        else
                chip->irq_unmask(&desc->irq_data);
+
+       return 0;
 }
 EXPORT_SYMBOL_GPL(ipipe_enable_irq);
 
-- 
2.16.4


Reply via email to