X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_packet_master.c;h=4c0dc57303005e6132bfa961f88be5c3b6b86346;hb=d813566cdc4d43a43ed988dde4a3ceeccf24efe6;hp=481232dff2b821b229c29dc4ff6f8baad63f41db;hpb=e80fa6de4ccc5c4851eab9fb941f9282d2e3eb16;p=fw%2Faltos diff --git a/src/drivers/ao_packet_master.c b/src/drivers/ao_packet_master.c index 481232df..4c0dc573 100644 --- a/src/drivers/ao_packet_master.c +++ b/src/drivers/ao_packet_master.c @@ -20,8 +20,13 @@ static char ao_packet_getchar(void) { - char c; - while ((c = ao_packet_pollchar()) == AO_READ_AGAIN) { + int c; + + /* No need to block interrupts in this function as + * all packet variables are only modified from task + * context, not an interrupt handler + */ + while ((c = _ao_packet_pollchar()) == AO_READ_AGAIN) { if (!ao_packet_enable) break; if (ao_packet_master_sleeping) @@ -35,7 +40,7 @@ ao_packet_getchar(void) static void ao_packet_echo(void) __reentrant { - char c; + int c; while (ao_packet_enable) { c = ao_packet_getchar(); if (c != AO_READ_AGAIN)