scst/include/backport.h: Add wait_event_lock_irq_timeout() backport

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8193 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Bart Van Assche
2019-04-13 22:56:39 +00:00
parent 5a85f399c8
commit e4a05976e7

View File

@@ -1543,6 +1543,30 @@ static inline void *vzalloc(unsigned long size)
}
#endif
/* <linux/wait.h> */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 20, 0)
/*
* See also commit 25ab0bc334b4 ("scsi: sched/wait: Add
* wait_event_lock_irq_timeout for TASK_UNINTERRUPTIBLE usage") # v4.20.
*/
#define __wait_event_lock_irq_timeout(wq_head, condition, lock, timeout, state)\
___wait_event(wq_head, ___wait_cond_timeout(condition), \
state, 0, timeout, \
spin_unlock_irq(&lock); \
__ret = schedule_timeout(__ret); \
spin_lock_irq(&lock));
#define wait_event_lock_irq_timeout(wq_head, condition, lock, timeout) \
({ \
long __ret = timeout; \
if (!___wait_cond_timeout(condition)) \
__ret = __wait_event_lock_irq_timeout( \
wq_head, condition, lock, timeout,\
TASK_UNINTERRUPTIBLE); \
__ret; \
})
#endif
/* <linux/workqueue.h> */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36)