patches/smp_load_acquire.cocci (27 lines of code) (raw):

@@ identifier ret; expression param, func; type T; @@ ( +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) T ret = func(smp_load_acquire(param)); +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ +T ret = func(*param); +smp_rmb(); +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ | +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) ret = smp_load_acquire(param); +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ +ret = *param; +smp_rmb(); +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ | +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) ret = func(smp_load_acquire(param)); +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ +ret = func(*param); +smp_rmb(); +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ )