Commit 14adddc0 authored by Jan Kiszka's avatar Jan Kiszka
Browse files

ipipe: Let ipipe_enable_irq return an error code



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's avatarJan Kiszka <jan.kiszka@siemens.com>
parent 2d11775a
...@@ -475,7 +475,7 @@ static inline struct ipipe_threadinfo *ipipe_current_threadinfo(void) ...@@ -475,7 +475,7 @@ static inline struct ipipe_threadinfo *ipipe_current_threadinfo(void)
#define ipipe_task_threadinfo(p) (&task_thread_info(p)->ipipe_data) #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) static inline void ipipe_disable_irq(unsigned int irq)
{ {
......
...@@ -1146,7 +1146,7 @@ __fixup_irq_handler(struct irq_desc *desc, irq_flow_handler_t handle, int is_cha ...@@ -1146,7 +1146,7 @@ __fixup_irq_handler(struct irq_desc *desc, irq_flow_handler_t handle, int is_cha
return handle; return handle;
} }
void ipipe_enable_irq(unsigned int irq) int ipipe_enable_irq(unsigned int irq)
{ {
struct irq_desc *desc; struct irq_desc *desc;
struct irq_chip *chip; struct irq_chip *chip;
...@@ -1154,7 +1154,7 @@ void ipipe_enable_irq(unsigned int irq) ...@@ -1154,7 +1154,7 @@ void ipipe_enable_irq(unsigned int irq)
desc = irq_to_desc(irq); desc = irq_to_desc(irq);
if (desc == NULL) if (desc == NULL)
return; return -EINVAL;
chip = irq_desc_get_chip(desc); chip = irq_desc_get_chip(desc);
...@@ -1169,16 +1169,18 @@ void ipipe_enable_irq(unsigned int irq) ...@@ -1169,16 +1169,18 @@ void ipipe_enable_irq(unsigned int irq)
} }
raw_spin_unlock_irqrestore(&desc->lock, flags); raw_spin_unlock_irqrestore(&desc->lock, flags);
return; return 0;
} }
if (WARN_ON_ONCE(chip->irq_enable == NULL && chip->irq_unmask == NULL)) if (chip->irq_enable == NULL && chip->irq_unmask == NULL)
return; return -ENOSYS;
if (chip->irq_enable) if (chip->irq_enable)
chip->irq_enable(&desc->irq_data); chip->irq_enable(&desc->irq_data);
else else
chip->irq_unmask(&desc->irq_data); chip->irq_unmask(&desc->irq_data);
return 0;
} }
EXPORT_SYMBOL_GPL(ipipe_enable_irq); EXPORT_SYMBOL_GPL(ipipe_enable_irq);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment