Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > c5cc78c371e7dfa8b441091a31a79189 > files > 2

libraw1394-2.0.5-2.fc13.src.rpm

From b15039ceb814ee4c685deec554f342480391b775 Mon Sep 17 00:00:00 2001
From: Peter Hurley <phurley@charter.net>
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 <bj@mhlabs.com>
Reported-by: Michael Thireos <mthireos@vanteon.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
 src/fw.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

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,
-- 
1.7.0.5