Fix sff panic deadlock, share the evdev probe, assorted review cleanups
This commit is contained in:
@@ -612,7 +612,7 @@ func waitCarrier(names [2]string, done *atomic.Bool) {
|
||||
// carrier settles — the host checks just reset the links — before any command.
|
||||
// Never waits for a link: there may be no cable, and forcing config needs
|
||||
// none — the AN restart applies it whenever training next happens.
|
||||
func moduleChecks(mods []*phyModule, names [2]string) []checkResult {
|
||||
func moduleChecks(mods []*phyModule) []checkResult {
|
||||
var out []checkResult
|
||||
fail := func(item string, err error) []checkResult {
|
||||
return append(out, checkResult{item: item, err: err})
|
||||
@@ -628,26 +628,26 @@ func moduleChecks(mods []*phyModule, names [2]string) []checkResult {
|
||||
}
|
||||
}
|
||||
master := !mixed
|
||||
for i, m := range mods {
|
||||
for _, m := range mods {
|
||||
b, ok := m.dev.(*bcm)
|
||||
if !ok {
|
||||
out = append(out, checkResult{item: names[i] + " role", state: "auto"})
|
||||
out = append(out, checkResult{item: m.dev.name() + " role", state: "auto"})
|
||||
continue
|
||||
}
|
||||
|
||||
res := checkResult{item: names[i] + " eee", state: "forced off"}
|
||||
res := checkResult{item: m.dev.name() + " eee", state: "forced off"}
|
||||
if err := b.forceEEEOff(); err != nil {
|
||||
return fail(res.item, err)
|
||||
}
|
||||
out = append(out, res)
|
||||
|
||||
res = checkResult{item: names[i] + " jumbo", state: "forced on"}
|
||||
res = checkResult{item: m.dev.name() + " jumbo", state: "forced on"}
|
||||
if err := b.forceJumbo(); err != nil {
|
||||
return fail(res.item, err)
|
||||
}
|
||||
out = append(out, res)
|
||||
|
||||
res = checkResult{item: names[i] + " role", state: "forced master"}
|
||||
res = checkResult{item: m.dev.name() + " role", state: "forced master"}
|
||||
if !master {
|
||||
res.state = "forced slave"
|
||||
}
|
||||
@@ -672,7 +672,7 @@ func moduleChecks(mods []*phyModule, names [2]string) []checkResult {
|
||||
adv[i] = v
|
||||
advs[i] = fmt.Sprintf("%#04x", v)
|
||||
if _, ok := m.dev.(*bcm); ok && v != 0 {
|
||||
res.err = fmt.Errorf("%s still advertises EEE %#04x", names[i], v)
|
||||
res.err = fmt.Errorf("%s still advertises EEE %#04x", m.dev.name(), v)
|
||||
}
|
||||
}
|
||||
if res.err == nil && adv[0]&adv[1] != 0 {
|
||||
@@ -681,9 +681,9 @@ func moduleChecks(mods []*phyModule, names [2]string) []checkResult {
|
||||
res.state = advs[0] + "/" + advs[1]
|
||||
out = append(out, res)
|
||||
|
||||
for i, m := range mods {
|
||||
for _, m := range mods {
|
||||
if err := devRestartAN(m.dev); err != nil {
|
||||
return fail(names[i]+" retrain", err)
|
||||
return fail(m.dev.name()+" retrain", err)
|
||||
}
|
||||
}
|
||||
return out
|
||||
|
||||
Reference in New Issue
Block a user