ltq-adsl-mei: fix bugs in linux 3.18 compatiblity change

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44845
master
Felix Fietkau 10 years ago
parent 6cfad3ca21
commit e1a8e41287
  1. 24
      package/kernel/lantiq/ltq-adsl-mei/src/ifxmips_mei_interface.h

@ -107,9 +107,31 @@ typedef enum {
#define MEI_INIT_WAKELIST(name,queue) \ #define MEI_INIT_WAKELIST(name,queue) \
init_waitqueue_head(&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 */ /* wait for an event, timeout is measured in ms */
#define MEI_WAIT_EVENT_TIMEOUT(ev,timeout)\ #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)\ #define MEI_WAKEUP_EVENT(ev)\
wake_up_interruptible(&ev) wake_up_interruptible(&ev)
#endif /* IFX_MEI_BSP */ #endif /* IFX_MEI_BSP */

Loading…
Cancel
Save