Comment 21 for bug 1115710

Revision history for this message
Talat Batheesh (talat-b87) wrote :

Hi,

This Fix is for old releases that doesn't include mlx4_en in their initramfs.
Now, that the initrd include the mlx4_en, so no need to creating a mlx4.conf file with softdep mlx4_core post: mlx4_en
After removing this file we see that mlx4_en loaded after boot due to mlx4_core request a module according to the port type -

drivers/net/ethernet/mellanox/mlx4/main.c
static void mlx4_request_modules(struct mlx4_dev *dev)
{
        int port;
        int has_ib_port = false;
        int has_eth_port = false;
#define EN_DRV_NAME "mlx4_en"
#define IB_DRV_NAME "mlx4_ib"

        for (port = 1; port <= dev->caps.num_ports; port++) {
                if (dev->caps.port_type[port] == MLX4_PORT_TYPE_IB)
                        has_ib_port = true;
                else if (dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH)
                        has_eth_port = true;
        }

        if (has_eth_port)
                request_module_nowait(EN_DRV_NAME);
        if (has_ib_port || (dev->caps.flags & MLX4_DEV_CAP_FLAG_IBOE))
                request_module_nowait(IB_DRV_NAME);
}

We are debianize rdma-utils package that create a file /etc/modpobe.d/mlx4.conf, according to Debian policy package shouldn't modify files installed by another package in any way, it's forbidden.
in addition the rdma service create the same file name and add the following
install mlx4_core /sbin/modprobe --ignore-install mlx4_core && (if [ -f /usr/libexec/mlx4-setup.sh -a -f /etc/rdma/mlx4.conf ]; then /usr/libexec/mlx4-setup.sh < /etc/rdma/mlx4.conf; fi; /sbin/modprobe mlx4_en; /sbin/modprobe mlx4_ib)
this should load the diver with the requested port type configuration.

could you please revert this fix?

Thanks,
Talat