From: Blaise Gassend Date: Fri, 22 Oct 2010 09:32:04 +0000 (-0700) Subject: compat: Fixes missing sem member in struct device for RT PREEMPT prior to 2.6.34 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=4bf6730eac2ce1fb1610c9a4be822a2c738f379a;p=openwrt%2Fstaging%2Fblogic.git compat: Fixes missing sem member in struct device for RT PREEMPT prior to 2.6.34 The RT PREEMPT patch eliminates the sem member in struct device breaking device_lock, device_unlock and device_trylock in kernels prior to 2.6.34. The attached patch replaces the use of sem by a use of mutex. Signed-off-by: Blaise Gassend Signed-off-by: Luis R. Rodriguez --- diff --git a/include/linux/compat-2.6.34.h b/include/linux/compat-2.6.34.h index 336c61b26169..1cfd6e5cda13 100644 --- a/include/linux/compat-2.6.34.h +++ b/include/linux/compat-2.6.34.h @@ -142,17 +142,32 @@ do { \ static inline void device_lock(struct device *dev) { +#if defined(CONFIG_NONE) || defined(CONFIG_PREEMPT_RT) || \ + defined(CONFIG_PREEMPT_VOLUNTARY) || defined(CONFIG_PREEMPT_DESKTOP) + mutex_lock(&dev->parent->mutex); +#else down(&dev->sem); +#endif } static inline int device_trylock(struct device *dev) { +#if defined(CONFIG_NONE) || defined(CONFIG_PREEMPT_RT) || \ + defined(CONFIG_PREEMPT_VOLUNTARY) || defined(CONFIG_PREEMPT_DESKTOP) + return mutex_trylock(&dev->mutex); +#else return down_trylock(&dev->sem); +#endif } static inline void device_unlock(struct device *dev) { +#if defined(CONFIG_NONE) || defined(CONFIG_PREEMPT_RT) || \ + defined(CONFIG_PREEMPT_VOLUNTARY) || defined(CONFIG_PREEMPT_DESKTOP) + mutex_unlock(&dev->mutex); +#else up(&dev->sem); +#endif } #if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE)