Skip to content

Commit

Permalink
qlge: Fix bonding mac address bug.
Browse files Browse the repository at this point in the history
Use local copy of current mac address when initializing.  In bonding
testing we saw cases where dev_addr was out of data causing failover
errors.

Signed-off-by: Ron Mercer <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Ron Mercer authored and davem330 committed Feb 17, 2010
1 parent c0c5695 commit 801e909
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
2 changes: 2 additions & 0 deletions drivers/net/qlge/qlge.h
Original file line number Diff line number Diff line change
Expand Up @@ -2139,6 +2139,8 @@ struct ql_adapter {
u16 device_id;
struct timer_list timer;
atomic_t lb_count;
/* Keep local copy of current mac address. */
char current_mac_addr[6];
};

/*
Expand Down
6 changes: 5 additions & 1 deletion drivers/net/qlge/qlge_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ static int ql_set_mac_addr(struct ql_adapter *qdev, int set)
char *addr;

if (set) {
addr = &qdev->ndev->dev_addr[0];
addr = &qdev->current_mac_addr[0];
netif_printk(qdev, ifup, KERN_DEBUG, qdev->ndev,
"Set Mac addr %pM\n", addr);
} else {
Expand Down Expand Up @@ -4301,6 +4301,8 @@ static int qlge_set_mac_address(struct net_device *ndev, void *p)
if (!is_valid_ether_addr(addr->sa_data))
return -EADDRNOTAVAIL;
memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len);
/* Update local copy of current mac address. */
memcpy(qdev->current_mac_addr, ndev->dev_addr, ndev->addr_len);

status = ql_sem_spinlock(qdev, SEM_MAC_ADDR_MASK);
if (status)
Expand Down Expand Up @@ -4542,6 +4544,8 @@ static int __devinit ql_init_device(struct pci_dev *pdev,
}

memcpy(ndev->perm_addr, ndev->dev_addr, ndev->addr_len);
/* Keep local copy of current mac address. */
memcpy(qdev->current_mac_addr, ndev->dev_addr, ndev->addr_len);

/* Set up the default ring sizes. */
qdev->tx_ring_size = NUM_TX_RING_ENTRIES;
Expand Down

0 comments on commit 801e909

Please sign in to comment.