diff --git a/rust/helpers/drm/drm.c b/rust/helpers/drm/drm.c
new file mode 100644
index 0000000000000000000000000000000000000000..b8700413a2b8f06f1d12c96e05c4fe6c186002be
--- /dev/null
+++ b/rust/helpers/drm/drm.c
@@ -0,0 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include "gem.c"
+#include "vma_manager.c"
diff --git a/rust/helpers/drm.c b/rust/helpers/drm/gem.c
similarity index 61%
rename from rust/helpers/drm.c
rename to rust/helpers/drm/gem.c
index 0c8f7200d29e7197758188299c79c51ca72584a5..a6eebfe017b7298645517d1c87dbfd2e3297dd6f 100644
--- a/rust/helpers/drm.c
+++ b/rust/helpers/drm/gem.c
@@ -1,7 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0
-
 #include <drm/drm_gem.h>
-#include <drm/drm_vma_manager.h>
 
 void rust_helper_drm_gem_object_get(struct drm_gem_object *obj)
 {
@@ -12,8 +10,3 @@ void rust_helper_drm_gem_object_put(struct drm_gem_object *obj)
 {
 	drm_gem_object_put(obj);
 }
-
-__u64 rust_helper_drm_vma_node_offset_addr(struct drm_vma_offset_node *node)
-{
-	return drm_vma_node_offset_addr(node);
-}
diff --git a/rust/helpers/drm/vma_manager.c b/rust/helpers/drm/vma_manager.c
new file mode 100644
index 0000000000000000000000000000000000000000..f577bfcc0b58a5ca2d890014a7c4267cb7b7ded0
--- /dev/null
+++ b/rust/helpers/drm/vma_manager.c
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <drm/drm_vma_manager.h>
+
+__u64 rust_helper_drm_vma_node_offset_addr(struct drm_vma_offset_node *node)
+{
+	return drm_vma_node_offset_addr(node);
+}
diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c
index 2f2070c15f0952a953b9704a4e82968fb575aaed..8a714b7fa19d99e7cd2b55c29c2c2a4c8a3fbbec 100644
--- a/rust/helpers/helpers.c
+++ b/rust/helpers/helpers.c
@@ -13,7 +13,7 @@
 #include "build_bug.c"
 #include "cred.c"
 #include "device.c"
-#include "drm.c"
+#include "drm/drm.c"
 #include "err.c"
 #include "fs.c"
 #include "io.c"