linux/include
Danilo Krummrich 57493a1455 drm: drv: implement __drm_dev_alloc()
In the Rust DRM device abstraction we need to allocate a struct
drm_device.

Currently, there are two options, the deprecated drm_dev_alloc() (which
does not support subclassing) and devm_drm_dev_alloc(). The latter
supports subclassing, but also manages the initial reference through
devres for the parent device.

In Rust we want to conform with the subclassing pattern, but do not want
to get the initial reference managed for us, since Rust has its own,
idiomatic ways to properly deal with it.

There are two options to achieve this.

  1) Allocate the memory ourselves with a KBox.
  2) Implement __drm_dev_alloc(), which supports subclassing, but is
     unmanged.

While (1) would be possible, it would be cumbersome, since it would
require exporting drm_dev_init() and drmm_add_final_kfree().

Hence, go with option (2) and implement __drm_dev_alloc().

Reviewed-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://lore.kernel.org/r/20250410235546.43736-2-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
History 2025-04-24 13:50:03 +02:00
..
acpi misc: Constify amba_id table 2025-03-29 18:25:34 -07:00
asm-generic RISC-V Patches for the 6.15 Merge Window, Part 1 2025-04-04 09:49:17 -07:00
clocksource KVM/arm64 updates for 6.14 2025-01-28 09:01:36 -08:00
crypto This update includes the following changes: 2025-03-29 10:01:55 -07:00
cxl cxl for v6.15 2025-04-02 20:04:43 -07:00
drm drm: drv: implement __drm_dev_alloc() 2025-04-24 13:50:03 +02:00
dt-bindings Char/Misc/IIO driver updates for 6.15-rc1 2025-04-01 11:26:08 -07:00
hyperv x86/hyperv: Add comments about hv_vpset and var size hypercall input args 2025-03-21 18:24:22 +00:00
keys keys: drop shadowing dead prototype 2025-01-21 11:25:23 +02:00
kunit kunit: Clarify kunit_skip() argument name 2025-02-18 14:28:11 -07:00
kvm Merge branch 'kvm-arm64/pmu-fixes' into kvmarm/next 2025-03-19 14:54:52 -07:00
linux A set of final cleanups for the timer subsystem: 2025-04-06 08:35:37 -07:00
math-emu powerpc/math-emu: Remove -w build flag and fix warnings 2022-09-05 17:28:25 +10:00
media media: v4l2-core: Introduce v4l2_query_ext_ctrl_to_v4l2_queryctrl 2025-03-05 10:43:26 +01:00
memory memory: renesas-rpc-if: Remove Runtime PM wrappers 2023-01-23 11:48:00 +01:00
misc cxl: Remove driver 2025-03-16 22:04:27 +11:00
net treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
pcmcia ARM: pxa/sa1100: move I/O space to PCI_IOBASE 2022-05-07 22:56:17 +02:00
ras PCI/ERR: Handle TLP Log in Flit mode 2025-02-21 17:31:45 -06:00
rdma RDMA/core: Pass port to counter bind/unbind operations 2025-03-18 06:18:46 -04:00
rv rv: Reset per-task monitors also for idle tasks 2025-01-23 12:16:04 -05:00
scsi scsi: usb: Rename the RESERVE and RELEASE constants 2025-02-12 22:20:55 -05:00
soc soc: driver updates for 6.15, part 1 2025-03-27 09:05:55 -07:00
sound soundwire updates for 6.15 2025-04-01 12:43:13 -07:00
target scsi: target: iscsi: switch to using the crc32c library 2024-12-01 17:23:02 -08:00
trace tracing/timers: Rename the hrtimer_init event to hrtimer_setup 2025-04-05 10:30:17 +02:00
uapi io_uring-6.15-20250403 2025-04-03 15:48:58 -07:00
ufs Merge patch series "Initial support for RK3576 UFS controller" 2025-02-24 19:24:14 -05:00
vdso vdso: Rework struct vdso_time_data and introduce struct vdso_clock 2025-03-08 14:37:41 +01:00
video gpu: ipu-v3 ipu-cpmem: Remove unused functions 2025-03-01 11:29:03 +02:00
xen xen/mcelog: Add __nonstring annotations for unterminated strings 2025-03-14 11:15:16 +01:00
Kbuild drm: ensure drm headers are self-contained and pass kernel-doc 2025-02-12 10:44:43 +02:00