From 1e1cf2c499d7ac0cfae536e1264af4645350813b Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 4 Jan 2010 00:33:31 +0000 Subject: Fix CDC blocking streams in Host mode locking up when the device is removed. --- LUFA/Drivers/USB/Class/Host/CDC.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'LUFA/Drivers/USB/Class') diff --git a/LUFA/Drivers/USB/Class/Host/CDC.c b/LUFA/Drivers/USB/Class/Host/CDC.c index 030ad9464..7f5bcb940 100644 --- a/LUFA/Drivers/USB/Class/Host/CDC.c +++ b/LUFA/Drivers/USB/Class/Host/CDC.c @@ -445,6 +445,9 @@ static int CDC_Host_getchar_Blocking(FILE* Stream) { while (!(CDC_Host_BytesReceived((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream)))) { + if (USB_HostState == HOST_STATE_Unattached) + return _FDEV_EOF; + CDC_Host_USBTask((USB_ClassInfo_CDC_Host_t*)fdev_get_udata(Stream)); USB_USBTask(); } -- cgit v1.2.3