Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
64943205
Commit
64943205
authored
Nov 14, 2004
by
Russell King
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ARM] ecard: dumpirq state on unrecognised interrupts as well.
parent
3fb07877
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
19 deletions
+22
-19
arch/arm/kernel/ecard.c
arch/arm/kernel/ecard.c
+22
-19
No files found.
arch/arm/kernel/ecard.c
View file @
64943205
...
@@ -503,27 +503,33 @@ void ecard_disablefiq(unsigned int fiqnr)
...
@@ -503,27 +503,33 @@ void ecard_disablefiq(unsigned int fiqnr)
}
}
}
}
static
void
static
void
ecard_dump_irq_state
(
void
)
ecard_dump_irq_state
(
ecard_t
*
ec
)
{
{
printk
(
" %d: %sclaimed, "
,
ecard_t
*
ec
;
ec
->
slot_no
,
ec
->
claimed
?
""
:
"not "
);
printk
(
"Expansion card IRQ state:
\n
"
);
if
(
ec
->
ops
&&
ec
->
ops
->
irqpending
&&
for
(
ec
=
cards
;
ec
;
ec
=
ec
->
next
)
{
ec
->
ops
!=
&
ecard_default_ops
)
if
(
ec
->
slot_no
==
8
)
printk
(
"irq %spending
\n
"
,
continue
;
ec
->
ops
->
irqpending
(
ec
)
?
""
:
"not "
);
else
printk
(
" %d: %sclaimed, "
,
printk
(
"irqaddr %p, mask = %02X, status = %02X
\n
"
,
ec
->
slot_no
,
ec
->
claimed
?
""
:
"not "
);
ec
->
irqaddr
,
ec
->
irqmask
,
*
ec
->
irqaddr
);
if
(
ec
->
ops
&&
ec
->
ops
->
irqpending
&&
ec
->
ops
!=
&
ecard_default_ops
)
printk
(
"irq %spending
\n
"
,
ec
->
ops
->
irqpending
(
ec
)
?
""
:
"not "
);
else
printk
(
"irqaddr %p, mask = %02X, status = %02X
\n
"
,
ec
->
irqaddr
,
ec
->
irqmask
,
*
ec
->
irqaddr
);
}
}
}
static
void
ecard_check_lockup
(
struct
irqdesc
*
desc
)
static
void
ecard_check_lockup
(
struct
irqdesc
*
desc
)
{
{
static
unsigned
long
last
;
static
unsigned
long
last
;
static
int
lockup
;
static
int
lockup
;
ecard_t
*
ec
;
/*
/*
* If the timer interrupt has not run since the last million
* If the timer interrupt has not run since the last million
...
@@ -541,11 +547,7 @@ static void ecard_check_lockup(struct irqdesc *desc)
...
@@ -541,11 +547,7 @@ static void ecard_check_lockup(struct irqdesc *desc)
"disabling all expansion card interrupts
\n
"
);
"disabling all expansion card interrupts
\n
"
);
desc
->
chip
->
mask
(
IRQ_EXPANSIONCARD
);
desc
->
chip
->
mask
(
IRQ_EXPANSIONCARD
);
ecard_dump_irq_state
();
printk
(
"Expansion card IRQ state:
\n
"
);
for
(
ec
=
cards
;
ec
;
ec
=
ec
->
next
)
ecard_dump_irq_state
(
ec
);
}
}
}
else
}
else
lockup
=
0
;
lockup
=
0
;
...
@@ -557,6 +559,7 @@ static void ecard_check_lockup(struct irqdesc *desc)
...
@@ -557,6 +559,7 @@ static void ecard_check_lockup(struct irqdesc *desc)
if
(
!
last
||
time_after
(
jiffies
,
last
+
5
*
HZ
))
{
if
(
!
last
||
time_after
(
jiffies
,
last
+
5
*
HZ
))
{
last
=
jiffies
;
last
=
jiffies
;
printk
(
KERN_WARNING
"Unrecognised interrupt from backplane
\n
"
);
printk
(
KERN_WARNING
"Unrecognised interrupt from backplane
\n
"
);
ecard_dump_irq_state
();
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment