--- - branch: MAIN date: Sun Dec 19 01:18:02 UTC 2021 files: - new: '1.9' old: '1.8' path: src/sys/external/bsd/drm2/include/linux/rcupdate.h pathrev: src/sys/external/bsd/drm2/include/linux/rcupdate.h@1.9 type: modified id: 20211219T011802Z.4a96d4a756a63dac71e3cfb074673fbe14ff07bd log: | RCU pointer fixes. - Use __typeof__, not typeof. - Use membar_exit, not membar_producer. => We want a store-release, not store/store barrier. => Consider: foo->x = 42; assert(foo->x == 42); rcu_assign_pointer(globalfoo, foo); The foo->x load can be reordered past the store/store barrier (membar_producer), and happen after another thread has clobbered foo->x. - Put the evaluation of the right-hand side before the barrier. module: src subject: 'CVS commit: src/sys/external/bsd/drm2/include/linux' unixtime: '1639876682' user: riastradh