Linus Torvalds writes: (Summary) wrote:
Looks ok to me, except:
And honestly, the pattern probably *should* be
clear_bit_unlock(bit, &mem);
smp_mb__after_atomic()
wake_up_bit(&mem, bit);
wake_up_bit(&mem, bit);
which looks like it is a bit cleaner wrt memory ordering rules.
[...]
but[...]
would be[...]
to apply this patch upstream and test whether the problem is solved. Looks ok to me, except:Looks ok to me, except:
[...]
+ wake_up_bit(&wb->state, WB_shutting_down); And honestly, the pattern probably *should* beAnd honestly, the pattern probably *should* be
clear_bit_unlock(bit, &mem);
smp_mb__after_atomic()
wake_up_bit(&mem, bit);
wake_up_bit(&mem, bit);
which looks like it is a bit cleaner wrt memory ordering rules.