From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 46F6E39A057 for ; Wed, 9 Sep 2026 17:31:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788975078; cv=none; b=mFTnIbiz09TZOw3NauRBaBO65UdKO8ycQqY8nKB4tHzDYhmVgwA6dr4nuakZIqElxRCymdZKu2ZTlcnl/L5nSAEN6GUBOUX5KC/hWKug3Urd/Z5LupRdMNNtNcBNAB9f5QOO43BYfoL3mPrn0KCwZy6MDsbHfGjvE216dXBx4A4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788975078; c=relaxed/simple; bh=5fmz0pFJPOf69m13tgNlsodqPmqgLuXgeWBMtpj3Lzk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=CLMNYjDNeUEtjB0GMSZGYOJS9fWoGoOTau8R2rDDk1Dl4XDC9HP+rOw+DQZwcDdfHgVU5qMx5igw6ufj4aq8NuHPkbPZq5neega04zDJm2kT7d2pxlcbCdhF6eHpaXvXLJjTEjl4D2z9lXNB2XOvG3iY4DXgTy3r1TjefQVn5Yk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RAkuDZ1f; arc=none smtp.client-ip=209.85.208.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RAkuDZ1f" Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-3a499a6d02cso10594451fa.1 for ; Wed, 09 Sep 2026 10:31:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788975074; x=1789579874; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=COlbN8g71PZLS8Vw0yv0Jnd68gVBxKrHka7KfWabY50=; b=RAkuDZ1f0eAj0mB/L0bBtScyb5ug6eTl+JAm5/lGgTrh+31IYaXu9y4D4OTDz1yTY2 UrJsiQFR4RsMc/iZkjhsqlmAOm0k3jVk53IhC/j9rdzm1K/5QRAQ27c7IWkBCEyaWU8R 7jBb3wgonLjA1j6dSuDprJqiJakFdR7zoWf1B3vrmVfVAcWPgT+g1xoxZSlCH+iQ9jGW I1+LnhzKnoJaoEOGWKE28bVOpa1HFs3RG1Oxkm83koARKa1/hTQZ1STxlNR64eTZTjME 0f0By4K9hVUuXIGVODqE4p3ptyN5WW3JnX8d7udDgGMHlxOH4Jit3QpXBFczEdWSTSdJ XlLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788975074; x=1789579874; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=COlbN8g71PZLS8Vw0yv0Jnd68gVBxKrHka7KfWabY50=; b=qf94QT0kEDjfTQDJ/DxwcjCBJBvtLn+uW6M73jPTt5FyMkRmT7Btb06p/cKquXC1RS fEJ+LLNB/KWG+TsDV//KbVW+5C+jKl9ZSwrQcjaFYh+Mmg6ksaWPAb8yJr+0cuELcou8 5ig4z8RGQhx6Mf22HhxoXI16HVsNy3YnuGRviip13qcmEzENGj9EVdC3UYtbF9QMA8lp 3O0ceaP1nsSwg4XhPOdddpPUpim5cu9le4+sF0nGdZ33ABqg/nXKzXSuDLVkpw6C9Z/m YzZtoIafSVthayznfbZ80wZUz69hAePv3QrVoR3t9vEBH0dJjVvw6eYPuao1kCHPLY1p oHtw== X-Forwarded-Encrypted: i=1; AKwUvBxu/iFpU9Sn0PjiXsJYhMesoANOI8eootpBcjLZz7Mz5Ma/hB4OJ1rujjb5NxV8NT6D1hTIy1w2dS14Ets=@vger.kernel.org X-Gm-Message-State: AFuF++lEf5Tc7D4GOsAg2aaXySw7vSAb3po+UZbQBRpX0POuzp4fGWku kQooGM36ldSFdPilvkAuDF+jwikU7JsSiHSnBdpW6GvZgPGwpyutgFs3 X-Gm-Gg: AYBFou15WLmIpEFb7pldZlnXa4rGyxsnBT6u3LC2dMsrt+s7eLWOSixZhmSaPClFsRv YrWCWmDMmQNl4xMfqQES45kBSUGDW6lYvYH2SIrk7QJ9vunPfY9sXp4RZenKDKHK/+wK7hQc0L4 Ek0LotO0Rq9Xsu9zsqfpYwZh0zEzYHPPkThctz+JSxvT9/fZApkEzkOGE4rB9Mn0DGSDKXpw83b 0xoDZ33+V0TbihT4lcCKxhs3Oe4wAlOb2UzenRTz9BChrHg8bqFdJ46wnjD5pdaSMxOwSc+sfdK fjKFvG8Tw3xr8owL+tajuyoRNA8nDk+PYj2Bui+i5mjz0BuKTd+0RYjQcxtvP99NwwvxGA7U9CO YtF8PzFrvgDf1mPuFuF3yS+OjEBqki5AjPrQStUSXzRu6jH0TTIq5VqCLguY9CB3ssG5x/vn249 5y0MOSwxuKhHzHnmjhFNMqcXwc6xdBwVCnMRZPionpBAJLtUWwjPsTPJEMx2BQ/VqKTyLQtYrk5 2wnCgCy6/Bmk5J3/40V3y5pUZE0+A1mWw== X-Received: by 2002:a05:6512:3e09:b0:5b6:4ad:77b5 with SMTP id 2adb3069b0e04-5b616f4e76fmr5968551e87.29.1788975073832; Wed, 09 Sep 2026 10:31:13 -0700 (PDT) Received: from soda.int.kasm.eu (soda.int.kasm.eu. [2001:678:a5c:1202:7b92:9ac1:b9ef:5287]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5b752df233bsm2780995e87.25.2026.09.09.10.31.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2026 10:31:13 -0700 (PDT) From: Klara Modin To: David Airlie , Simona Vetter , Danilo Krummrich , Alice Ryhl Cc: Miguel Ojeda , Alex Deucher , Mukul Joshi , Felix Kuehling , =?UTF-8?q?Christian=20K=C3=B6nig?= , Thorsten Leemhuis , Manuel Ebner , Gary Guo , Thomas Zimmermann , dri-devel@lists.freedesktop.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org, Klara Modin Subject: [PATCH v2] rust/drm/gem: initialize callbacks with ..pin_init::zeroed() Date: Wed, 9 Sep 2026 19:31:03 +0200 Message-ID: <20260909173103.73656-1-klarasmodin@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit When the commit b67d2d039f64 ("drm/gem: Add callback for when handle count goes to 0") added the handle_free callback, it did not update the rust abstraction, which will cause a build failure when that is enabled. Rather than just adding another None initializer, use ..pin_init::zeroed() to make all unlisted callbacks None, and remove the existing zero-initializations. Fixes: b67d2d039f64 ("drm/gem: Add callback for when handle count goes to 0") Reported-by: Thorsten Leemhuis Closes: https://lore.kernel.org/all/aaef18cd-ab55-4fb8-8563-ca3a5ea9cbc6@leemhuis.info Reported-by: Thomas Zimmermann Closes: https://lore.kernel.org/all/4da62a4b-c4ef-492a-9a27-b56bd4784acf@suse.de Suggested-by: Gary Guo Signed-off-by: Klara Modin --- v2: - also remove initialization of vm_ops, which is also handled by ..pin_init::zeroed() (thanks Gary) - fix the same issue in the shmem helper (thanks Thomas, also reported by Sashiko) - v1: https://lore.kernel.org/lkml/20260908175427.47207-1-klarasmodin@gmail.com --- rust/kernel/drm/gem/mod.rs | 13 +------------ rust/kernel/drm/gem/shmem.rs | 5 +---- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/rust/kernel/drm/gem/mod.rs b/rust/kernel/drm/gem/mod.rs index 80d8f524f9d5..9d4280002765 100644 --- a/rust/kernel/drm/gem/mod.rs +++ b/rust/kernel/drm/gem/mod.rs @@ -266,18 +266,7 @@ impl Object { free: Some(Self::free_callback), open: Some(open_callback::), close: Some(close_callback::), - print_info: None, - export: None, - pin: None, - unpin: None, - get_sg_table: None, - vmap: None, - vunmap: None, - mmap: None, - status: None, - vm_ops: core::ptr::null_mut(), - evict: None, - rss: None, + ..pin_init::zeroed() }; /// Returns the `Device` that owns this GEM object. diff --git a/rust/kernel/drm/gem/shmem.rs b/rust/kernel/drm/gem/shmem.rs index a687d46d170d..24cb5343e0db 100644 --- a/rust/kernel/drm/gem/shmem.rs +++ b/rust/kernel/drm/gem/shmem.rs @@ -132,19 +132,16 @@ impl Object { open: Some(super::open_callback::), close: Some(super::close_callback::), print_info: Some(bindings::drm_gem_shmem_object_print_info), - export: None, pin: Some(bindings::drm_gem_shmem_object_pin), unpin: Some(bindings::drm_gem_shmem_object_unpin), get_sg_table: Some(bindings::drm_gem_shmem_object_get_sg_table), vmap: Some(bindings::drm_gem_shmem_object_vmap), vunmap: Some(bindings::drm_gem_shmem_object_vunmap), mmap: Some(bindings::drm_gem_shmem_object_mmap), - status: None, - rss: None, #[allow(unused_unsafe, reason = "Safe since Rust 1.82.0")] // SAFETY: `drm_gem_shmem_vm_ops` is a valid, static const on the C side. vm_ops: unsafe { &raw const bindings::drm_gem_shmem_vm_ops }, - evict: None, + ..pin_init::zeroed() }; /// Return a raw pointer to the embedded drm_gem_shmem_object. -- 2.55.0