All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] drm: nova: Align GEM memory allocation to system page size
@ 2025-11-21  4:04 bshephar
  2025-11-25  7:41 ` bshephar
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: bshephar @ 2025-11-21  4:04 UTC (permalink / raw)
  To: dakr, acourbot, joelagnelf, jhubbard, airlied
  Cc: rust-for-linux, nouveau, brendan.shephard

Use page::page_align for GEM object memory allocation to ensure the
allocation is page aligned. This ensures that the allocation is page
aligned with the system in cases where 4096 is not the default.
For example on 16k or 64k aarch64 systems this allocation should be
aligned accordingly.

Signed-off-by: Brendan Shephard <bshephar@bne-home.net>
---
 drivers/gpu/drm/nova/gem.rs | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/nova/gem.rs b/drivers/gpu/drm/nova/gem.rs
index 2760ba4f3450..a07e922e25ef 100644
--- a/drivers/gpu/drm/nova/gem.rs
+++ b/drivers/gpu/drm/nova/gem.rs
@@ -3,6 +3,10 @@
 use kernel::{
     drm,
     drm::{gem, gem::BaseObject},
+    page::{
+        page_align,
+        PAGE_SIZE, //
+    },
     prelude::*,
     sync::aref::ARef,
 };
@@ -27,12 +31,13 @@ fn new(_dev: &NovaDevice, _size: usize) -> impl PinInit<Self, Error> {
 impl NovaObject {
     /// Create a new DRM GEM object.
     pub(crate) fn new(dev: &NovaDevice, size: usize) -> Result<ARef<gem::Object<Self>>> {
-        let aligned_size = size.next_multiple_of(1 << 12);
-
-        if size == 0 || size > aligned_size {
+        // Check for 0 size or potential usize overflow before calling page_align
+        if size == 0 || size > usize::MAX - PAGE_SIZE + 1 {
             return Err(EINVAL);
         }

+        let aligned_size = page_align(size);
+
         gem::Object::new(dev, aligned_size)
     }

--

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2025-12-13 12:17 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-21  4:04 [PATCH 1/1] drm: nova: Align GEM memory allocation to system page size bshephar
2025-11-25  7:41 ` bshephar
2025-11-25  9:23 ` Alice Ryhl
2025-11-26  5:49   ` Brendan Shephard
2025-11-26  9:53     ` Alice Ryhl
2025-11-25 14:28 ` Alexandre Courbot
2025-11-25 14:41   ` Alice Ryhl
2025-11-25 14:55     ` Alexandre Courbot
2025-11-25 14:59       ` Alice Ryhl
2025-11-26  0:31         ` Alexandre Courbot
2025-11-26  9:54           ` Alice Ryhl
2025-11-26 13:22             ` Alexandre Courbot
2025-11-26 13:36               ` Alice Ryhl
2025-11-26 14:00                 ` Alexandre Courbot
2025-11-26 16:24                   ` Alice Ryhl
2025-11-26 21:14                   ` Brendan Shephard
2025-11-26  6:05       ` Brendan Shephard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.