From 1e1cf2c499d7ac0cfae536e1264af4645350813b Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Mon, 4 Jan 2010 00:33:31 +0000
Subject: [PATCH] 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(+)

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();
 	}
-- 
GitLab