[PATCH 2/4] UBI WL-Subsys: Improvement in prot tree

Artem Bityutskiy dedekind at infradead.org
Tue Dec 9 07:58:00 EST 2008


On Tue, 2008-12-09 at 19:44 +0800, xiaochuan-xu wrote:
> +/*
> + * It's impossible that the first field of rb_node structure is equal to 0x2
> + * and 0x3, so Ox2 is used to check whether the physical eraseblock is in one
> + * of prot lists or not. 0x3 is used for prot list head's mark.
> + */
> +#define PROT_LIST_NODE 0x2
> +#define PROT_LIST_HEAD 0x3

This is hacky a bit. AFAIK, rb-tree code does have optimizations which
use the lowest bits of pointers, so I am not sure 2 and 3 are completely
impossible. 

But I think this is anyway not needed at all. The only reason you need
this is to quickly find out if the entry is in the protection list or
not, right? And from the code I see the only user of this is the
'paranoid_check_in_prot_lists()' function. But this is just a debugging
function, which is normally compiled out. You do not have to optimize it
at all. Just let it walk the list and check.

So, please, let's get rid of these constants.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)




More information about the linux-mtd mailing list