From nobody Tue Apr 28 18:56:00 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g4qQT0M33z6bwgs for ; Tue, 28 Apr 2026 18:56:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g4qQS6NWkz3yfJ for ; Tue, 28 Apr 2026 18:56:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777402560; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JK5dNRL6FBL0xp5lpxInVoUKKUOy0cG4qzONetxEN5U=; b=ofxIaSmLqiYC6w7Hq4GGsRg5dgu1zh1LLNgcF8hieNKf1ICyMkVgZYx6F/b5PMBHmKE2bT xXXWTQIxRmd3OAINdEPRj1jurvJ42lEEvubFEGrZ/sGe4vc5t+H9Yh+8/+9n4R/Js4Y7dQ Ou0PMRDcaDm3N1vnt0LJJmQmYKan9u6pp7wU1Vr9soxEekLu2ll3Zz9wya8o08HcqNlSUx 2XdrG6dRGbAearsB1VuMVdAJ+1hdGpMB/AaExY9wPVpeLk/yiI9dHLq8eWAzRgdHRbBvSh ITXsvYkMX+xENMsKZ04UBe6Hx/djV7D5YAnLpWP6glFaTEwLYVFGBAhKA5Hpkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777402560; a=rsa-sha256; cv=none; b=e0b3n8DuXVO4y8WNw47oxK979OA1uHMSncCioVpaL49B9pfqm0DaQYyH4MNVHttSfY48qA 1Hol5CaPaxLb7qzA7LrEqY7b8Cpk1lHfBuk7tpeGz90OatDJcNYYQVVng92eJ6Ax3wlVFf dk1IgwL+4Pt5OAmWw2fqQrFBOvesppdNq/X+4kEbCdgUV7pI+HdzX7nbovxdrD51hNlyIc iCESIN+Z08NT04qfvZqNBvudJnUVatR2v33sUasOhfEmggGhzYxjR+GTksmk3AnzIdnOtX aq2cF/OwlnQV1gPmZ5CJz2fYzL5W1s1tHwTJYTip28LSQM/7KtvpgeGHFDqhpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777402560; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JK5dNRL6FBL0xp5lpxInVoUKKUOy0cG4qzONetxEN5U=; b=AilRxcO4WO1JW8ZLJBJI88y9w1PUmSAFglBncTC1LPUfO5bweHu7g0YSx8GfEVGJtJlsaR g/sJr49UzWBgeBYhHnKiS48tyydIbyn2EdjRkzIroua3lblAEi6qALWfgz9vrjq+/XWzGV dxudgg7MlGDHJtFvU8mU2xk6DZKBwQMPq1gmBzYkYidv+54gYjjpNoYE/nz+crsEoeO+vl 0gjs+ghji1eW6+EyfnJ1/jTTVJmodOheeykfgHQ4dRb2UEEBgi/PzWzsMnfrooIwSGOLSq 0Daf7hzg735aTgGzPohVFfYKJ/hLZTVk0AqKbQFHbhU9nKHbnnngINheKsVVlw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g4qQS52qzz15bd for ; Tue, 28 Apr 2026 18:56:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26f4e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 28 Apr 2026 18:56:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ahmad Khalifa Subject: git: 1a8343a00a16 - stable/15 - vt_core: make sure the driver's functions exist List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vexeduxr X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1a8343a00a16a74c58eee2e74e22aee5cd347ae2 Auto-Submitted: auto-generated Date: Tue, 28 Apr 2026 18:56:00 +0000 Message-Id: <69f102c0.26f4e.7e62fe81@gitrepo.freebsd.org> The branch stable/15 has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=1a8343a00a16a74c58eee2e74e22aee5cd347ae2 commit 1a8343a00a16a74c58eee2e74e22aee5cd347ae2 Author: Ahmad Khalifa AuthorDate: 2026-04-20 20:15:00 +0000 Commit: Ahmad Khalifa CommitDate: 2026-04-28 16:47:11 +0000 vt_core: make sure the driver's functions exist These are NULL if they're not implemented. Make sure all the functions we need are there before doing anything. Also invert the first if statment to lessen the indentation a bit. Reported by: Quentin Thébault MFC after: 3 days (cherry picked from commit d1854272b646306de6546f8e5702e8072051d7f6) --- sys/dev/vt/vt_core.c | 59 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c index 33bbe65cb678..2015d982a560 100644 --- a/sys/dev/vt/vt_core.c +++ b/sys/dev/vt/vt_core.c @@ -1682,32 +1682,41 @@ vtterm_splash(struct vt_device *vd) uintptr_t image; vt_axis_t top, left; - if (!(vd->vd_flags & VDF_TEXTMODE) && (boothowto & RB_MUTE)) { - if (rebooting == 1) { - si = MD_FETCH(preload_kmdp, MODINFOMD_SHTDWNSPLASH, struct splash_info *); - vd->vd_driver->vd_blank(vd, TC_BLACK); - } else { - si = MD_FETCH(preload_kmdp, MODINFOMD_SPLASH, struct splash_info *); - } - if (si == NULL) { - top = (vd->vd_height - vt_logo_height) / 2; - left = (vd->vd_width - vt_logo_width) / 2; - vd->vd_driver->vd_bitblt_bmp(vd, vd->vd_curwindow, - vt_logo_image, NULL, vt_logo_width, vt_logo_height, - left, top, TC_WHITE, TC_BLACK); - } else { - if (si->si_depth != 4) - return; - image = (uintptr_t)si + sizeof(struct splash_info); - image = roundup2(image, 8); - top = (vd->vd_height - si->si_height) / 2; - left = (vd->vd_width - si->si_width) / 2; - vd->vd_driver->vd_bitblt_argb(vd, vd->vd_curwindow, - (unsigned char *)image, si->si_width, si->si_height, - left, top); - } - vd->vd_flags |= VDF_SPLASH; + if ((vd->vd_flags & VDF_TEXTMODE) != 0 || (boothowto & RB_MUTE) == 0) + return; + + si = MD_FETCH(preload_kmdp, rebooting == 1 ? MODINFOMD_SHTDWNSPLASH : + MODINFOMD_SPLASH, struct splash_info *); + if (si == NULL) { + if (vd->vd_driver->vd_bitblt_bmp == NULL) + return; + } else if (vd->vd_driver->vd_bitblt_argb == NULL) + return; + + if (rebooting == 1) { + if (vd->vd_driver->vd_blank == NULL) + return; + vd->vd_driver->vd_blank(vd, TC_BLACK); } + + if (si == NULL) { + top = (vd->vd_height - vt_logo_height) / 2; + left = (vd->vd_width - vt_logo_width) / 2; + vd->vd_driver->vd_bitblt_bmp(vd, + vd->vd_curwindow, vt_logo_image, NULL, vt_logo_width, + vt_logo_height, left, top, TC_WHITE, TC_BLACK); + } else { + if (si->si_depth != 4) + return; + image = (uintptr_t)si + sizeof(struct splash_info); + image = roundup2(image, 8); + top = (vd->vd_height - si->si_height) / 2; + left = (vd->vd_width - si->si_width) / 2; + vd->vd_driver->vd_bitblt_argb(vd, vd->vd_curwindow, + (unsigned char *)image, si->si_width, si->si_height, + left, top); + } + vd->vd_flags |= VDF_SPLASH; } #endif