]> err.no Git - linux-2.6/commit
[PATCH] ieee1394: raw1394: remove redundant counting semaphore
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Mon, 3 Jul 2006 16:02:33 +0000 (12:02 -0400)
committerBen Collins <bcollins@ubuntu.com>
Mon, 3 Jul 2006 16:02:33 +0000 (12:02 -0400)
commit45289bf6ac70b106f5000d10b040e4485dd3e9d5
treeb01499ed66e27d512b9c573bbd2a5fd78d761f1c
parent438bd525e5240a48233cd3290f7fe66ff0167e20
[PATCH] ieee1394: raw1394: remove redundant counting semaphore

An already existing wait queue replaces raw1394's complete_sem which was
maintained in parallel to the wait queue.  The role of the semaphore's
counter is taken over by a direct check of what was really counted:  The
presence of items in the list of completed requests.

Notes:

 - raw1394_release() sleeps uninterruptibly until all requests were
   completed.  This is the same behaviour as before the patch.

 - The macros wait_event and wait_event_interruptible are called with a
   condition argument which has a side effect, i.e. manipulation of the
   requests list.  This side effect happens only if the condition is
   true.  The patch relies on the fact that wait_event[_interruptible]
   does not evaluate the condition again after it became true.

 - The diffstat looks unfavorable with respect to added lines of code.
   However 19 of them are comments, and some are due to separation of
   existing code blocks into two small helper functions.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Ben Collins <bcollins@ubuntu.com>
drivers/ieee1394/raw1394-private.h
drivers/ieee1394/raw1394.c