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
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot