This commit ensures that the bnxt_re module is automatically loaded
whenever bnxt_en is loaded by StarlingX's boot-up process or manually by
the user.
The bnxt_re module is not automatically loaded, and this requires
manually loading the module before being able to use RDMA.
In contrast, bnxt_en has aliases that allows it to be automatically
loaded on systems with compatible Broadcom network adapters.
This commit adds a 'softdep' modprobe hook for bnxt_en, so that the
bnxt_re module is automatically loaded after the bnxt_en module is
loaded.
In terms of alternatives, the following options were considered:
- Always load bnxt_en and bnxt_re, like Mellanox OFED's drivers.
This option's main drawback is that the modules will always consume
resources such as kernel memory, even when a compatible network
adapter is not available.
- Use install and remove hooks.
This option is functionally similar to having a softdep hook, but
allows the use of arbitrary shell commands. We did not opt for this
option, because the modprobe.conf manual page mentions that the
install/remove hooks will eventually be deprecated.
Verification
- An ISO image was built successfully using a monolithic incremental
build procedure.
- The built ISO image was installed onto a virtual machine in All-in-One
simplex mode, low-latency profile.
- The bnxt_en module was loaded using "sudo modprobe bnxt_en". "lsmod"
showed that both bnxt_en and bnxt_re were loaded.
- The bnxt_en module was removed using "sudo modprobe -v -r bnxt_en",
which indicated that bnxt_re and bnxt_en were removed, in that order.
The end result was confirmed with "lsmod".
Story: 2009915
Task: 44917
Change-Id: I6f58ed7b1cd07d856ae9fba5f27820adf8f649d0
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>