----- "Ajay Bhargav" <ajay.bhar...@einfochips.com> wrote: > ----- "Mike Frysinger" <vap...@gentoo.org> wrote: > > > On Tuesday, August 30, 2011 01:44:40 Ajay Bhargav wrote: > > > +static void update_hash_table_mac_address(struct armdfec_device > > *darmdfec, > > > + u8 *oaddr, u8 *addr) > > > +{ > > > + u32 mach; > > > + u32 macl; > > > + > > > + /* Delete old entry */ > > > + if (oaddr) { > > > + mach = (oaddr[0] << 8) | oaddr[1]; > > > + macl = (oaddr[2] << 24) | (oaddr[3] << 16) | > > > + (oaddr[4] << 8) | oaddr[5]; > > > + add_del_hash_entry(darmdfec, mach, macl, 1, 0, HASH_DELETE); > > > + } > > > + > > > + /* Add new entry */ > > > + mach = (addr[0] << 8) | addr[1]; > > > + macl = (addr[2] << 24) | (addr[3] << 16) | (addr[4] << 8) | > > addr[5]; > > > + add_del_hash_entry(darmdfec, mach, macl, 1, 0, HASH_ADD); > > > +} > > > ... > > > +static int armdfec_init(struct eth_device *dev, bd_t *bd) > > > +{ > > > ... > > > + update_hash_table_mac_address(darmdfec, dev->enetaddr, > > dev->enetaddr); > > > > i think something got lost along the way here :) > > > > you'll probably want to have oaddr[] be a static local in > > update_hash_table_mac_address and use that to delete the old one > when > > it > > differs from the new one, and then copy the new one into the static > > local. > > -mike > > You can have multiple entries in Hash table for different MAC > addresses. > The reason old entry is deleted because it may be possible that hash > entry > in the list is skipped but not invalidated so the same entry is made > valid > in the list after removing the old one and updating list with new > entry. > The calculated has for a particular MAC address is going to be same. > > Thanks, > Ajay Bhargav
Adding to this.. In my case, its the first entry in hash table so I do not need to delete it, I can simply pass NULL in place of oaddr. That change I will make in the updated patch I am going to submit. Thanks, Ajay Bhargav _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot