All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Eli Cohen <elic@nvidia.com>
Cc: Eugenio Perez Martin <eperezma@redhat.com>,
	Dan Carpenter <dan.carpenter@oracle.com>,
	"virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>
Subject: Re: [bug report] vdpa/mlx5: Support different address spaces for control and data
Date: Thu, 11 Aug 2022 09:09:06 -0400	[thread overview]
Message-ID: <20220811090706-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <DM8PR12MB54007865AC6BC6FCEC9911FCAB649@DM8PR12MB5400.namprd12.prod.outlook.com>

On Thu, Aug 11, 2022 at 12:40:09PM +0000, Eli Cohen wrote:
> > From: Dan Carpenter <dan.carpenter@oracle.com>
> > Sent: Thursday, August 11, 2022 1:40 PM
> > To: Eli Cohen <elic@nvidia.com>
> > Cc: virtualization@lists.linux-foundation.org
> > Subject: [bug report] vdpa/mlx5: Support different address spaces for control and data
> > 
> > Hello Eli Cohen,
> > 
> > The patch d5358cd0e369: "vdpa/mlx5: Support different address spaces
> > for control and data" from Jul 14, 2022, leads to the following
> > Smatch static checker warning:
> > 
> > 	drivers/vdpa/mlx5/net/mlx5_vnet.c:2676 mlx5_vdpa_set_map()
> > 	error: uninitialized symbol 'err'.
> > 
> > drivers/vdpa/mlx5/net/mlx5_vnet.c
> >     2657 static int mlx5_vdpa_set_map(struct vdpa_device *vdev, unsigned int asid,
> >     2658                              struct vhost_iotlb *iotlb)
> >     2659 {
> >     2660         struct mlx5_vdpa_dev *mvdev = to_mvdev(vdev);
> >     2661         struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
> >     2662         int err;
> >     2663
> >     2664         down_write(&ndev->reslock);
> >     2665         if (mvdev->group2asid[MLX5_VDPA_DATAVQ_GROUP] == asid) {
> >     2666                 err = set_map_data(mvdev, iotlb);
> >     2667                 if (err)
> >     2668                         goto out;
> >     2669         }
> >     2670
> >     2671         if (mvdev->group2asid[MLX5_VDPA_CVQ_GROUP] == asid)
> >     2672                 err = set_map_control(mvdev, iotlb);
> > 
> > err not initialized on else path.  My guess is that one or both of these
> > conditions has to be true and this is a false positive but I don't know
> > the code well enough to be sure.
> 
> Thanks for reporting this.
> I think it would be better to return an error if the provided asid is not recognized.
> 
> Therefore I am thinking about adding something like this:
> 
>         if (asid != mvdev->group2asid[MLX5_VDPA_DATAVQ_GROUP] &&
>             asid != mvdev->group2asid[MLX5_VDPA_CVQ_GROUP]) {
>                 err = -EINVAL;
>                 goto out;
>         }

I would probably chain the conditions:

if (mvdev->group2asid[MLX5_VDPA_DATAVQ_GROUP] == asid) {
} else if (mvdev->group2asid[MLX5_VDPA_CVQ_GROUP] == asid) {
} else {
                 err = -EINVAL;
                 goto out;
}


or alternatively initialize err with -EINVAL and be done with it.


> > 
> >     2673
> >     2674 out:
> >     2675         up_write(&ndev->reslock);
> > --> 2676         return err;
> >     2677 }
> > 
> > regards,
> > dan carpenter

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

  parent reply	other threads:[~2022-08-11 13:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-11 10:39 [bug report] vdpa/mlx5: Support different address spaces for control and data Dan Carpenter
     [not found] ` <DM8PR12MB54007865AC6BC6FCEC9911FCAB649@DM8PR12MB5400.namprd12.prod.outlook.com>
2022-08-11 13:05   ` Michael S. Tsirkin
2022-08-11 13:09   ` Michael S. Tsirkin [this message]
     [not found]     ` <DM8PR12MB54007F39684505DC60ACB92CAB649@DM8PR12MB5400.namprd12.prod.outlook.com>
2022-08-11 13:21       ` Michael S. Tsirkin

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=20220811090706-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=dan.carpenter@oracle.com \
    --cc=elic@nvidia.com \
    --cc=eperezma@redhat.com \
    --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.