# This is a BitKeeper generated patch for the following project: # Project Name: linux # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.3 -> 1.4 # include/linux/interrupt.h 1.1 -> 1.2 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/08/23 tj@atj.dyndns.org 1.4 # - tasklet race fix. # -------------------------------------------- # diff -Nru a/include/linux/interrupt.h b/include/linux/interrupt.h --- a/include/linux/interrupt.h Sat Aug 23 11:52:03 2003 +++ b/include/linux/interrupt.h Sat Aug 23 11:52:03 2003 @@ -134,7 +134,10 @@ #ifdef CONFIG_SMP static inline int tasklet_trylock(struct tasklet_struct *t) { - return !test_and_set_bit(TASKLET_STATE_RUN, &(t)->state); + int ret; + ret = !test_and_set_bit(TASKLET_STATE_RUN, &(t)->state); + smp_mb__after_clear_bit(); + return ret; } static inline void tasklet_unlock(struct tasklet_struct *t)