From b15039ceb814ee4c685deec554f342480391b775 Mon Sep 17 00:00:00 2001 From: Peter Hurley Date: Fri, 16 Apr 2010 14:15:40 -0400 Subject: [PATCH] Fix for overlooked device HUP with 'firewire' stack When EPOLLHUP event is received in fw_loop_iterate(), it is or'd with EPOLLERR. The EPOLLHUP event was then overlooked in handle_device_event() with unpredictable-but-generally bad results. This problem has been rediscovered several times. http://thread.gmane.org/gmane.linux.kernel.firewire.devel/13330 http://thread.gmane.org/gmane.linux.kernel.firewire.devel/13779 Reported-by: B.J. Buchalter Reported-by: Michael Thireos Signed-off-by: Stefan Richter --- src/fw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fw.c b/src/fw.c index 7277253..d525ac9 100644 --- a/src/fw.c +++ b/src/fw.c @@ -262,7 +262,7 @@ handle_device_event(raw1394handle_t handle, int i; i = device - fwhandle->devices; - if (events == EPOLLHUP) + if (events & EPOLLHUP) return handle_lost_device(fwhandle, i); len = read(fwhandle->devices[i].fd,