All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Eli Cohen <elic@nvidia.com>
Cc: jasowang@redhat.com, virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	eli@nvidia.com
Subject: Re: [PATCH V1 vhost-next] vdpa/mlx5: Make vdpa core driver a distinct module
Date: Mon, 28 Sep 2020 15:55:09 -0400	[thread overview]
Message-ID: <20200928155448-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20200924143231.GA186492@mtl-vdi-166.wap.labs.mlnx>

On Thu, Sep 24, 2020 at 05:32:31PM +0300, Eli Cohen wrote:
> Change core vdpa functionality into a loadbale module such that upcoming
> block implementation will be able to use it.
> 
> Signed-off-by: Eli Cohen <elic@nvidia.com>

Why don't we merge this patch together with the block module?

> ---
> V0 --> V1:
> Removed "default n" for configu options as 'n' is the default
> 
>  drivers/vdpa/Kconfig               |  8 +++-----
>  drivers/vdpa/Makefile              |  2 +-
>  drivers/vdpa/mlx5/Makefile         |  7 +++++--
>  drivers/vdpa/mlx5/core/core_main.c | 20 ++++++++++++++++++++
>  drivers/vdpa/mlx5/core/mr.c        |  3 +++
>  drivers/vdpa/mlx5/core/resources.c | 10 ++++++++++
>  6 files changed, 42 insertions(+), 8 deletions(-)
>  create mode 100644 drivers/vdpa/mlx5/core/core_main.c
> 
> diff --git a/drivers/vdpa/Kconfig b/drivers/vdpa/Kconfig
> index 4271c408103e..57ff6a7f7401 100644
> --- a/drivers/vdpa/Kconfig
> +++ b/drivers/vdpa/Kconfig
> @@ -29,10 +29,9 @@ config IFCVF
>  	  To compile this driver as a module, choose M here: the module will
>  	  be called ifcvf.
>  
> -config MLX5_VDPA
> -	bool "MLX5 VDPA support library for ConnectX devices"
> +config MLX5_VDPA_CORE
> +	tristate "MLX5 VDPA support library for ConnectX devices"
>  	depends on MLX5_CORE
> -	default n
>  	help
>  	  Support library for Mellanox VDPA drivers. Provides code that is
>  	  common for all types of VDPA drivers. The following drivers are planned:
> @@ -40,8 +39,7 @@ config MLX5_VDPA
>  
>  config MLX5_VDPA_NET
>  	tristate "vDPA driver for ConnectX devices"
> -	depends on MLX5_VDPA
> -	default n
> +	depends on MLX5_VDPA_CORE
>  	help
>  	  VDPA network driver for ConnectX6 and newer. Provides offloading
>  	  of virtio net datapath such that descriptors put on the ring will
> diff --git a/drivers/vdpa/Makefile b/drivers/vdpa/Makefile
> index d160e9b63a66..07353bbb9f8b 100644
> --- a/drivers/vdpa/Makefile
> +++ b/drivers/vdpa/Makefile
> @@ -2,4 +2,4 @@
>  obj-$(CONFIG_VDPA) += vdpa.o
>  obj-$(CONFIG_VDPA_SIM) += vdpa_sim/
>  obj-$(CONFIG_IFCVF)    += ifcvf/
> -obj-$(CONFIG_MLX5_VDPA) += mlx5/
> +obj-$(CONFIG_MLX5_VDPA_CORE) += mlx5/
> diff --git a/drivers/vdpa/mlx5/Makefile b/drivers/vdpa/mlx5/Makefile
> index 89a5bededc9f..9f50f7e8d889 100644
> --- a/drivers/vdpa/mlx5/Makefile
> +++ b/drivers/vdpa/mlx5/Makefile
> @@ -1,4 +1,7 @@
>  subdir-ccflags-y += -I$(srctree)/drivers/vdpa/mlx5/core
>  
> -obj-$(CONFIG_MLX5_VDPA_NET) += mlx5_vdpa.o
> -mlx5_vdpa-$(CONFIG_MLX5_VDPA_NET) += net/main.o net/mlx5_vnet.o core/resources.o core/mr.o
> +obj-$(CONFIG_MLX5_VDPA_CORE) += mlx5_vdpa_core.o
> +mlx5_vdpa_core-$(CONFIG_MLX5_VDPA_CORE) += core/resources.o core/mr.o core/core_main.o
> +
> +obj-$(CONFIG_MLX5_VDPA_NET) += mlx5_vdpa_net.o
> +mlx5_vdpa_net-$(CONFIG_MLX5_VDPA_NET) += net/main.o net/mlx5_vnet.o
> diff --git a/drivers/vdpa/mlx5/core/core_main.c b/drivers/vdpa/mlx5/core/core_main.c
> new file mode 100644
> index 000000000000..4b39b55f57ab
> --- /dev/null
> +++ b/drivers/vdpa/mlx5/core/core_main.c
> @@ -0,0 +1,20 @@
> +// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
> +/* Copyright (c) 2020 Mellanox Technologies Ltd. */
> +
> +#include <linux/module.h>
> +
> +MODULE_AUTHOR("Eli Cohen <elic@nvidia.com>");
> +MODULE_DESCRIPTION("Mellanox VDPA core driver");
> +MODULE_LICENSE("Dual BSD/GPL");
> +
> +static int __init mlx5_vdpa_core_init(void)
> +{
> +	return 0;
> +}
> +
> +static void __exit mlx5_vdpa_core_exit(void)
> +{
> +}
> +
> +module_init(mlx5_vdpa_core_init);
> +module_exit(mlx5_vdpa_core_exit);
> diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c
> index ef1c550f8266..c093eab6c714 100644
> --- a/drivers/vdpa/mlx5/core/mr.c
> +++ b/drivers/vdpa/mlx5/core/mr.c
> @@ -434,6 +434,7 @@ int mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb)
>  	mutex_unlock(&mr->mkey_mtx);
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_mr);
>  
>  void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev)
>  {
> @@ -456,6 +457,7 @@ void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev)
>  out:
>  	mutex_unlock(&mr->mkey_mtx);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_mr);
>  
>  static bool map_empty(struct vhost_iotlb *iotlb)
>  {
> @@ -484,3 +486,4 @@ int mlx5_vdpa_handle_set_map(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *io
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_handle_set_map);
> diff --git a/drivers/vdpa/mlx5/core/resources.c b/drivers/vdpa/mlx5/core/resources.c
> index 96e6421c5d1c..89606a18e286 100644
> --- a/drivers/vdpa/mlx5/core/resources.c
> +++ b/drivers/vdpa/mlx5/core/resources.c
> @@ -98,6 +98,7 @@ int mlx5_vdpa_create_tis(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tisn)
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_tis);
>  
>  void mlx5_vdpa_destroy_tis(struct mlx5_vdpa_dev *mvdev, u32 tisn)
>  {
> @@ -108,6 +109,7 @@ void mlx5_vdpa_destroy_tis(struct mlx5_vdpa_dev *mvdev, u32 tisn)
>  	MLX5_SET(destroy_tis_in, in, tisn, tisn);
>  	mlx5_cmd_exec_in(mvdev->mdev, destroy_tis, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_tis);
>  
>  int mlx5_vdpa_create_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 *rqtn)
>  {
> @@ -121,6 +123,7 @@ int mlx5_vdpa_create_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 *
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_rqt);
>  
>  void mlx5_vdpa_destroy_rqt(struct mlx5_vdpa_dev *mvdev, u32 rqtn)
>  {
> @@ -131,6 +134,7 @@ void mlx5_vdpa_destroy_rqt(struct mlx5_vdpa_dev *mvdev, u32 rqtn)
>  	MLX5_SET(destroy_rqt_in, in, rqtn, rqtn);
>  	mlx5_cmd_exec_in(mvdev->mdev, destroy_rqt, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_rqt);
>  
>  int mlx5_vdpa_create_tir(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tirn)
>  {
> @@ -144,6 +148,7 @@ int mlx5_vdpa_create_tir(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tirn)
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_tir);
>  
>  void mlx5_vdpa_destroy_tir(struct mlx5_vdpa_dev *mvdev, u32 tirn)
>  {
> @@ -154,6 +159,7 @@ void mlx5_vdpa_destroy_tir(struct mlx5_vdpa_dev *mvdev, u32 tirn)
>  	MLX5_SET(destroy_tir_in, in, tirn, tirn);
>  	mlx5_cmd_exec_in(mvdev->mdev, destroy_tir, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_tir);
>  
>  int mlx5_vdpa_alloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 *tdn)
>  {
> @@ -170,6 +176,7 @@ int mlx5_vdpa_alloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 *tdn)
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_alloc_transport_domain);
>  
>  void mlx5_vdpa_dealloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 tdn)
>  {
> @@ -180,6 +187,7 @@ void mlx5_vdpa_dealloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 tdn)
>  	MLX5_SET(dealloc_transport_domain_in, in, transport_domain, tdn);
>  	mlx5_cmd_exec_in(mvdev->mdev, dealloc_transport_domain, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_dealloc_transport_domain);
>  
>  int mlx5_vdpa_create_mkey(struct mlx5_vdpa_dev *mvdev, struct mlx5_core_mkey *mkey, u32 *in,
>  			  int inlen)
> @@ -266,6 +274,7 @@ int mlx5_vdpa_alloc_resources(struct mlx5_vdpa_dev *mvdev)
>  	mutex_destroy(&mvdev->mr.mkey_mtx);
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_alloc_resources);
>  
>  void mlx5_vdpa_free_resources(struct mlx5_vdpa_dev *mvdev)
>  {
> @@ -282,3 +291,4 @@ void mlx5_vdpa_free_resources(struct mlx5_vdpa_dev *mvdev)
>  	mutex_destroy(&mvdev->mr.mkey_mtx);
>  	res->valid = false;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_free_resources);
> -- 
> 2.27.0


WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Eli Cohen <elic@nvidia.com>
Cc: netdev@vger.kernel.org, eli@nvidia.com,
	linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org
Subject: Re: [PATCH V1 vhost-next] vdpa/mlx5: Make vdpa core driver a distinct module
Date: Mon, 28 Sep 2020 15:55:09 -0400	[thread overview]
Message-ID: <20200928155448-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20200924143231.GA186492@mtl-vdi-166.wap.labs.mlnx>

On Thu, Sep 24, 2020 at 05:32:31PM +0300, Eli Cohen wrote:
> Change core vdpa functionality into a loadbale module such that upcoming
> block implementation will be able to use it.
> 
> Signed-off-by: Eli Cohen <elic@nvidia.com>

Why don't we merge this patch together with the block module?

> ---
> V0 --> V1:
> Removed "default n" for configu options as 'n' is the default
> 
>  drivers/vdpa/Kconfig               |  8 +++-----
>  drivers/vdpa/Makefile              |  2 +-
>  drivers/vdpa/mlx5/Makefile         |  7 +++++--
>  drivers/vdpa/mlx5/core/core_main.c | 20 ++++++++++++++++++++
>  drivers/vdpa/mlx5/core/mr.c        |  3 +++
>  drivers/vdpa/mlx5/core/resources.c | 10 ++++++++++
>  6 files changed, 42 insertions(+), 8 deletions(-)
>  create mode 100644 drivers/vdpa/mlx5/core/core_main.c
> 
> diff --git a/drivers/vdpa/Kconfig b/drivers/vdpa/Kconfig
> index 4271c408103e..57ff6a7f7401 100644
> --- a/drivers/vdpa/Kconfig
> +++ b/drivers/vdpa/Kconfig
> @@ -29,10 +29,9 @@ config IFCVF
>  	  To compile this driver as a module, choose M here: the module will
>  	  be called ifcvf.
>  
> -config MLX5_VDPA
> -	bool "MLX5 VDPA support library for ConnectX devices"
> +config MLX5_VDPA_CORE
> +	tristate "MLX5 VDPA support library for ConnectX devices"
>  	depends on MLX5_CORE
> -	default n
>  	help
>  	  Support library for Mellanox VDPA drivers. Provides code that is
>  	  common for all types of VDPA drivers. The following drivers are planned:
> @@ -40,8 +39,7 @@ config MLX5_VDPA
>  
>  config MLX5_VDPA_NET
>  	tristate "vDPA driver for ConnectX devices"
> -	depends on MLX5_VDPA
> -	default n
> +	depends on MLX5_VDPA_CORE
>  	help
>  	  VDPA network driver for ConnectX6 and newer. Provides offloading
>  	  of virtio net datapath such that descriptors put on the ring will
> diff --git a/drivers/vdpa/Makefile b/drivers/vdpa/Makefile
> index d160e9b63a66..07353bbb9f8b 100644
> --- a/drivers/vdpa/Makefile
> +++ b/drivers/vdpa/Makefile
> @@ -2,4 +2,4 @@
>  obj-$(CONFIG_VDPA) += vdpa.o
>  obj-$(CONFIG_VDPA_SIM) += vdpa_sim/
>  obj-$(CONFIG_IFCVF)    += ifcvf/
> -obj-$(CONFIG_MLX5_VDPA) += mlx5/
> +obj-$(CONFIG_MLX5_VDPA_CORE) += mlx5/
> diff --git a/drivers/vdpa/mlx5/Makefile b/drivers/vdpa/mlx5/Makefile
> index 89a5bededc9f..9f50f7e8d889 100644
> --- a/drivers/vdpa/mlx5/Makefile
> +++ b/drivers/vdpa/mlx5/Makefile
> @@ -1,4 +1,7 @@
>  subdir-ccflags-y += -I$(srctree)/drivers/vdpa/mlx5/core
>  
> -obj-$(CONFIG_MLX5_VDPA_NET) += mlx5_vdpa.o
> -mlx5_vdpa-$(CONFIG_MLX5_VDPA_NET) += net/main.o net/mlx5_vnet.o core/resources.o core/mr.o
> +obj-$(CONFIG_MLX5_VDPA_CORE) += mlx5_vdpa_core.o
> +mlx5_vdpa_core-$(CONFIG_MLX5_VDPA_CORE) += core/resources.o core/mr.o core/core_main.o
> +
> +obj-$(CONFIG_MLX5_VDPA_NET) += mlx5_vdpa_net.o
> +mlx5_vdpa_net-$(CONFIG_MLX5_VDPA_NET) += net/main.o net/mlx5_vnet.o
> diff --git a/drivers/vdpa/mlx5/core/core_main.c b/drivers/vdpa/mlx5/core/core_main.c
> new file mode 100644
> index 000000000000..4b39b55f57ab
> --- /dev/null
> +++ b/drivers/vdpa/mlx5/core/core_main.c
> @@ -0,0 +1,20 @@
> +// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
> +/* Copyright (c) 2020 Mellanox Technologies Ltd. */
> +
> +#include <linux/module.h>
> +
> +MODULE_AUTHOR("Eli Cohen <elic@nvidia.com>");
> +MODULE_DESCRIPTION("Mellanox VDPA core driver");
> +MODULE_LICENSE("Dual BSD/GPL");
> +
> +static int __init mlx5_vdpa_core_init(void)
> +{
> +	return 0;
> +}
> +
> +static void __exit mlx5_vdpa_core_exit(void)
> +{
> +}
> +
> +module_init(mlx5_vdpa_core_init);
> +module_exit(mlx5_vdpa_core_exit);
> diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c
> index ef1c550f8266..c093eab6c714 100644
> --- a/drivers/vdpa/mlx5/core/mr.c
> +++ b/drivers/vdpa/mlx5/core/mr.c
> @@ -434,6 +434,7 @@ int mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb)
>  	mutex_unlock(&mr->mkey_mtx);
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_mr);
>  
>  void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev)
>  {
> @@ -456,6 +457,7 @@ void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev)
>  out:
>  	mutex_unlock(&mr->mkey_mtx);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_mr);
>  
>  static bool map_empty(struct vhost_iotlb *iotlb)
>  {
> @@ -484,3 +486,4 @@ int mlx5_vdpa_handle_set_map(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *io
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_handle_set_map);
> diff --git a/drivers/vdpa/mlx5/core/resources.c b/drivers/vdpa/mlx5/core/resources.c
> index 96e6421c5d1c..89606a18e286 100644
> --- a/drivers/vdpa/mlx5/core/resources.c
> +++ b/drivers/vdpa/mlx5/core/resources.c
> @@ -98,6 +98,7 @@ int mlx5_vdpa_create_tis(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tisn)
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_tis);
>  
>  void mlx5_vdpa_destroy_tis(struct mlx5_vdpa_dev *mvdev, u32 tisn)
>  {
> @@ -108,6 +109,7 @@ void mlx5_vdpa_destroy_tis(struct mlx5_vdpa_dev *mvdev, u32 tisn)
>  	MLX5_SET(destroy_tis_in, in, tisn, tisn);
>  	mlx5_cmd_exec_in(mvdev->mdev, destroy_tis, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_tis);
>  
>  int mlx5_vdpa_create_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 *rqtn)
>  {
> @@ -121,6 +123,7 @@ int mlx5_vdpa_create_rqt(struct mlx5_vdpa_dev *mvdev, void *in, int inlen, u32 *
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_rqt);
>  
>  void mlx5_vdpa_destroy_rqt(struct mlx5_vdpa_dev *mvdev, u32 rqtn)
>  {
> @@ -131,6 +134,7 @@ void mlx5_vdpa_destroy_rqt(struct mlx5_vdpa_dev *mvdev, u32 rqtn)
>  	MLX5_SET(destroy_rqt_in, in, rqtn, rqtn);
>  	mlx5_cmd_exec_in(mvdev->mdev, destroy_rqt, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_rqt);
>  
>  int mlx5_vdpa_create_tir(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tirn)
>  {
> @@ -144,6 +148,7 @@ int mlx5_vdpa_create_tir(struct mlx5_vdpa_dev *mvdev, void *in, u32 *tirn)
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_create_tir);
>  
>  void mlx5_vdpa_destroy_tir(struct mlx5_vdpa_dev *mvdev, u32 tirn)
>  {
> @@ -154,6 +159,7 @@ void mlx5_vdpa_destroy_tir(struct mlx5_vdpa_dev *mvdev, u32 tirn)
>  	MLX5_SET(destroy_tir_in, in, tirn, tirn);
>  	mlx5_cmd_exec_in(mvdev->mdev, destroy_tir, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_destroy_tir);
>  
>  int mlx5_vdpa_alloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 *tdn)
>  {
> @@ -170,6 +176,7 @@ int mlx5_vdpa_alloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 *tdn)
>  
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_alloc_transport_domain);
>  
>  void mlx5_vdpa_dealloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 tdn)
>  {
> @@ -180,6 +187,7 @@ void mlx5_vdpa_dealloc_transport_domain(struct mlx5_vdpa_dev *mvdev, u32 tdn)
>  	MLX5_SET(dealloc_transport_domain_in, in, transport_domain, tdn);
>  	mlx5_cmd_exec_in(mvdev->mdev, dealloc_transport_domain, in);
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_dealloc_transport_domain);
>  
>  int mlx5_vdpa_create_mkey(struct mlx5_vdpa_dev *mvdev, struct mlx5_core_mkey *mkey, u32 *in,
>  			  int inlen)
> @@ -266,6 +274,7 @@ int mlx5_vdpa_alloc_resources(struct mlx5_vdpa_dev *mvdev)
>  	mutex_destroy(&mvdev->mr.mkey_mtx);
>  	return err;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_alloc_resources);
>  
>  void mlx5_vdpa_free_resources(struct mlx5_vdpa_dev *mvdev)
>  {
> @@ -282,3 +291,4 @@ void mlx5_vdpa_free_resources(struct mlx5_vdpa_dev *mvdev)
>  	mutex_destroy(&mvdev->mr.mkey_mtx);
>  	res->valid = false;
>  }
> +EXPORT_SYMBOL(mlx5_vdpa_free_resources);
> -- 
> 2.27.0

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  reply	other threads:[~2020-09-28 19:55 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-24 14:32 [PATCH V1 vhost-next] vdpa/mlx5: Make vdpa core driver a distinct module Eli Cohen
2020-09-28 19:55 ` Michael S. Tsirkin [this message]
2020-09-28 19:55   ` Michael S. Tsirkin
2020-09-29  6:20   ` Eli Cohen
2020-09-29  6:26     ` Michael S. Tsirkin
2020-09-29  6:26       ` Michael S. Tsirkin
2020-09-29  6:34       ` Eli Cohen
2020-09-29  6:51         ` Michael S. Tsirkin
2020-09-29  6:51           ` Michael S. Tsirkin
2020-09-29  6:57           ` Eli Cohen
2020-09-29  7:17             ` Michael S. Tsirkin
2020-09-29  7:17               ` Michael S. Tsirkin
2020-09-29  7:42               ` Eli Cohen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200928155448-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=eli@nvidia.com \
    --cc=elic@nvidia.com \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.