Messages in this thread | | | Date | Mon, 6 Feb 2012 17:18:02 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH] x86, mce: Fix rcu splat in drain_mce_log_buffer() |
| |
On Fri, Jan 13, 2012 at 01:44:35PM -0800, Paul E. McKenney wrote: > Looks good to me, but I do need to defer to people who know this code > better than do I. The key thing that (from what I can see) makes > rcu_dereference() unnecessary is that the smp_rmb() used in conjunction > with polling the .finished field takes care of ordering.
Right, this was me trying hard not to screw up touching mcelog.next, thus trying to use the rcu_dereference_index_check() primitive without thinking it through too much. But you're right, I'm polling the ->finished field 4 times (totally arbitrary, btw) which should suffice while the mce_log() routine above writes those entries.
Although, the question still remains, since mce_log() accesses mcelog.next through the rcu_dereference_index_check() primitive, shouldn't I do it the same way?
Thanks.
-- Regards/Gruss, Boris.
Advanced Micro Devices GmbH Einsteinring 24, 85609 Dornach GM: Alberto Bozzo Reg: Dornach, Landkreis Muenchen HRB Nr. 43632 WEEE Registernr: 129 19551
| |