[PATCH 2/4] UBI WL-Subsys: Improvement in prot tree
xiaochuan-xu
xiaochuan-xu at cqu.edu.cn
Tue Dec 9 21:51:04 EST 2008
On Tue, 2008-12-09 at 14:58 +0200, Artem Bityutskiy wrote:
> 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.
Thanks for your reminding. I'll get rid of them.
> 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.
>
BTW, if I understand the RB-tree well, the 2nd bit of @rb_parent (the
1st field of struct rb_node) is impossible to be "1". Correct me, if I'm
wrong. Thanks!
> 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.
OK!
>
--
Yours sincerely
xiaochuan-xu(cqu.edu.cn)
More information about the linux-mtd
mailing list