From nobody Sat Apr 25 21:36:48 2026 X-Original-To: dev-commits-src-main@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 4g337N5vWhz6ZlQL for ; Sat, 25 Apr 2026 21:36:48 +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 4g337N3p09z3tpq for ; Sat, 25 Apr 2026 21:36:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777153008; 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=UvacYIElysWXhaAjkc6owxKfHVvhOeahDF9g5NyhEb8=; b=QvCgr/9bEwMJIwpBu1UecxqlQ/7wN/Fxvf+tMpasfOJ6aw6DSzMwfCQNl3sZpWvFJ2MXzE DcDYCXPTJ3gaHcufUpsWBgPzuIuWgBmLTAfqcccySRfuJaxytg7WDVnFaTtH0ijHM3Rsju rsFzSFiHm4hww92oBSSX9ywDaXCpZNovx+CsCl0g6AlHhM2G+TbPFz3e0AXPbuVxt56TNI GrC+9u9Pbk/cS8RsAR4jOf9fHJ/To7nR4cXuJHhcc3f1nZHnzKxJsXVGHrHiAyL7jM6HpK /0aDYDRhvvgZMzJGnOqqTO7ckKRFJL3hFXFC7/NZC2K20lyKfiTzNOZs1w/jag== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777153008; a=rsa-sha256; cv=none; b=IPEIep2F6ud6aJN0x/06NAh7TXasJFVoOhvSeoU3P896IbigZKJm8SKTCPLm8SxXkXmU1N TrUCTsKToLLr3YoFi5ej5mYMFIy4BrCYF7U9YmL9tO+ayRxsbfgSH9JhYytLhRQpxoFCSz zEMsQVAfVaucUCQvMydHhAcpj3/JhoUUAGaVzaloFawT7BXLrHpE1jzVq72D920hL4uCjD pTFDr4aLgGggvcBDf0rdIQupW8ZOVf+aMrqNT3IeuGH+Q4RHggq0gEtgZ2vHwZDoVJYovK ZsUnJwnDCEoLodXY4eK/xbOaU8XwyZ5W+Lvu3ggaq1nxZu3w4KixnKd9Cp7J+Q== 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=1777153008; 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=UvacYIElysWXhaAjkc6owxKfHVvhOeahDF9g5NyhEb8=; b=Nh+1C5Yd2DRznR6f3Yv5wE0Vh22VvJk0LVeYryXOPV1Bs0tFepDbWwa/JhKEko3z4mwiIy EgLe9alFaJSsXAkN2W/WPcpl7JriqhWkwUKqKhv/Ce1ADQNkpnX+wiY6jKtjwsz4R8MQn9 tQukGPPnEChBqs2PcmzpYbo9woN3AZ2l1dEsNEqCtlG3iKUoG6JDrL48cF5UQfskqtoXkK 2/LuBBXXIZb0ZZmpGldSFFlSuSuhzKl8lfnXDkzilnmD06YpqNsztpRALpMbfl90aKhXcK ksEOJQiJAF2c777tiSFxy4fQ9COV3XzxElSBowgXghaKqZR1VnuVmhp46V4gow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g337N2nXLzs6W for ; Sat, 25 Apr 2026 21:36:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cdd0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 25 Apr 2026 21:36:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ahmad Khalifa Subject: git: d1854272b646 - main - vt_core: make sure the driver's functions exist List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: d1854272b646306de6546f8e5702e8072051d7f6 Auto-Submitted: auto-generated Date: Sat, 25 Apr 2026 21:36:48 +0000 Message-Id: <69ed33f0.3cdd0.4427224c@gitrepo.freebsd.org> The branch main has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=d1854272b646306de6546f8e5702e8072051d7f6 commit d1854272b646306de6546f8e5702e8072051d7f6 Author: Ahmad Khalifa AuthorDate: 2026-04-20 20:15:00 +0000 Commit: Ahmad Khalifa CommitDate: 2026-04-25 21:35:08 +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 --- 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 ef8926a76286..68a9a71c3d72 100644 --- a/sys/dev/vt/vt_core.c +++ b/sys/dev/vt/vt_core.c @@ -1684,32 +1684,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