ChangeSet 1.738.5.19, 2002/10/11 15:31:15-07:00, [EMAIL PROTECTED]

[PATCH] linux-2.5.41/drivers/usb/core/hub.c called down() from interrupt context

        On second thought after reading Oliver Neukum's question about
"shaving off a cycle or two", here is version of my fix for down()
being called from interrupt context that uses unlikely() to get the
speed advantage that would be available from BUG_ON(), while still
ensuring that the condition is executed even if assertions are
compiled out.


diff -Nru a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
--- a/drivers/usb/core/hub.c    Sun Oct 13 17:09:12 2002
+++ b/drivers/usb/core/hub.c    Sun Oct 13 17:09:12 2002
@@ -943,7 +943,9 @@
 
                list_del_init(tmp);
 
-               down(&hub->khubd_sem); /* never blocks, we were on list */
+               if (unlikely(down_trylock(&hub->khubd_sem)))
+                       BUG();  /* never blocks, we were on list */
+
                spin_unlock_irqrestore(&hub_event_lock, flags);
 
                if (hub->error) {


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to