NetBSD Problem Report #52760

From www@NetBSD.org  Sat Nov 25 00:55:57 2017
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-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 D1D997A19F
	for <gnats-bugs@gnats.NetBSD.org>; Sat, 25 Nov 2017 00:55:57 +0000 (UTC)
Message-Id: <20171125005556.9712C7A1EE@mollari.NetBSD.org>
Date: Sat, 25 Nov 2017 00:55:56 +0000 (UTC)
From: qfh02545@nifty.com
Reply-To: qfh02545@nifty.com
To: gnats-bugs@NetBSD.org
Subject: Cannot parse VCE firware version in radeon_vce.c
X-Send-Pr-Version: www-1.0

>Number:         52760
>Category:       kern
>Synopsis:       Cannot parse VCE firware version in radeon_vce.c
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    mrg
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Nov 25 01:00:00 +0000 2017
>Closed-Date:    Mon Mar 23 17:31:15 +0000 2020
>Last-Modified:  Mon Mar 23 17:31:15 +0000 2020
>Originator:     HITOSHI Osada
>Release:        NetBSD-current
>Organization:
>Environment:
NetBSD athlon5350 8.99.7 NetBSD 8.99.7 (ATHLON5350KMS) #0: Sun Nov 19 23:26:17 JST 2017  that@athlon5350:/tmp/obj/sys/arch/amd64/compile/ATHLON5350KMS amd64
>Description:
In sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c, scan_2dec_{u8,uint} is used for parsing VCE versions.
However scan_2dec_{u8,uint} cannot parse /libdata/firmware/radeon/BONAIRE_vce.bin firmware version(40.2.2).
>How-To-Repeat:
boot radeonkms-enabled netbsd with GCN radeon.
>Fix:
diff --git a/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c b/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c
index cf2ff610be..8fd9c766a1 100644
--- a/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c
+++ b/sys/external/bsd/drm2/dist/drm/radeon/radeon_vce.c
@@ -52,8 +52,13 @@ scan_2dec_u8(const char **sp, char delim, uint8_t *u8p)

 	if (!isdigit((unsigned char)(c0 = *(*sp)++)))
 		return false;
-	if (!isdigit((unsigned char)(c1 = *(*sp)++)))
+	if (!isdigit((unsigned char)(c1 = *(*sp)++))) {
+		if (c1 == delim) {
+			*u8p = (c0 - '0');
+			return true;
+		}
 		return false;
+	}
 	if (*(*sp)++ != delim)
 		return false;

@@ -68,8 +73,13 @@ scan_2dec_uint(const char **sp, char delim, unsigned int *uintp)

 	if (!isdigit((unsigned char)(c0 = *(*sp)++)))
 		return false;
-	if (!isdigit((unsigned char)(c1 = *(*sp)++)))
+	if (!isdigit((unsigned char)(c1 = *(*sp)++))) {
+		if (c1 == delim) {
+			*uintp = (c0 - '0');
+			return true;
+		}
 		return false;
+	}
 	if (*(*sp)++ != delim)
 		return false;


>Release-Note:

>Audit-Trail:

State-Changed-From-To: open->pending-pullups
State-Changed-By: mrg@NetBSD.org
State-Changed-When: Sun, 22 Mar 2020 20:39:21 +0000
State-Changed-Why:
a similar fix was applied here:

revision 1.4
date: 2020-01-19 03:07:00 -0800;  author: jmcneill;  state: Exp;  lines: +22 -18;  commitid: iALCXq1CsjB66iTB;
Fix loading TAHITI VCE firmware.

we just need pullups for netbsd-8 now, netbsd 9.0 shipped with it.


Responsible-Changed-From-To: kern-bug-people->mrg
Responsible-Changed-By: mrg@NetBSD.org
Responsible-Changed-When: Sun, 22 Mar 2020 20:39:35 +0000
Responsible-Changed-Why:
i'll prepare the pullup.


State-Changed-From-To: pending-pullups->closed
State-Changed-By: mrg@NetBSD.org
State-Changed-When: Mon, 23 Mar 2020 17:31:15 +0000
State-Changed-Why:
should be all fixed on all active branches.  thanks!


>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.