diff mbox series

[1/1] virtio-net: don't allocate control_buf if not supported

Message ID 20210502093319.61313-1-mgurtovoy@nvidia.com (mailing list archive)
State New, archived
Headers show
Series [1/1] virtio-net: don't allocate control_buf if not supported | expand

Commit Message

Max Gurtovoy May 2, 2021, 9:33 a.m. UTC
Not all virtio_net devices support the ctrl queue feature. Thus, there
is no need to allocate unused resources.

Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
---
 drivers/net/virtio_net.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Venkatesh Srinivas May 3, 2021, 5:30 p.m. UTC | #1
On 5/2/21, Max Gurtovoy <mgurtovoy@nvidia.com> wrote:
> Not all virtio_net devices support the ctrl queue feature. Thus, there
> is no need to allocate unused resources.
>
> Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>

Reviewed-by: Venkatesh Srinivas <venkateshs@chromium.org>

> ---
>  drivers/net/virtio_net.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 7fda2ae4c40f..9b6a4a875c55 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -2870,9 +2870,13 @@ static int virtnet_alloc_queues(struct virtnet_info
> *vi)
>  {
>  	int i;
>
> -	vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
> -	if (!vi->ctrl)
> -		goto err_ctrl;
> +	if (vi->has_cvq) {
> +		vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
> +		if (!vi->ctrl)
> +			goto err_ctrl;
> +	} else {
> +		vi->ctrl = NULL;
> +	}
>  	vi->sq = kcalloc(vi->max_queue_pairs, sizeof(*vi->sq), GFP_KERNEL);
>  	if (!vi->sq)
>  		goto err_sq;
> --
> 2.18.1
>
>
Pankaj Gupta May 4, 2021, 9:05 a.m. UTC | #2
> Not all virtio_net devices support the ctrl queue feature. Thus, there
> is no need to allocate unused resources.
>
> Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
> ---
>  drivers/net/virtio_net.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 7fda2ae4c40f..9b6a4a875c55 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -2870,9 +2870,13 @@ static int virtnet_alloc_queues(struct virtnet_info *vi)
>  {
>         int i;
>
> -       vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
> -       if (!vi->ctrl)
> -               goto err_ctrl;
> +       if (vi->has_cvq) {
> +               vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
> +               if (!vi->ctrl)
> +                       goto err_ctrl;
> +       } else {
> +               vi->ctrl = NULL;
> +       }
>         vi->sq = kcalloc(vi->max_queue_pairs, sizeof(*vi->sq), GFP_KERNEL);
>         if (!vi->sq)
>                 goto err_sq;

Reviewed-by: Pankaj Gupta <pankaj.gupta@ionos.com>
Jason Wang May 6, 2021, 2:22 a.m. UTC | #3
在 2021/5/2 下午5:33, Max Gurtovoy 写道:
> Not all virtio_net devices support the ctrl queue feature. Thus, there
> is no need to allocate unused resources.
>
> Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>


Acked-by: Jason Wang <jasowang@redhat.com>


> ---
>   drivers/net/virtio_net.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 7fda2ae4c40f..9b6a4a875c55 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -2870,9 +2870,13 @@ static int virtnet_alloc_queues(struct virtnet_info *vi)
>   {
>   	int i;
>   
> -	vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
> -	if (!vi->ctrl)
> -		goto err_ctrl;
> +	if (vi->has_cvq) {
> +		vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
> +		if (!vi->ctrl)
> +			goto err_ctrl;
> +	} else {
> +		vi->ctrl = NULL;
> +	}
>   	vi->sq = kcalloc(vi->max_queue_pairs, sizeof(*vi->sq), GFP_KERNEL);
>   	if (!vi->sq)
>   		goto err_sq;
diff mbox series

Patch

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 7fda2ae4c40f..9b6a4a875c55 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -2870,9 +2870,13 @@  static int virtnet_alloc_queues(struct virtnet_info *vi)
 {
 	int i;
 
-	vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
-	if (!vi->ctrl)
-		goto err_ctrl;
+	if (vi->has_cvq) {
+		vi->ctrl = kzalloc(sizeof(*vi->ctrl), GFP_KERNEL);
+		if (!vi->ctrl)
+			goto err_ctrl;
+	} else {
+		vi->ctrl = NULL;
+	}
 	vi->sq = kcalloc(vi->max_queue_pairs, sizeof(*vi->sq), GFP_KERNEL);
 	if (!vi->sq)
 		goto err_sq;