Skip to content

Commit 20d913e

Browse files
hoshinolinamarcan
authored andcommitted
drm/gem-shmem: Export VM ops functions
There doesn't seem to be a way for the Rust bindings to get a compile-time constant reference to drm_gem_shmem_vm_ops, so we need to duplicate that structure in Rust... this isn't nice... Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent 2cd17f6 commit 20d913e

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

drivers/gpu/drm/drm_gem_shmem_helper.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,7 @@ int drm_gem_shmem_dumb_create(struct drm_file *file, struct drm_device *dev,
538538
}
539539
EXPORT_SYMBOL_GPL(drm_gem_shmem_dumb_create);
540540

541-
static vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf)
541+
vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf)
542542
{
543543
struct vm_area_struct *vma = vmf->vma;
544544
struct drm_gem_object *obj = vma->vm_private_data;
@@ -567,8 +567,9 @@ static vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf)
567567

568568
return ret;
569569
}
570+
EXPORT_SYMBOL_GPL(drm_gem_shmem_fault);
570571

571-
static void drm_gem_shmem_vm_open(struct vm_area_struct *vma)
572+
void drm_gem_shmem_vm_open(struct vm_area_struct *vma)
572573
{
573574
struct drm_gem_object *obj = vma->vm_private_data;
574575
struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
@@ -589,15 +590,17 @@ static void drm_gem_shmem_vm_open(struct vm_area_struct *vma)
589590

590591
drm_gem_vm_open(vma);
591592
}
593+
EXPORT_SYMBOL_GPL(drm_gem_shmem_vm_open);
592594

593-
static void drm_gem_shmem_vm_close(struct vm_area_struct *vma)
595+
void drm_gem_shmem_vm_close(struct vm_area_struct *vma)
594596
{
595597
struct drm_gem_object *obj = vma->vm_private_data;
596598
struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj);
597599

598600
drm_gem_shmem_put_pages(shmem);
599601
drm_gem_vm_close(vma);
600602
}
603+
EXPORT_SYMBOL_GPL(drm_gem_shmem_vm_close);
601604

602605
const struct vm_operations_struct drm_gem_shmem_vm_ops = {
603606
.fault = drm_gem_shmem_fault,

include/drm/drm_gem_shmem_helper.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ void drm_gem_shmem_print_info(const struct drm_gem_shmem_object *shmem,
138138
struct drm_printer *p, unsigned int indent);
139139

140140
extern const struct vm_operations_struct drm_gem_shmem_vm_ops;
141+
vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf);
142+
void drm_gem_shmem_vm_open(struct vm_area_struct *vma);
143+
void drm_gem_shmem_vm_close(struct vm_area_struct *vma);
141144

142145
/*
143146
* GEM object functions

0 commit comments

Comments
 (0)