mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
qlge: Add support for using alternate MAC address.
Extract either manufacturer or Bladecenter Open Fabric Manager (BOFM) MAC address. BOFM may indicate an alternate MAC address. This patch honors that request by extracting the MAC address from a different flash location if a flag is set. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ec33a49135
commit
542512e482
1 changed files with 15 additions and 2 deletions
|
@ -675,6 +675,7 @@ static int ql_get_8000_flash_params(struct ql_adapter *qdev)
|
|||
int status;
|
||||
__le32 *p = (__le32 *)&qdev->flash;
|
||||
u32 offset;
|
||||
u8 mac_addr[6];
|
||||
|
||||
/* Get flash offset for function and adjust
|
||||
* for dword access.
|
||||
|
@ -705,14 +706,26 @@ static int ql_get_8000_flash_params(struct ql_adapter *qdev)
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if (!is_valid_ether_addr(qdev->flash.flash_params_8000.mac_addr)) {
|
||||
/* Extract either manufacturer or BOFM modified
|
||||
* MAC address.
|
||||
*/
|
||||
if (qdev->flash.flash_params_8000.data_type1 == 2)
|
||||
memcpy(mac_addr,
|
||||
qdev->flash.flash_params_8000.mac_addr1,
|
||||
qdev->ndev->addr_len);
|
||||
else
|
||||
memcpy(mac_addr,
|
||||
qdev->flash.flash_params_8000.mac_addr,
|
||||
qdev->ndev->addr_len);
|
||||
|
||||
if (!is_valid_ether_addr(mac_addr)) {
|
||||
QPRINTK(qdev, IFUP, ERR, "Invalid MAC address.\n");
|
||||
status = -EINVAL;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
memcpy(qdev->ndev->dev_addr,
|
||||
qdev->flash.flash_params_8000.mac_addr,
|
||||
mac_addr,
|
||||
qdev->ndev->addr_len);
|
||||
|
||||
exit:
|
||||
|
|
Loading…
Reference in a new issue