Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git]
/
kernel
/
kernel
/
irq
/
spurious.c
diff --git
a/kernel/kernel/irq/spurious.c
b/kernel/kernel/irq/spurious.c
index
903a69c
..
ed26f25
100644
(file)
--- a/
kernel/kernel/irq/spurious.c
+++ b/
kernel/kernel/irq/spurious.c
@@
-60,7
+60,7
@@
bool irq_wait_for_poll(struct irq_desc *desc)
/*
* Recovery handler for misrouted interrupts.
*/
/*
* Recovery handler for misrouted interrupts.
*/
-static int try_one_irq(
int irq,
struct irq_desc *desc, bool force)
+static int try_one_irq(struct irq_desc *desc, bool force)
{
irqreturn_t ret = IRQ_NONE;
struct irqaction *action;
{
irqreturn_t ret = IRQ_NONE;
struct irqaction *action;
@@
-133,7
+133,7
@@
static int misrouted_irq(int irq)
if (i == irq) /* Already tried */
continue;
if (i == irq) /* Already tried */
continue;
- if (try_one_irq(
i,
desc, false))
+ if (try_one_irq(desc, false))
ok = 1;
}
out:
ok = 1;
}
out:
@@
-164,7
+164,7
@@
static void poll_spurious_irqs(unsigned long dummy)
continue;
local_irq_disable();
continue;
local_irq_disable();
- try_one_irq(
i,
desc, true);
+ try_one_irq(desc, true);
local_irq_enable();
}
out:
local_irq_enable();
}
out:
@@
-188,10
+188,9
@@
static inline int bad_action_ret(irqreturn_t action_ret)
* (The other 100-of-100,000 interrupts may have been a correctly
* functioning device sharing an IRQ with the failing one)
*/
* (The other 100-of-100,000 interrupts may have been a correctly
* functioning device sharing an IRQ with the failing one)
*/
-static void
-__report_bad_irq(unsigned int irq, struct irq_desc *desc,
- irqreturn_t action_ret)
+static void __report_bad_irq(struct irq_desc *desc, irqreturn_t action_ret)
{
{
+ unsigned int irq = irq_desc_get_irq(desc);
struct irqaction *action;
unsigned long flags;
struct irqaction *action;
unsigned long flags;
@@
-224,14
+223,13
@@
__report_bad_irq(unsigned int irq, struct irq_desc *desc,
raw_spin_unlock_irqrestore(&desc->lock, flags);
}
raw_spin_unlock_irqrestore(&desc->lock, flags);
}
-static void
-report_bad_irq(unsigned int irq, struct irq_desc *desc, irqreturn_t action_ret)
+static void report_bad_irq(struct irq_desc *desc, irqreturn_t action_ret)
{
static int count = 100;
if (count > 0) {
count--;
{
static int count = 100;
if (count > 0) {
count--;
- __report_bad_irq(
irq,
desc, action_ret);
+ __report_bad_irq(desc, action_ret);
}
}
}
}
@@
-272,15
+270,16
@@
try_misrouted_irq(unsigned int irq, struct irq_desc *desc,
#define SPURIOUS_DEFERRED 0x80000000
#define SPURIOUS_DEFERRED 0x80000000
-void note_interrupt(unsigned int irq, struct irq_desc *desc,
- irqreturn_t action_ret)
+void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret)
{
{
+ unsigned int irq;
+
if (desc->istate & IRQS_POLL_INPROGRESS ||
irq_settings_is_polled(desc))
return;
if (bad_action_ret(action_ret)) {
if (desc->istate & IRQS_POLL_INPROGRESS ||
irq_settings_is_polled(desc))
return;
if (bad_action_ret(action_ret)) {
- report_bad_irq(
irq,
desc, action_ret);
+ report_bad_irq(desc, action_ret);
return;
}
return;
}
@@
-398,6
+397,7
@@
void note_interrupt(unsigned int irq, struct irq_desc *desc,
desc->last_unhandled = jiffies;
}
desc->last_unhandled = jiffies;
}
+ irq = irq_desc_get_irq(desc);
if (unlikely(try_misrouted_irq(irq, desc, action_ret))) {
int ok = misrouted_irq(irq);
if (action_ret == IRQ_NONE)
if (unlikely(try_misrouted_irq(irq, desc, action_ret))) {
int ok = misrouted_irq(irq);
if (action_ret == IRQ_NONE)
@@
-413,7
+413,7
@@
void note_interrupt(unsigned int irq, struct irq_desc *desc,
/*
* The interrupt is stuck
*/
/*
* The interrupt is stuck
*/
- __report_bad_irq(
irq,
desc, action_ret);
+ __report_bad_irq(desc, action_ret);
/*
* Now kill the IRQ
*/
/*
* Now kill the IRQ
*/