On Wed, Jul 22, 2015 at 05:06:04PM +0800, Pan Xinhui wrote: > how about: > memtype_lock protects the rb-tree root and the rb-nodes which is a field of > memtype from delete/add/lookup in a race.
Use this: "All pat_rbtree operations need to be performed while holding the memtype_lock." > Actually I have same questions. I find these output logs are added in > commit: 6997ab4982a29925e79f72c3a59823cf944c3529(x86: add PAT related > debug prints) In the past, *new_type == actual_type == new->type on > success. codes are below. author use actual_type there. So this function is one bit PITA. So req_type is used to compute actual type a bit higher: actual_type = pat_x_mtrr_type(start, end, req_type); and from then on actual_type is being used. BUT!, in order to have *all* debugging information, the last dprintk() call should dump actual_type and req_type because this way we show what pat_x_mtrr_type() did too. And we don't need to dump new->type because this is the !err case and in that case we assigned new_type to it, which we dump already. Ok? Btw, you could also simplify this: if (is_range_ram == 1) { err = reserve_ram_pages_type(start, end, req_type, new_type); return err; } to: if (is_range_ram == 1) return reserve_ram_pages_type(start, end, req_type, new_type); while at it. Thanks. -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/