summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorMartin Aberg <maberg@gaisler.com>2017-01-26 10:54:57 +0100
committerDaniel Hellstrom <daniel@gaisler.com>2017-05-14 12:31:58 +0200
commit5d367c56cfe730b94c0489447c05f3c9ff6693c9 (patch)
tree378249d369304c761ee823fcbfdd4532b87e17c5 /c
parentleon, grcan: protect statistics on copy to user (diff)
downloadrtems-5d367c56cfe730b94c0489447c05f3c9ff6693c9.tar.bz2
leon, grcan: unregister interrupt handler at close
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/sparc/shared/can/grcan.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/can/grcan.c b/c/src/lib/libbsp/sparc/shared/can/grcan.c
index 003cecf54d..c7aadaec23 100644
--- a/c/src/lib/libbsp/sparc/shared/can/grcan.c
+++ b/c/src/lib/libbsp/sparc/shared/can/grcan.c
@@ -1275,8 +1275,12 @@ int grcan_close(void *d)
FUNCDBG();
- if ( pDev->started )
+ if ( pDev->started ) {
+ /* Disable interrupts */
+ drvmgr_interrupt_unregister(pDev->dev, 0, grcan_interrupt, pDev);
grcan_hw_stop(pDev);
+ pDev->started = 0;
+ }
grcan_hw_reset(pDev->regs);