Subject: Re: Manual loading of mlx4_en

From: Amir Vadai <[email-masked]>
Date: Tue, 29 Jul 2014 13:16:42 +0300

Hi,

On 7/29/2014 12:53 PM, Jean Delvare wrote:
> Hi all,
> 
> I have a usability concern with the mlx4_en ethernet network driver. The
> module aliases for all the supported devices are on the mlx4_core
> module, so mlx4_core gets loaded automatically, but mlx4_en does not. I
> must load mlx4_en manually (kernel 3.12.)
> 
> May I ask why the mlx4 driver was split into mlx4_core and mlx4_en in
> the first place?
Connect-X card can support both Ethernet and Infiniband link layer - you
can switch between link layers without replacing the hardware.

To prevent code duplication, there is a single lower layer driver -
mlx4_core and two separate upper layer drivers - mlx4_en and mlx4_ib.

Since kernel 3.13 mlx4_core is loading automatically the upper layer
driver using request_module():
b046ffe net/mlx4_core: Load higher level modules according to ports type

> 
> I have worked around the problem with the following modprobe directive:
> 
> install mlx4_core /sbin/modprobe --ignore-install mlx4_core && /sbin/modprobe mlx4_en
> 
> But this is kind of a hack and I would expect the right driver to load
> automatically without magic.
> 
> Shouldn't the module aliases be attached to mlx4_en instead of
> mlx4_core?
> 
> Thanks,
> 

Amir