From: Martin Aberg <mab...@gaisler.com> Locking the stats structure when copying to user buffer ensures a consistent view to the user. --- c/src/lib/libbsp/sparc/shared/can/grcan.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/c/src/lib/libbsp/sparc/shared/can/grcan.c b/c/src/lib/libbsp/sparc/shared/can/grcan.c index 409e68b..003cecf 100644 --- a/c/src/lib/libbsp/sparc/shared/can/grcan.c +++ b/c/src/lib/libbsp/sparc/shared/can/grcan.c @@ -1612,13 +1612,16 @@ int grcan_set_rxcomplete(void *d, int complete) int grcan_get_stats(void *d, struct grcan_stats *stats) { struct grcan_priv *pDev = d; + SPIN_IRQFLAGS(oldLevel); FUNCDBG(); if ( !stats ) return -1; + SPIN_LOCK_IRQ(&pDev->devlock, oldLevel); *stats = pDev->stats; + SPIN_UNLOCK_IRQ(&pDev->devlock, oldLevel); return 0; } -- 2.7.4 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel