On Tue, Mar 11, 2025 at 06:20:53PM +0100, José Expósito wrote: > Hi everyone, > > > On Tue, Feb 25, 2025 at 02:51:40PM +0100, Louis Chauvet wrote: > > > > > > > > > Le 25/02/2025 à 12:41, Thomas Zimmermann a écrit : > > > > Hi > > > > > > > > Am 10.02.25 um 15:37 schrieb Louis Chauvet: > > > > > On 10/02/25 - 13:30, Greg Kroah-Hartman wrote: > > > > > > The vkms driver does not need to create a platform device, as there is > > > > > > no real platform resources associated it, it only did so because it was > > > > > > simple to do that in order to get a device to use for resource > > > > > > management of drm resources. Change the driver to use the faux device > > > > > > instead as this is NOT a real platform device. > > > > > > > > > > > > Cc: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> > > > > > > Cc: Haneen Mohammed <hamohammed.sa@xxxxxxxxx> > > > > > > Cc: Simona Vetter <simona@xxxxxxxx> > > > > > > Cc: Melissa Wen <melissa.srw@xxxxxxxxx> > > > > > > Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > > > > > > Cc: Maxime Ripard <mripard@xxxxxxxxxx> > > > > > > Cc: Thomas Zimmermann <tzimmermann@xxxxxxx> > > > > > > Cc: David Airlie <airlied@xxxxxxxxx> > > > > > > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > > > > > > Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx> > > > > > > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > > > > > > > Reviewed-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > > > > > > > > > Tested-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> > > > > > Reviewed-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> > > > > > > > > > > Thanks for the modification, it seems to work. > > > > > > > > Should this patch be merged through DRM trees? drm-misc-next is at > > > > v6.14-rc4 and has struct faux_device. > > > > > > Hi, > > > > > > I was not aware the faux-device was merged, as it is a new feature, I > > > expected it to reach drm-misc-next on 6.15-rc1. > > > > I added it to Linus's tree just so that DRM could get these changes into > > their tree now :) > > > > > I plan to merge [1] today/tomorrow (well tested with platform_device), and > > > then I will submit an updated version of this patch (only trivial conflicts, > > > but never tested with multiple VKMS devices). > > > > > > [1]:https://lore.kernel.org/all/20250218101214.5790-1-jose.exposito89@xxxxxxxxx/ > > > > Great, thanks! > > > > greg k-h > > Testing this patch again as part of some IGT tests I'm working on, > I noticed that, applying this patch on top of the latest drm-misc-next > triggers a warning at drivers/gpu/drm/drm_gem.c:571, in > drm_gem_get_pages(): > > if (WARN_ON(!obj->filp)) > return ERR_PTR(-EINVAL); I forgot to mention that this warning is triggered just by `sudo modprobe vkms`. Sorry for the additional email. Jose > To double check that the cause were not my local changes, I checked > out commit 2d4d775d11d3 ("drm: pl111: fix inconsistent indenting > warning"), which doesn't contain any vkms config changes, applied this > patch and the result is the same. > > Louis, do you also see this warning? > > For reference, the log is at the end of this email. > Jose > > --- > > [ 110.126952] [drm] Initialized vkms 1.0.0 for vkms on minor 1 > [ 110.129193] faux_driver vkms: [drm] fb1: vkmsdrmfb frame buffer device > [ 110.326759] ------------[ cut here ]------------ > [ 110.326769] WARNING: CPU: 5 PID: 1106 at drivers/gpu/drm/drm_gem.c:571 drm_gem_get_pages+0x5e9/0x780 > [ 110.326795] Modules linked in: vkms snd_seq_dummy snd_hrtimer snd_seq snd_seq_device snd_timer snd soundcore nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set rfkill nf_tables qrtr sunrpc binfmt_misc ppdev pktcdvd parport_pc e1000 parport i2c_piix4 pcspkr i2c_smbus joydev loop nfnetlink vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci zram vsock bochs serio_raw ata_generic pata_acpi fuse qemu_fw_cfg > [ 110.326892] CPU: 5 UID: 42 PID: 1106 Comm: KMS thread Not tainted 6.14.0-rc4+ #2 > [ 110.326898] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014 > [ 110.326902] RIP: 0010:drm_gem_get_pages+0x5e9/0x780 > [ 110.326909] Code: 8d bd 78 fe ff ff e8 76 ca 8c fe 48 8d bd 78 fe ff ff e8 ea d9 8a fe e8 75 1a 17 01 e9 4b ff ff ff 48 8d 58 ff e9 6a fe ff ff <0f> 0b 49 c7 c7 ea ff ff ff e9 40 ff ff ff 0f 0b e9 0f fb ff ff 4c > [ 110.326914] RSP: 0018:ffffc9000572f550 EFLAGS: 00010246 > [ 110.326919] RAX: 1ffff11024531402 RBX: ffff88812298a000 RCX: 0000000000000000 > [ 110.326923] RDX: dffffc0000000000 RSI: ffff8881125d54c8 RDI: ffff88812298a010 > [ 110.326927] RBP: ffffc9000572f750 R08: 8000000000000063 R09: fffff52000ae5ef0 > [ 110.326929] R10: ffffc9000572f787 R11: ffff888104638528 R12: 0000000000000000 > [ 110.326932] R13: ffff88812298a168 R14: ffff88812298a0e8 R15: ffff88812298a190 > [ 110.326936] FS: 00007f3cf4e536c0(0000) GS:ffff8883af080000(0000) knlGS:0000000000000000 > [ 110.326940] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 110.326944] CR2: 00007f3cd40337f8 CR3: 00000001394e4000 CR4: 00000000000006f0 > [ 110.326951] Call Trace: > [ 110.326954] <TASK> > [ 110.326957] ? show_regs.cold+0x19/0x1e > [ 110.326965] ? __warn.cold+0xbd/0x17f > [ 110.326970] ? drm_gem_get_pages+0x5e9/0x780 > [ 110.326975] ? report_bug+0x20b/0x2d0 > [ 110.326982] ? handle_bug+0x60/0xa0 > [ 110.326988] ? exc_invalid_op+0x1c/0x50 > [ 110.326993] ? asm_exc_invalid_op+0x1f/0x30 > [ 110.327000] ? drm_gem_get_pages+0x5e9/0x780 > [ 110.327005] ? kasan_save_stack+0x4d/0x60 > [ 110.327011] ? kasan_save_stack+0x3d/0x60 > [ 110.327016] ? kasan_save_track+0x1c/0x70 > [ 110.327020] ? kasan_save_alloc_info+0x3b/0x50 > [ 110.327025] ? __pfx_drm_gem_get_pages+0x10/0x10 > [ 110.327029] ? drm_atomic_helper_commit+0x7c/0x290 > [ 110.327037] ? dma_resv_get_singleton+0x99/0x2b0 > [ 110.327043] drm_gem_shmem_get_pages+0x69/0x1f0 > [ 110.327048] drm_gem_shmem_vmap+0x1f8/0x670 > [ 110.327054] drm_gem_shmem_object_vmap+0xd/0x20 > [ 110.327058] drm_gem_vmap+0x70/0xd0 > [ 110.327063] drm_gem_vmap_unlocked+0x4f/0xa0 > [ 110.327067] drm_gem_fb_vmap+0xaf/0x3c0 > [ 110.327073] vkms_prepare_fb+0x6e/0x80 [vkms] > [ 110.327081] drm_atomic_helper_prepare_planes+0x1a5/0xba0 > [ 110.327088] drm_atomic_helper_commit+0x128/0x290 > [ 110.327092] ? __pfx_drm_atomic_helper_commit+0x10/0x10 > [ 110.327097] drm_atomic_commit+0x203/0x2d0 > [ 110.327101] ? _raw_spin_lock_irqsave+0x97/0xf0 > [ 110.327106] ? __pfx_drm_atomic_commit+0x10/0x10 > [ 110.327110] ? __pfx___drm_printfn_info+0x10/0x10 > [ 110.327116] ? drm_event_reserve_init+0x1cd/0x260 > [ 110.327123] drm_mode_atomic_ioctl+0x1d2b/0x2d30 > [ 110.327129] ? __pfx_drm_mode_atomic_ioctl+0x10/0x10 > [ 110.327134] ? __kasan_check_write+0x18/0x20 > [ 110.327140] drm_ioctl_kernel+0x177/0x2f0 > [ 110.327145] ? __pfx_drm_mode_atomic_ioctl+0x10/0x10 > [ 110.327149] ? __pfx_drm_ioctl_kernel+0x10/0x10 > [ 110.327155] ? __kasan_check_write+0x18/0x20 > [ 110.327160] drm_ioctl+0x557/0xc90 > [ 110.327165] ? __pfx_drm_mode_atomic_ioctl+0x10/0x10 > [ 110.327170] ? __pfx_drm_ioctl+0x10/0x10 > [ 110.327176] ? selinux_file_ioctl+0x106/0x250 > [ 110.327181] ? fdget+0x2ca/0x3d0 > [ 110.327185] ? selinux_file_ioctl+0x106/0x250 > [ 110.327191] __x64_sys_ioctl+0x13c/0x1a0 > [ 110.327198] x64_sys_call+0xf3b/0x1d70 > [ 110.327202] do_syscall_64+0x82/0x160 > [ 110.327208] ? irqentry_exit+0x3f/0x50 > [ 110.327213] ? exc_page_fault+0x94/0x110 > [ 110.327218] entry_SYSCALL_64_after_hwframe+0x76/0x7e > [ 110.327223] RIP: 0033:0x7f3d100fda6d > [ 110.327234] Code: 04 25 28 00 00 00 48 89 45 c8 31 c0 48 8d 45 10 c7 45 b0 10 00 00 00 48 89 45 b8 48 8d 45 d0 48 89 45 c0 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1a 48 8b 45 c8 64 48 2b 04 25 28 00 00 00 > [ 110.327238] RSP: 002b:00007f3cf4e519b0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 > [ 110.327244] RAX: ffffffffffffffda RBX: 00007f3cd402a440 RCX: 00007f3d100fda6d > [ 110.327247] RDX: 00007f3cf4e51a50 RSI: 00000000c03864bc RDI: 0000000000000035 > [ 110.327250] RBP: 00007f3cf4e51a00 R08: 00000000000000d0 R09: 0000000000000001 > [ 110.327254] R10: 0000000000000003 R11: 0000000000000246 R12: 00007f3cf4e51a50 > [ 110.327257] R13: 00000000c03864bc R14: 0000000000000035 R15: 00007f3cd4029f20 > [ 110.327262] </TASK> > [ 110.327264] ---[ end trace 0000000000000000 ]---