Skip to content

Commit

Permalink
qlge: Clean up mac address and frame route settings.
Browse files Browse the repository at this point in the history
Setting MAC addresses and routing frames to various queues will need to
be done in response to firmware events as well as during initialization.
This change encapsulates the facilities into a single call that can
later me made from other places.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ron Mercer authored and David S. Miller committed Feb 25, 2009
1 parent bb80087 commit bb58b5b
Showing 1 changed file with 22 additions and 9 deletions.
31 changes: 22 additions & 9 deletions drivers/net/qlge/qlge_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2958,6 +2958,24 @@ static int ql_route_initialize(struct ql_adapter *qdev)
return status;
}

static int ql_cam_route_initialize(struct ql_adapter *qdev)
{
int status;

status = ql_set_mac_addr_reg(qdev, (u8 *) qdev->ndev->perm_addr,
MAC_ADDR_TYPE_CAM_MAC, qdev->func * MAX_CQ);
if (status) {
QPRINTK(qdev, IFUP, ERR, "Failed to init mac address.\n");
return status;
}

status = ql_route_initialize(qdev);
if (status)
QPRINTK(qdev, IFUP, ERR, "Failed to init routing table.\n");

return status;
}

static int ql_adapter_initialize(struct ql_adapter *qdev)
{
u32 value, mask;
Expand Down Expand Up @@ -3028,16 +3046,11 @@ static int ql_adapter_initialize(struct ql_adapter *qdev)
return status;
}

status = ql_set_mac_addr_reg(qdev, (u8 *) qdev->ndev->perm_addr,
MAC_ADDR_TYPE_CAM_MAC, qdev->func);
if (status) {
QPRINTK(qdev, IFUP, ERR, "Failed to init mac address.\n");
return status;
}

status = ql_route_initialize(qdev);
/* Set up the MAC address and frame routing filter. */
status = ql_cam_route_initialize(qdev);
if (status) {
QPRINTK(qdev, IFUP, ERR, "Failed to init routing table.\n");
QPRINTK(qdev, IFUP, ERR,
"Failed to init CAM/Routing tables.\n");
return status;
}

Expand Down

0 comments on commit bb58b5b

Please sign in to comment.