virtio: use u32, not bitmap for features

It seemed like a good idea to use bitmap for features
in struct virtio_device, but it's actually a pain,
and seems to become even more painful when we get more
than 32 feature bits.  Just change it to a u32 for now.

Based on patch by Rusty.

Suggested-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
Michael S. Tsirkin
2014-10-07 16:39:42 +02:00
parent d4024af56f
commit e16e12be34
16 changed files with 42 additions and 74 deletions

View File

@@ -92,7 +92,7 @@ static inline bool __virtio_test_bit(const struct virtio_device *vdev,
else
BUG_ON(fbit >= 32);
return test_bit(fbit, vdev->features);
return vdev->features & BIT(fbit);
}
/**
@@ -109,7 +109,7 @@ static inline void __virtio_set_bit(struct virtio_device *vdev,
else
BUG_ON(fbit >= 32);
set_bit(fbit, vdev->features);
vdev->features |= BIT(fbit);
}
/**
@@ -126,7 +126,7 @@ static inline void __virtio_clear_bit(struct virtio_device *vdev,
else
BUG_ON(fbit >= 32);
clear_bit(fbit, vdev->features);
vdev->features &= ~BIT(fbit);
}
/**