virtio device id value can be more than 31. Hence, use BIT_ULL in assignment. Fixes: 33b347503f01 ("vdpa: Define vdpa mgmt device, ops and a netlink interface") Reported-by: kernel test robot <lkp at intel.com> Reported-by: Dan Carpenter <dan.carpenter at oracle.com> Signed-off-by: Parav Pandit <parav at nvidia.com> Acked-by: Jason Wang <jasowang at redhat.com> --- changelog: v0->v1: - supporting device id up to 63 --- drivers/vdpa/vdpa.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c index 7332a74a4b00..09bbe53c3ac4 100644 --- a/drivers/vdpa/vdpa.c +++ b/drivers/vdpa/vdpa.c @@ -404,7 +404,8 @@ static int vdpa_mgmtdev_fill(const struct vdpa_mgmt_dev *mdev, struct sk_buff *m goto msg_err; while (mdev->id_table[i].device) { - supported_classes |= BIT(mdev->id_table[i].device); + if (mdev->id_table[i].device <= 63) + supported_classes |= BIT_ULL(mdev->id_table[i].device); i++; } -- 2.26.2
Michael S. Tsirkin
2021-Nov-30 23:34 UTC
[PATCH v1] vdpa: Consider device id larger than 31
On Tue, Nov 30, 2021 at 06:29:49AM +0200, Parav Pandit wrote:> virtio device id value can be more than 31. Hence, use BIT_ULL in > assignment. > > Fixes: 33b347503f01 ("vdpa: Define vdpa mgmt device, ops and a netlink interface") > Reported-by: kernel test robot <lkp at intel.com> > Reported-by: Dan Carpenter <dan.carpenter at oracle.com> > Signed-off-by: Parav Pandit <parav at nvidia.com> > Acked-by: Jason Wang <jasowang at redhat.com> > --- > changelog: > v0->v1: > - supporting device id up to 63 > --- > drivers/vdpa/vdpa.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c > index 7332a74a4b00..09bbe53c3ac4 100644 > --- a/drivers/vdpa/vdpa.c > +++ b/drivers/vdpa/vdpa.c > @@ -404,7 +404,8 @@ static int vdpa_mgmtdev_fill(const struct vdpa_mgmt_dev *mdev, struct sk_buff *m > goto msg_err; > > while (mdev->id_table[i].device) { > - supported_classes |= BIT(mdev->id_table[i].device); > + if (mdev->id_table[i].device <= 63) > + supported_classes |= BIT_ULL(mdev->id_table[i].device); > i++; > }Not for this release, but a for loop will be cleaner here.> -- > 2.26.2