[U-Boot] Hash problem...
Wolfgang Denk
wd at denx.de
Wed Jan 19 09:32:23 CET 2011
Dear Peter Barada,
In message <4D34C85E.4030408 at logicpd.com> you wrote:
>
> After spending an entire day digging into the hash using GDB/BDI on my
> ARM board, I've findally figured out that the hash key of "ramdiskimage"
> and "preboot" are the same modulus 347, and this is problematic because
> on the initial hash import, preboot is placed into the hash first (at
> idx 190 since the table is sorted), and then ramdiskimage collides with
> preboot causing the 2nd probe (at idx 191) to occur which works fine.
> Unfortunately as part of the housecleaning, preboot is deleted and the
> environemnt saved. The delete of preboot removes entry at idx 190 and
> the next lookup of ramdiskimage sees that idx 190 is empty and believes
> that the ramdiskimage is not in the table ionstead of rehashing to find
> it at idx 191.
Thanks for debugging this.
> The hash delete code is in error; instead of just removing the deleted
> key, it should instead allocate a new hashtable, hash all the keys into
> the new table except for the deleted key and then reclaim the old table
> (and deleted key).
Can you please come up with a patch?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Wagner's music is better than it sounds." - Mark Twain
More information about the U-Boot
mailing list