diff options
author | Evgeni Golov <evgeni@debian.org> | 2023-02-27 22:50:56 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2023-02-27 22:51:27 +0000 |
commit | 55747938b5c4c913f742fd03189f0c660ced7bef (patch) | |
tree | 5834b5bf5f165d1178a984b55a0552b36b8609b6 | |
parent | 28ed159f2669b8d401ca95bf5c6e9ff06a997ef9 (diff) | |
download | src-55747938b5c4c913f742fd03189f0c660ced7bef.tar.gz src-55747938b5c4c913f742fd03189f0c660ced7bef.zip |
if_re: Generate an address if there is none in the EEPROM
There exists hardware that has no ethernet address burned into
the EEPROM. Loading if_re on such a HW brings the device up
with '00:00:00:00:00:00' as the address, and that doesn't get
you too far in a real network.
PR: 262406
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/670
Signed-off-by: Evgeni Golov <evgeni@debian.org>
Differential Revision: https://reviews.freebsd.org/D34485
-rw-r--r-- | sys/dev/re/if_re.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index aaf3860fcc48..734760898e55 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -1674,6 +1674,11 @@ re_attach(device_t dev) goto fail; } + /* If address was not found, create one based on the hostid and name. */ + if (ETHER_IS_ZERO(eaddr)) { + ether_gen_addr(ifp, (struct ether_addr *)eaddr); + } + /* * Call MI attach routine. */ |