Message ID | 1594111477-15401-2-git-send-email-pmorel@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | s390: virtio: let arch validate VIRTIO features | expand |
On Tue, 7 Jul 2020 10:44:36 +0200 Pierre Morel <pmorel@linux.ibm.com> wrote: > An architecture may need to validate the VIRTIO devices features > based on architecture specificities. s/specifities/specifics/ > > Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> > --- > drivers/virtio/virtio.c | 19 +++++++++++++++++++ > include/linux/virtio_config.h | 1 + > 2 files changed, 20 insertions(+) > > diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c > index a977e32a88f2..3179a8aa76f5 100644 > --- a/drivers/virtio/virtio.c > +++ b/drivers/virtio/virtio.c > @@ -167,6 +167,21 @@ void virtio_add_status(struct virtio_device *dev, unsigned int status) > } > EXPORT_SYMBOL_GPL(virtio_add_status); > > +/* > + * arch_needs_virtio_iommu_platform - provide arch specific hook when finalizing s/arch_needs_virtio_iommu_platform/arch_validate_virtio_features/ :) > + * features for VIRTIO device dev > + * @dev: the VIRTIO device being added > + * > + * Permits the platform to provide architecture specific functionality when s/provide architecture specific functionality/handle architecture-specific requirements/ ? > + * devices features are finalized. This is the default implementation. s/devices/device/ > + * Architecture implementations can override this. > + */ > + > +int __weak arch_validate_virtio_features(struct virtio_device *dev) > +{ > + return 0; > +} > + > int virtio_finalize_features(struct virtio_device *dev) > { > int ret = dev->config->finalize_features(dev); > @@ -176,6 +191,10 @@ int virtio_finalize_features(struct virtio_device *dev) > if (ret) > return ret; > > + ret = arch_validate_virtio_features(dev); > + if (ret) > + return ret; > + > if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1)) > return 0; > > diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h > index bb4cc4910750..3f4117adf311 100644 > --- a/include/linux/virtio_config.h > +++ b/include/linux/virtio_config.h > @@ -459,4 +459,5 @@ static inline void virtio_cwrite64(struct virtio_device *vdev, > _r; \ > }) > > +int arch_validate_virtio_features(struct virtio_device *dev); > #endif /* _LINUX_VIRTIO_CONFIG_H */ With the wording fixed, Reviewed-by: Cornelia Huck <cohuck@redhat.com>
On 2020-07-07 11:26, Cornelia Huck wrote: > On Tue, 7 Jul 2020 10:44:36 +0200 > Pierre Morel <pmorel@linux.ibm.com> wrote: > >> An architecture may need to validate the VIRTIO devices features >> based on architecture specificities. > > s/specifities/specifics/ OK > >> >> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> >> --- >> drivers/virtio/virtio.c | 19 +++++++++++++++++++ >> include/linux/virtio_config.h | 1 + >> 2 files changed, 20 insertions(+) >> >> diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c >> index a977e32a88f2..3179a8aa76f5 100644 >> --- a/drivers/virtio/virtio.c >> +++ b/drivers/virtio/virtio.c >> @@ -167,6 +167,21 @@ void virtio_add_status(struct virtio_device *dev, unsigned int status) >> } >> EXPORT_SYMBOL_GPL(virtio_add_status); >> >> +/* >> + * arch_needs_virtio_iommu_platform - provide arch specific hook when finalizing > > s/arch_needs_virtio_iommu_platform/arch_validate_virtio_features/ > > :) grrr... yes. > >> + * features for VIRTIO device dev >> + * @dev: the VIRTIO device being added >> + * >> + * Permits the platform to provide architecture specific functionality when > > s/provide architecture specific functionality/handle architecture-specific requirements/ > > ? better, thanks. > >> + * devices features are finalized. This is the default implementation. > > s/devices/device/ yes. > >> + * Architecture implementations can override this. >> + */ >> + >> +int __weak arch_validate_virtio_features(struct virtio_device *dev) >> +{ >> + return 0; >> +} >> + >> int virtio_finalize_features(struct virtio_device *dev) >> { >> int ret = dev->config->finalize_features(dev); >> @@ -176,6 +191,10 @@ int virtio_finalize_features(struct virtio_device *dev) >> if (ret) >> return ret; >> >> + ret = arch_validate_virtio_features(dev); >> + if (ret) >> + return ret; >> + >> if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1)) >> return 0; >> >> diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h >> index bb4cc4910750..3f4117adf311 100644 >> --- a/include/linux/virtio_config.h >> +++ b/include/linux/virtio_config.h >> @@ -459,4 +459,5 @@ static inline void virtio_cwrite64(struct virtio_device *vdev, >> _r; \ >> }) >> >> +int arch_validate_virtio_features(struct virtio_device *dev); >> #endif /* _LINUX_VIRTIO_CONFIG_H */ > > With the wording fixed, > > Reviewed-by: Cornelia Huck <cohuck@redhat.com> > Thanks for the review. regards, Pierre
On 07.07.20 11:26, Cornelia Huck wrote: > On Tue, 7 Jul 2020 10:44:36 +0200 > Pierre Morel <pmorel@linux.ibm.com> wrote: > >> An architecture may need to validate the VIRTIO devices features >> based on architecture specificities. > > s/specifities/specifics/ > >> >> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> >> --- >> drivers/virtio/virtio.c | 19 +++++++++++++++++++ >> include/linux/virtio_config.h | 1 + >> 2 files changed, 20 insertions(+) >> >> diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c >> index a977e32a88f2..3179a8aa76f5 100644 >> --- a/drivers/virtio/virtio.c >> +++ b/drivers/virtio/virtio.c >> @@ -167,6 +167,21 @@ void virtio_add_status(struct virtio_device *dev, unsigned int status) >> } >> EXPORT_SYMBOL_GPL(virtio_add_status); >> >> +/* >> + * arch_needs_virtio_iommu_platform - provide arch specific hook when finalizing > > s/arch_needs_virtio_iommu_platform/arch_validate_virtio_features/ With the things from Conny fixed, Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
On 2020-07-07 13:09, Christian Borntraeger wrote: > > > On 07.07.20 11:26, Cornelia Huck wrote: >> On Tue, 7 Jul 2020 10:44:36 +0200 >> Pierre Morel <pmorel@linux.ibm.com> wrote: >> >>> An architecture may need to validate the VIRTIO devices features >>> based on architecture specificities. >> >> s/specifities/specifics/ yes >> >>> >>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> >>> --- >>> drivers/virtio/virtio.c | 19 +++++++++++++++++++ >>> include/linux/virtio_config.h | 1 + >>> 2 files changed, 20 insertions(+) >>> >>> diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c >>> index a977e32a88f2..3179a8aa76f5 100644 >>> --- a/drivers/virtio/virtio.c >>> +++ b/drivers/virtio/virtio.c >>> @@ -167,6 +167,21 @@ void virtio_add_status(struct virtio_device *dev, unsigned int status) >>> } >>> EXPORT_SYMBOL_GPL(virtio_add_status); >>> >>> +/* >>> + * arch_needs_virtio_iommu_platform - provide arch specific hook when finalizing >> >> s/arch_needs_virtio_iommu_platform/arch_validate_virtio_features/ > > With the things from Conny fixed, > > Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> > Thanks, Pierre
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index a977e32a88f2..3179a8aa76f5 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -167,6 +167,21 @@ void virtio_add_status(struct virtio_device *dev, unsigned int status) } EXPORT_SYMBOL_GPL(virtio_add_status); +/* + * arch_needs_virtio_iommu_platform - provide arch specific hook when finalizing + * features for VIRTIO device dev + * @dev: the VIRTIO device being added + * + * Permits the platform to provide architecture specific functionality when + * devices features are finalized. This is the default implementation. + * Architecture implementations can override this. + */ + +int __weak arch_validate_virtio_features(struct virtio_device *dev) +{ + return 0; +} + int virtio_finalize_features(struct virtio_device *dev) { int ret = dev->config->finalize_features(dev); @@ -176,6 +191,10 @@ int virtio_finalize_features(struct virtio_device *dev) if (ret) return ret; + ret = arch_validate_virtio_features(dev); + if (ret) + return ret; + if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1)) return 0; diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index bb4cc4910750..3f4117adf311 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -459,4 +459,5 @@ static inline void virtio_cwrite64(struct virtio_device *vdev, _r; \ }) +int arch_validate_virtio_features(struct virtio_device *dev); #endif /* _LINUX_VIRTIO_CONFIG_H */
An architecture may need to validate the VIRTIO devices features based on architecture specificities. Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> --- drivers/virtio/virtio.c | 19 +++++++++++++++++++ include/linux/virtio_config.h | 1 + 2 files changed, 20 insertions(+)