On Thu, 2023-11-02 at 00:30 +0100, Danilo Krummrich wrote: > Drivers may use this function to validate userspace requests in > advance, > hence export it. > > Signed-off-by: Danilo Krummrich <dakr@xxxxxxxxxx> Reviewed-by: Thomas Hellström <thomas.hellstrom@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_gpuvm.c | 14 +++++++++++++- > include/drm/drm_gpuvm.h | 1 + > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_gpuvm.c > b/drivers/gpu/drm/drm_gpuvm.c > index 445767f8fbc4..2669f9bbc377 100644 > --- a/drivers/gpu/drm/drm_gpuvm.c > +++ b/drivers/gpu/drm/drm_gpuvm.c > @@ -649,7 +649,18 @@ drm_gpuvm_in_kernel_node(struct drm_gpuvm > *gpuvm, u64 addr, u64 range) > return krange && addr < kend && kstart < end; > } > > -static bool > +/** > + * drm_gpuvm_range_valid() - checks whether the given range is valid > for the > + * given &drm_gpuvm > + * @gpuvm: the GPUVM to check the range for > + * @addr: the base address > + * @range: the range starting from the base address > + * > + * Checks whether the range is within the GPUVM's managed > boundaries. > + * > + * Returns: true for a valid range, false otherwise > + */ > +bool > drm_gpuvm_range_valid(struct drm_gpuvm *gpuvm, > u64 addr, u64 range) > { > @@ -657,6 +668,7 @@ drm_gpuvm_range_valid(struct drm_gpuvm *gpuvm, > drm_gpuvm_in_mm_range(gpuvm, addr, range) && > !drm_gpuvm_in_kernel_node(gpuvm, addr, range); > } > +EXPORT_SYMBOL_GPL(drm_gpuvm_range_valid); > > /** > * drm_gpuvm_init() - initialize a &drm_gpuvm > diff --git a/include/drm/drm_gpuvm.h b/include/drm/drm_gpuvm.h > index 687fd5893624..13eac6f70061 100644 > --- a/include/drm/drm_gpuvm.h > +++ b/include/drm/drm_gpuvm.h > @@ -253,6 +253,7 @@ void drm_gpuvm_init(struct drm_gpuvm *gpuvm, > const char *name, > const struct drm_gpuvm_ops *ops); > void drm_gpuvm_destroy(struct drm_gpuvm *gpuvm); > > +bool drm_gpuvm_range_valid(struct drm_gpuvm *gpuvm, u64 addr, u64 > range); > bool drm_gpuvm_interval_empty(struct drm_gpuvm *gpuvm, u64 addr, u64 > range); > > static inline struct drm_gpuva *