From f3167881f4668da0fb7f3d5c90746ff64e1c6633 Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Wed, 24 Mar 2021 20:58:13 -0500 Subject: [PATCH] rtl8723ds: Use CONFIG_PREEMPT_RT to select raw spin lock form for real-time kernels Signed-off-by: Larry Finger --- include/osdep_service_linux.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/osdep_service_linux.h b/include/osdep_service_linux.h index e86d1ab..919d581 100644 --- a/include/osdep_service_linux.h +++ b/include/osdep_service_linux.h @@ -144,7 +144,11 @@ typedef struct semaphore _sema; +#ifdef CONFIG_PREEMPT_RT +typedef raw_spinlock_t _lock; +#else typedef spinlock_t _lock; +#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) typedef struct mutex _mutex; #else @@ -224,6 +228,23 @@ __inline static _list *get_list_head(_queue *queue) ((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member))) +#ifdef CONFIG_PREEMPT_RT +__inline static void _enter_critical(_lock *plock, unsigned long *pirqL) +{ + raw_spin_lock_irqsave(plock, *pirqL); +} + +__inline static void _exit_critical(_lock *plock, unsigned long *pirqL) +{ + raw_spin_unlock_irqrestore(plock, *pirqL); +} + +__inline static void _enter_critical_ex(_lock *plock, unsigned long *pirqL) +{ + raw_spin_lock_irqsave(plock, *pirqL); +} + +#else __inline static void _enter_critical(_lock *plock, _irqL *pirqL) { spin_lock_irqsave(plock, *pirqL); @@ -238,6 +259,7 @@ __inline static void _enter_critical_ex(_lock *plock, _irqL *pirqL) { spin_lock_irqsave(plock, *pirqL); } +#endif __inline static void _exit_critical_ex(_lock *plock, _irqL *pirqL) {