Author: nbd
Date: 2015-03-16 14:05:49 +0100 (Mon, 16 Mar 2015)
New Revision: 44845

Modified:
   trunk/package/kernel/lantiq/ltq-adsl-mei/src/ifxmips_mei_interface.h
Log:
ltq-adsl-mei: fix bugs in linux 3.18 compatiblity change

Signed-off-by: Felix Fietkau <[email protected]>

Modified: trunk/package/kernel/lantiq/ltq-adsl-mei/src/ifxmips_mei_interface.h
===================================================================
--- trunk/package/kernel/lantiq/ltq-adsl-mei/src/ifxmips_mei_interface.h        
2015-03-16 13:05:42 UTC (rev 44844)
+++ trunk/package/kernel/lantiq/ltq-adsl-mei/src/ifxmips_mei_interface.h        
2015-03-16 13:05:49 UTC (rev 44845)
@@ -107,9 +107,31 @@
 #define MEI_INIT_WAKELIST(name,queue) \
         init_waitqueue_head(&queue)
 
+static inline long
+ugly_hack_sleep_on_timeout(wait_queue_head_t *q, long timeout)
+{
+       unsigned long flags;
+       wait_queue_t wait;
+
+       init_waitqueue_entry(&wait, current);
+
+       __set_current_state(TASK_INTERRUPTIBLE);
+       spin_lock_irqsave(&q->lock, flags);
+       __add_wait_queue(q, &wait);
+       spin_unlock(&q->lock);
+
+       timeout = schedule_timeout(timeout);
+
+       spin_lock_irq(&q->lock);
+       __remove_wait_queue(q, &wait);
+       spin_unlock_irqrestore(&q->lock, flags);
+
+       return timeout;
+}
+
 /* wait for an event, timeout is measured in ms */
 #define MEI_WAIT_EVENT_TIMEOUT(ev,timeout)\
-        wait_event_interruptible_timeout(ev,0 == 1, timeout * HZ / 1000)
+        ugly_hack_sleep_on_timeout(&ev, timeout * HZ / 1000)
 #define MEI_WAKEUP_EVENT(ev)\
         wake_up_interruptible(&ev)
 #endif /* IFX_MEI_BSP */
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to