[rtems commit] Store task_id of the current thread for the ISR before waiting for the transient event
Gedare Bloom
gedare at rtems.org
Sun Dec 13 01:22:12 UTC 2015
Module: rtems
Branch: master
Commit: 687463d7f3b0abb1d98e6e630fb6d47541594bd4
Changeset: http://git.rtems.org/rtems/commit/?id=687463d7f3b0abb1d98e6e630fb6d47541594bd4
Author: Jan Sommer <soja-lists at aries.uberspace.de>
Date: Thu Dec 3 21:56:31 2015 +0100
Store task_id of the current thread for the ISR before waiting for the transient event
The ISR will send a transient event to the task specified in bus->taskid.
Make sure that the correct task_id is written to this field before waiting
for the transient event to arrive.
Fixes #2483
---
c/src/lib/libbsp/arm/raspberrypi/i2c/i2c.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/c/src/lib/libbsp/arm/raspberrypi/i2c/i2c.c b/c/src/lib/libbsp/arm/raspberrypi/i2c/i2c.c
index 14a2467..6d9a2cd 100644
--- a/c/src/lib/libbsp/arm/raspberrypi/i2c/i2c.c
+++ b/c/src/lib/libbsp/arm/raspberrypi/i2c/i2c.c
@@ -92,6 +92,7 @@ static int rpi_i2c_bus_transfer(rpi_i2c_bus *bus)
/* Sleep until the TX FIFO has free space for a new write. */
if (
+ bus->task_id = rtems_task_self();
rtems_event_transient_receive(RTEMS_WAIT, bus->base.timeout) !=
RTEMS_SUCCESSFUL
) {
More information about the vc
mailing list