mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-17 10:41:26 +00:00
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user