[efi] Skip cable detection at initialisation where possible
authorMichael Brown <mcb30@ipxe.org>
Sun, 19 Mar 2017 13:22:33 +0000 (13:22 +0000)
committerMichael Brown <mcb30@ipxe.org>
Sun, 19 Mar 2017 13:30:27 +0000 (13:30 +0000)
commit6324227dcaa820436da4acd88ee174d3e26f0d54
tree21da4f1493049b06bd46f746568e249249bbe6bc
parentfdcdc5203b230fef23fa721573fd30ad093679d1
[efi] Skip cable detection at initialisation where possible

We currently request cable detection in PXE_OPCODE_INITIALIZE to work
around buggy Emulex drivers (see commit c0b61ba ("[efi] Work around
bugs in Emulex NII driver")).

This causes problems with some other NII drivers (e.g. Mellanox),
which may time out if the underlying link is intrinsically slow to
come up.

Attempt to work around both problems simultaneously by requesting
cable detection only if the underlying NII driver does not support
link status reporting via PXE_OPCODE_GET_STATUS.  (This is based on a
potentially incorrect assumption that the buggy Emulex drivers do not
claim to report link status via PXE_OPCODE_GET_STATUS.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/efi/nii.c