[netdevice] Allow the hardware and link-layer addresses to differ in size

IPoIB has a 20-byte link-layer address, of which only eight bytes
represent anything relating to a "hardware address".

The PXE and EFI SNP APIs expect the permanent address to be the same
size as the link-layer address, so fill in the "permanent address"
field with the initial link layer address (as generated by
register_netdev() based upon the real hardware address).
This commit is contained in:
Michael Brown
2009-08-11 23:40:27 +01:00
parent 37a0aab4ff
commit 4eab5bc8ca
8 changed files with 66 additions and 17 deletions

View File

@@ -602,9 +602,11 @@ static struct ll_protocol net80211_ll_protocol __ll_protocol = {
.name = "802.11",
.push = net80211_ll_push,
.pull = net80211_ll_pull,
.init_addr = eth_init_addr,
.ntoa = eth_ntoa,
.mc_hash = net80211_ll_mc_hash,
.ll_proto = htons ( ARPHRD_ETHER ), /* "encapsulated Ethernet" */
.hw_addr_len = ETH_ALEN,
.ll_addr_len = ETH_ALEN,
.ll_header_len = IEEE80211_TYP_FRAME_HEADER_LEN +
IEEE80211_LLC_HEADER_LEN,