
30 Aug
2011
30 Aug
'11
5:31 p.m.
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