NetBSD Problem Report #56812

From o.vd.linden@quicknet.nl  Tue May  3 15:32:12 2022
Return-Path: <o.vd.linden@quicknet.nl>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 4913B1A9239
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  3 May 2022 15:32:12 +0000 (UTC)
Message-Id: <YnFK9tiY9KSH5lBs@sheep>
Date: Tue, 3 May 2022 17:32:06 +0200
From: Onno van der Linden <o.vd.linden@quicknet.nl>
To: gnats-bugs@netbsd.org
Subject: DRM upgrade from last december causes Xorg startup failure

>Number:         56812
>Category:       kern
>Synopsis:       DRM upgrade from last december causes Xorg startup failure
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 03 15:35:00 +0000 2022
>Closed-Date:    Sun May 22 22:07:30 +0000 2022
>Last-Modified:  Sun May 22 22:07:30 +0000 2022
>Originator:     Onno van der Linden
>Release:        NetBSD 9.99.96
>Organization:
>Environment:
System: NetBSD sheep 9.99.96 NetBSD 9.99.96 (SHEEPDRM) #10: Tue May 3 16:42:02 CEST 2022 onno@sheep:/usr/obj/sys/arch/i386/compile/SHEEPDRM i386
Architecture: i386
Machine: i386
>Description:
Ever since the upgrade to linux-drm-v5-6-rc3 around 2021-12-19
trying to run X on this machine with a radeon HD5450 video card
fails for the modesetting driver with "failed to create screen resources"
and returns to shell from which startx was run.
Running X with the radeon driver makes the console inaccessible and
shows 'Failed to map cursor buffer memory' in the Xorg log.
>How-To-Repeat:
Try to run X on this machine with the DRM linx-drm-v5-6-rc3 sources
>Fix:
Traced the mmap failure back to an offset sanity check in 
radeon_mmap_object. With the diff below everything seems to run fine.
No idea if this fix is correct. nouveau/nouveau_ttm.c has the same
check but instead of an EINVAL return it calls drm_legacy_mmap_object().

--- /usr/src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c.orig	2022-05-03 16:33:56.871235729 +0200
+++ /usr/src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c	2022-05-03 16:44:59.380652149 +0200
@@ -65,12 +65,6 @@
 #include <drm/bus_dma_hacks.h>
 #endif

-#ifdef _LP64
-#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
-#else
-#define DRM_FILE_PAGE_OFFSET (0xa0000000UL >> PAGE_SHIFT)
-#endif
-
 static int radeon_ttm_debugfs_init(struct radeon_device *rdev);
 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev);

@@ -1108,7 +1102,7 @@
 	if (__predict_false(rdev == NULL))	/* XXX How?? */
 		return -EINVAL;

-	if (__predict_false((offset >> PAGE_SHIFT) < DRM_FILE_PAGE_OFFSET))
+	if (__predict_false((offset >> PAGE_SHIFT) < DRM_FILE_PAGE_OFFSET_START))
 		return -EINVAL;

 	return ttm_bo_mmap_object(&rdev->mman.bdev, offset, size, prot,

>Release-Note:

>Audit-Trail:

State-Changed-From-To: open->feedback
State-Changed-By: riastradh@NetBSD.org
State-Changed-When: Sat, 21 May 2022 17:50:01 +0000
State-Changed-Why:
Candidate fix committed, can you cvs up and test?


From: "Taylor R Campbell" <riastradh@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/56812 CVS commit: src/sys/external/bsd/drm2/dist/drm
Date: Sat, 21 May 2022 17:50:22 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Sat May 21 17:50:21 UTC 2022

 Modified Files:
 	src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_drv.h nouveau_ttm.c
 	src/sys/external/bsd/drm2/dist/drm/radeon: radeon_ttm.c

 Log Message:
 drm: Nix driver-specific DRM_FILE_PAGE_OFFSET defs and tests.

 This was consolidated upstream into the vma manager.

 PR kern/56812


 To generate a diff of this commit:
 cvs rdiff -u -r1.3 -r1.4 \
     src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h
 cvs rdiff -u -r1.9 -r1.10 \
     src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c
 cvs rdiff -u -r1.24 -r1.25 \
     src/sys/external/bsd/drm2/dist/drm/radeon/radeon_ttm.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Onno van der Linden <o.vd.linden@quicknet.nl>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/56812 (DRM upgrade from last december causes Xorg startup
 failure)
Date: Sun, 22 May 2022 07:57:56 +0200

 On Sat, May 21, 2022 at 05:50:01PM +0000, riastradh@NetBSD.org wrote:
 > Synopsis: DRM upgrade from last december causes Xorg startup failure
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: riastradh@NetBSD.org
 > State-Changed-When: Sat, 21 May 2022 17:50:01 +0000
 > State-Changed-Why:
 > Candidate fix committed, can you cvs up and test?
 > 

 PR can be closed, X starts and works with these fixes.

State-Changed-From-To: feedback->closed
State-Changed-By: maya@NetBSD.org
State-Changed-When: Sun, 22 May 2022 22:07:30 +0000
State-Changed-Why:


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.