diff --git a/configs/pizero/README.txt b/configs/pizero/README.txt index bef92bc8493..560fb0ae8b8 100644 --- a/configs/pizero/README.txt +++ b/configs/pizero/README.txt @@ -13,10 +13,21 @@ STATUS will not build to completion. Missing logic includes: - GPIO support, - - Peripheral clocking support, - System timer initialization, and - Serial driver. + 2017-10-19: Much of that logic is in place but there are a few things + still missing. + + - Mini-UART Baud divisor calculation, + - Start-up logic. My understand from what I have read on the internet + is the PiZero OS starts up in hypervisor mode with the MMU and I- and + D-Caches enabled. This probaby means that the standard, classic ARM + startup logic at at arch/arm/src/arm/up_head.S will need to be replaced + with some custom logic. + + No testing has yet been performed. + Basic Setup =========== diff --git a/net/tcp/tcp_send_unbuffered.c b/net/tcp/tcp_send_unbuffered.c index e059f0827ac..3a610d104eb 100644 --- a/net/tcp/tcp_send_unbuffered.c +++ b/net/tcp/tcp_send_unbuffered.c @@ -398,9 +398,18 @@ static uint16_t tcpsend_eventhandler(FAR struct net_driver_s *dev, { ninfo("Lost connection\n"); - /* Report not connected */ + /* We could get here recursively through the callback actions of + * tcp_lost_connection(). So don't repeat that action if we have + * already been disconnected. + */ + + if (_SS_ISCONNECTED(psock->s_flags)) + { + /* Report not connected */ + + tcp_lost_connection(pstate->snd_sock, pstate->snd_cb, flags); + } - tcp_lost_connection(pstate->snd_sock, pstate->snd_cb, flags); pstate->snd_sent = -ENOTCONN; goto end_wait; }