search for: __virtio_test_bit

Displaying 20 results from an estimated 119 matches for "__virtio_test_bit".

2014 Nov 27
4
[PATCH v6 01/46] virtio: add low-level APIs for feature bits
.....249fcd6 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -77,11 +77,47 @@ void virtio_check_driver_offered_feature(const struct virtio_device *vdev, unsigned int fbit); /** - * virtio_has_feature - helper to determine if this device has this feature. + * __virtio_test_bit - helper to test feature bits. For use by transports. + * Devices should normally use virtio_has_feature, + * which includes more checks. * @vdev: the device * @fbit: the feature bit */ -static inline bool virtio_has_feature(const struct virtio_device *...
2014 Nov 27
4
[PATCH v6 01/46] virtio: add low-level APIs for feature bits
.....249fcd6 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -77,11 +77,47 @@ void virtio_check_driver_offered_feature(const struct virtio_device *vdev, unsigned int fbit); /** - * virtio_has_feature - helper to determine if this device has this feature. + * __virtio_test_bit - helper to test feature bits. For use by transports. + * Devices should normally use virtio_has_feature, + * which includes more checks. * @vdev: the device * @fbit: the feature bit */ -static inline bool virtio_has_feature(const struct virtio_device *...
2020 Jun 10
5
[PATCH] s390: protvirt: virtio: Refuse device without IOMMU
...100644 --- a/drivers/s390/virtio/virtio_ccw.c +++ b/drivers/s390/virtio/virtio_ccw.c @@ -986,6 +986,11 @@ static void virtio_ccw_set_status(struct virtio_device *vdev, u8 status) if (!ccw) return; + /* Protected Virtualisation guest needs IOMMU */ + if (is_prot_virt_guest() && + !__virtio_test_bit(vdev, VIRTIO_F_IOMMU_PLATFORM)) + status &= ~VIRTIO_CONFIG_S_FEATURES_OK; + /* Write the status to the host. */ vcdev->dma_area->status = status; ccw->cmd_code = CCW_CMD_WRITE_STATUS; -- 2.25.1
2020 Jun 10
5
[PATCH] s390: protvirt: virtio: Refuse device without IOMMU
...100644 --- a/drivers/s390/virtio/virtio_ccw.c +++ b/drivers/s390/virtio/virtio_ccw.c @@ -986,6 +986,11 @@ static void virtio_ccw_set_status(struct virtio_device *vdev, u8 status) if (!ccw) return; + /* Protected Virtualisation guest needs IOMMU */ + if (is_prot_virt_guest() && + !__virtio_test_bit(vdev, VIRTIO_F_IOMMU_PLATFORM)) + status &= ~VIRTIO_CONFIG_S_FEATURES_OK; + /* Write the status to the host. */ vcdev->dma_area->status = status; ccw->cmd_code = CCW_CMD_WRITE_STATUS; -- 2.25.1
2020 Jun 10
2
[PATCH] s390: protvirt: virtio: Refuse device without IOMMU
...irtio/virtio_ccw.c >> @@ -986,6 +986,11 @@ static void virtio_ccw_set_status(struct virtio_device *vdev, u8 status) >> if (!ccw) >> return; >> >> + /* Protected Virtualisation guest needs IOMMU */ >> + if (is_prot_virt_guest() && >> + !__virtio_test_bit(vdev, VIRTIO_F_IOMMU_PLATFORM)) >> + status &= ~VIRTIO_CONFIG_S_FEATURES_OK; >> + > > set_status seems like an odd place to look at features; shouldn't that > rather be done in finalize_features? Right, looks better to me too. What about: diff --git a/drivers/s39...
2020 Jun 10
2
[PATCH] s390: protvirt: virtio: Refuse device without IOMMU
...irtio/virtio_ccw.c >> @@ -986,6 +986,11 @@ static void virtio_ccw_set_status(struct virtio_device *vdev, u8 status) >> if (!ccw) >> return; >> >> + /* Protected Virtualisation guest needs IOMMU */ >> + if (is_prot_virt_guest() && >> + !__virtio_test_bit(vdev, VIRTIO_F_IOMMU_PLATFORM)) >> + status &= ~VIRTIO_CONFIG_S_FEATURES_OK; >> + > > set_status seems like an odd place to look at features; shouldn't that > rather be done in finalize_features? Right, looks better to me too. What about: diff --git a/drivers/s39...
2014 Nov 30
0
[PATCH v7 02/46] virtio: use u32, not bitmap for features
...bit-style bitmap. */ - unsigned long features[1]; + u32 features; void *priv; }; diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index d8e28a2..ffc2ae0 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -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(fbi...
2014 Dec 01
0
[PATCH v8 02/50] virtio: use u32, not bitmap for features
...bit-style bitmap. */ - unsigned long features[1]; + u32 features; void *priv; }; diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index d8e28a2..ffc2ae0 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -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(fbi...
2014 Nov 30
0
[PATCH v7 02/46] virtio: use u32, not bitmap for features
...bit-style bitmap. */ - unsigned long features[1]; + u32 features; void *priv; }; diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index d8e28a2..ffc2ae0 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -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(fbi...
2014 Dec 01
0
[PATCH v8 02/50] virtio: use u32, not bitmap for features
...bit-style bitmap. */ - unsigned long features[1]; + u32 features; void *priv; }; diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index d8e28a2..ffc2ae0 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -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(fbi...
2023 Mar 23
1
[PATCH v4] virtio: add VIRTIO_F_NOTIFICATION_DATA feature support
...) > > > { > > > @@ -501,6 +511,9 @@ static struct virtqueue *virtio_ccw_setup_vq(struct virtio_device *vdev, > > > u64 queue; > > > unsigned long flags; > > > bool may_reduce; > > > + bool (*notify)(struct virtqueue *vq) = __virtio_test_bit(vdev, > > > + VIRTIO_F_NOTIFICATION_DATA) ? > > > + virtio_ccw_kvm_notify_with_data : virtio_ccw_kvm_notify; > > > > > > /* Allocate queue. */ > > > info = kzalloc(sizeof(struct virtio_ccw_vq_info), GFP_KERNEL); > &...
2018 May 30
8
[PATCH] virtio_pci: support enabling VFs
...num_vfs) +{ + struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); + struct virtio_device *vdev = &vp_dev->vdev; + int (*sriov_configure)(struct pci_dev *pci_dev, int num_vfs); + + if (!(vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_DRIVER_OK)) + return -EBUSY; + + if (!__virtio_test_bit(vdev, VIRTIO_F_SR_IOV)) + return -EINVAL; + + sriov_configure = pci_sriov_configure_simple; + if (sriov_configure == NULL) + return -ENOENT; + + return sriov_configure(pci_dev, num_vfs); +} + static struct pci_driver virtio_pci_driver = { .name = "virtio-pci", .id_table = virtio_p...
2018 May 30
8
[PATCH] virtio_pci: support enabling VFs
...num_vfs) +{ + struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); + struct virtio_device *vdev = &vp_dev->vdev; + int (*sriov_configure)(struct pci_dev *pci_dev, int num_vfs); + + if (!(vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_DRIVER_OK)) + return -EBUSY; + + if (!__virtio_test_bit(vdev, VIRTIO_F_SR_IOV)) + return -EINVAL; + + sriov_configure = pci_sriov_configure_simple; + if (sriov_configure == NULL) + return -ENOENT; + + return sriov_configure(pci_dev, num_vfs); +} + static struct pci_driver virtio_pci_driver = { .name = "virtio-pci", .id_table = virtio_p...
2018 Jun 01
3
[PATCH v2] virtio_pci: support enabling VFs
...tio_pci_sriov_configure(struct pci_dev *pci_dev, int num_vfs) +{ + struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); + struct virtio_device *vdev = &vp_dev->vdev; + int ret; + + if (!(vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_DRIVER_OK)) + return -EBUSY; + + if (!__virtio_test_bit(vdev, VIRTIO_F_SR_IOV)) + return -EINVAL; + + if (pci_vfs_assigned(pci_dev)) + return -EPERM; + + if (num_vfs == 0) { + pci_disable_sriov(pci_dev); + return 0; + } + + ret = pci_enable_sriov(pci_dev, num_vfs); + if (ret < 0) + return ret; + + return num_vfs; +} + static struct pci_driver v...
2018 Jun 01
3
[PATCH v2] virtio_pci: support enabling VFs
...tio_pci_sriov_configure(struct pci_dev *pci_dev, int num_vfs) +{ + struct virtio_pci_device *vp_dev = pci_get_drvdata(pci_dev); + struct virtio_device *vdev = &vp_dev->vdev; + int ret; + + if (!(vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_DRIVER_OK)) + return -EBUSY; + + if (!__virtio_test_bit(vdev, VIRTIO_F_SR_IOV)) + return -EINVAL; + + if (pci_vfs_assigned(pci_dev)) + return -EPERM; + + if (num_vfs == 0) { + pci_disable_sriov(pci_dev); + return 0; + } + + ret = pci_enable_sriov(pci_dev, num_vfs); + if (ret < 0) + return ret; + + return num_vfs; +} + static struct pci_driver v...
2014 Nov 27
2
[PATCH v6 02/46] virtio: use u32, not bitmap for features
...bit-style bitmap. */ - unsigned long features[1]; + u32 features; void *priv; }; diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index 249fcd6..1761106 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -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(fbi...
2014 Nov 27
2
[PATCH v6 02/46] virtio: use u32, not bitmap for features
...bit-style bitmap. */ - unsigned long features[1]; + u32 features; void *priv; }; diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index 249fcd6..1761106 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -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(fbi...
2014 Dec 14
0
[PATCH 1/6] tools/virtio: more stubs
...- a/tools/virtio/linux/virtio_config.h +++ b/tools/virtio/linux/virtio_config.h @@ -1,8 +1,7 @@ #include <linux/virtio_byteorder.h> #include <linux/virtio.h> +#include <uapi/linux/virtio_config.h> -#define VIRTIO_TRANSPORT_F_START 28 -#define VIRTIO_TRANSPORT_F_END 32 /* * __virtio_test_bit - helper to test feature bits. For use by transports. * Devices should normally use virtio_has_feature, @@ -16,6 +15,28 @@ static inline bool __virtio_test_bit(const struct virtio_device *vdev, return vdev->features & (1ULL << fbit); } +/** + * __virtio_set_b...
2014 Dec 14
0
[PATCH 1/6] tools/virtio: more stubs
...- a/tools/virtio/linux/virtio_config.h +++ b/tools/virtio/linux/virtio_config.h @@ -1,8 +1,7 @@ #include <linux/virtio_byteorder.h> #include <linux/virtio.h> +#include <uapi/linux/virtio_config.h> -#define VIRTIO_TRANSPORT_F_START 28 -#define VIRTIO_TRANSPORT_F_END 32 /* * __virtio_test_bit - helper to test feature bits. For use by transports. * Devices should normally use virtio_has_feature, @@ -16,6 +15,28 @@ static inline bool __virtio_test_bit(const struct virtio_device *vdev, return vdev->features & (1ULL << fbit); } +/** + * __virtio_set_b...
2014 Nov 28
0
[PATCH v6 01/46] virtio: add low-level APIs for feature bits
...ux/virtio_config.h > +++ b/include/linux/virtio_config.h > @@ -77,11 +77,47 @@ void virtio_check_driver_offered_feature(const struct virtio_device *vdev, > unsigned int fbit); > > /** > - * virtio_has_feature - helper to determine if this device has this feature. > + * __virtio_test_bit - helper to test feature bits. For use by transports. > + * Devices should normally use virtio_has_feature, > + * which includes more checks. > * @vdev: the device > * @fbit: the feature bit > */ > -static inline bool virtio_has_featur...