From 67b0170a43e8936402e3380a734442e47f75e607 Mon Sep 17 00:00:00 2001 From: adamdunkels Date: Tue, 16 Mar 2010 18:10:09 +0000 Subject: [PATCH] Bugfix: don't care about FIFOP when reading a packet; if the radio rx had been turned off before a packet was read, FIFOP would be zero and the packet would be trashed --- core/dev/cc2420.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/core/dev/cc2420.c b/core/dev/cc2420.c index 4aaaea430..2d3d30fcf 100644 --- a/core/dev/cc2420.c +++ b/core/dev/cc2420.c @@ -28,7 +28,7 @@ * * This file is part of the Contiki operating system. * - * @(#)$Id: cc2420.c,v 1.44 2010/03/14 22:45:20 adamdunkels Exp $ + * @(#)$Id: cc2420.c,v 1.45 2010/03/16 18:10:09 adamdunkels Exp $ */ /* * This code is almost device independent and should be easy to port. @@ -608,6 +608,7 @@ PROCESS_THREAD(cc2420_process, ev, data) len = cc2420_read(packetbuf_dataptr(), PACKETBUF_SIZE); if(len > 0) { packetbuf_set_datalen(len); + NETSTACK_RDC.input(); #if CC2420_TIMETABLE_PROFILING TIMETABLE_TIMESTAMP(cc2420_timetable, "end"); @@ -631,12 +632,7 @@ cc2420_read(void *buf, unsigned short bufsize) #endif /* CC2420_CONF_CHECKSUM */ pending = 0; - - if(!FIFOP_IS_1) { - /* If FIFOP is 0, there is no packet in the RXFIFO. */ - return 0; - } - + GET_LOCK(); cc2420_packets_read++;