Hi - I merged all three of your remaining patches.
Thanks, Barret Merged to master at b94d8034d685..2598c7e54f51 (from, to] You can see the entire diff with 'git diff' or at https://github.com/brho/akaros/compare/b94d8034d685...2598c7e54f51 On 2016-02-10 at 17:11 "'Kanoj Sarcar' via Akaros" <[email protected]> wrote: > Hook in mlx4/ driver to activate kernel bypass logic. > > Signed-off-by: Kanoj Sarcar <[email protected]> > --- > kern/drivers/net/Kbuild | 2 ++ > kern/drivers/net/Kconfig | 5 +++++ > kern/drivers/net/mlx4/main.c | 23 +++++++++++++++++++++++ > 3 files changed, 30 insertions(+) > > diff --git a/kern/drivers/net/Kbuild b/kern/drivers/net/Kbuild > index 4901efb..6b57bb7 100644 > --- a/kern/drivers/net/Kbuild > +++ b/kern/drivers/net/Kbuild > @@ -2,6 +2,8 @@ > obj-y += > dummy.o obj-$(CONFIG_BNX2X) += bnx2x/ > obj-$(CONFIG_MLX4_CORE) += > mlx4/ +obj-$(CONFIG_MLX4_INFINIBAND) > += mlx4u/ > +obj-$(CONFIG_MLX4_INFINIBAND) += > udrvr/ obj-y > += ether8139.o > obj-y += > ether8169.o > obj-y += > ether82563.o diff --git a/kern/drivers/net/Kconfig > b/kern/drivers/net/Kconfig index 1d43190..e0323de 100644 --- > a/kern/drivers/net/Kconfig +++ b/kern/drivers/net/Kconfig @@ -15,6 > +15,7 @@ config BNX2X_SRIOV config MLX4_EN tristate "Mellanox > Technologies 1/10/40Gbit Ethernet support" select MLX4_CORE > + select MLX4_INFINIBAND > help > This driver supports Mellanox Technologies ConnectX > Ethernet devices. > @@ -29,3 +30,7 @@ config MLX4_DEFAULT_MGM_LOG_ENTRY_SIZE > default 10 > help > To activate device managed flow steering when > available, set to -1. + > +config MLX4_INFINIBAND > + tristate > + default n > diff --git a/kern/drivers/net/mlx4/main.c > b/kern/drivers/net/mlx4/main.c index 9b88c0a..a664d68 100644 > --- a/kern/drivers/net/mlx4/main.c > +++ b/kern/drivers/net/mlx4/main.c > @@ -3949,6 +3949,29 @@ static int mlx4_pnp(struct ether *edev) > persist->edev = edev; > mlx4_en_init(); > > + /* > + * In Linux, this is the module initialization vs device > probe sequence: > + * Core init routine mlx4_init() first executes, then EN/IB > interface > + * registration (mlx4_en_init(), mlx4_ib_init() invokes > + * mlx4_register_interface()). Then, probe flow > + * > mlx4_pnp():mlx4_init_one():__mlx4_init_one():mlx4_load_one() does > + * mlx4_register_device(). This causes all registered > + * interface handlers (mlx4_en_add(), mlx4_ib_add()) to be > invoked. > + * > + * In Akaros, the flow is different. Device probe flow first > does > + * mlx4_register_device(). Then core init mlx4_init() > followed by > + * interface registration. What should really happen is that > + * mlx4_init(), mlx4_en_init() and mlx4_ib_init() should be > invoked > + * from ethermlx4_link() prior to device probe. > + */ > +#ifdef CONFIG_MLX4_INFINIBAND > + extern int mlx4_ib_init(); > + extern int ib_uverbs_init(); > + > + ib_uverbs_init(); > + mlx4_ib_init(); > +#endif > + > // edev->ctlr is already initialized to struct mlx4_en_priv. > pdev = persist->pdev; > edev->irq = pdev->irqline; > -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
