From nobody Thu Jul 10 17:03:53 2025 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 4bdLlt0bK3z61HZn; Thu, 10 Jul 2025 17:03:54 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bdLls6p9Yz3ss5; Thu, 10 Jul 2025 17:03:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752167034; 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=g81bXJ1UcII7vpfbZ0QoRtwZT0mcl68lmhFr4NBPeIc=; b=YiDSK9kYX3wIyx1b0Pis2NUZ7FQHo7ApxxYsp/5kfTlXIIm3lsOWdZcYopDUbcNXeJlR14 8HsMylqVU2eNqaVXinCNMXD8uOW/OLFU2er5XFDv3YBYM1DDpcGQfaCcWuXQsoC3EKq05q aRZ/moYOWC3PGqjQSZ7EfAGc/vxeShvPtqb+FGwEVYvYA9fOZ31C/fkmVfyTwJnju7+hOC jFfUjeHFg1godrYs2Om/MRmUBmo9fc/b/VFI/bOAwqCZJt9TXusTSO0Wvim4NfLQQu1EXl itbePNVzoHmgcLbzMiDbt+syKrkXdcUN8MHLxIxy6RJtrcRjP2OwaSxjQItXPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752167034; 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=g81bXJ1UcII7vpfbZ0QoRtwZT0mcl68lmhFr4NBPeIc=; b=E6oMXyeXDtf2+aCEhRE+kQmBvcRxn9smD0ECpIUx6VGQKhZlqWKTg5esNdXgrWpFb3FfWs rUvw1vkyA4MwK4ynYh3JWo8enIvEKOKrl7fE+oJuozfKHqE51VC+3Wz+XYtRLdeEyP1epl hIuA7qkm+BVprMaznzG8/Bysb+QYn2WRed0iisrvRdNUOlItabIKE10/hRirqvO64EHkth qXP4HUQzTaWBxxjRa8+oPHRYh7RaOT7lNcioBd6dWlT+ioCaOnRkblTGBOK3M9IddarOQY zBOM2wJ4Nog66Qn2HsJqI+WpGwltBLUa0c81ZpXjWDyru8RZLraGxWrEVTeDyA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1752167034; a=rsa-sha256; cv=none; b=bE4nS8OK03gLfpJYPK+cGTe5U9EH1WxcI0YIFEexTUcZooYiS0NeP2aT/n7vqGpetRmCzH UNKTaKvxkCEAh5TJDtETWHNJkSoKp8wFU7+bjil6tsl/NSBsnYAgfwqPF3MUinsV2atzlj KXptab2KO1o8mRIrE7WQOAlvqO4lfri1tIeQdr1xCXVMut+H/49bWFojFC6w35kqtLpl8H rzKTPAPPHD9ri2iieQ1ZFMynnWC4eTXMGKLxXUcMez403lY0L1jGxFzDOmk51kipw+Jq8s a3YyYCpN4K5XPNAzgv3DoPdOI/ORtjmzJlMbI7FjeQ88gkn/ruVJEOhjl8tVgQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bdLls6Msmz1FWq; Thu, 10 Jul 2025 17:03:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 56AH3rql078917; Thu, 10 Jul 2025 17:03:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 56AH3rQk078914; Thu, 10 Jul 2025 17:03:53 GMT (envelope-from git) Date: Thu, 10 Jul 2025 17:03:53 GMT Message-Id: <202507101703.56AH3rQk078914@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: cad5cfe7507e - main - cam: Use less stack space 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cad5cfe7507e1b63f8898183da057aa1f0240e39 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=cad5cfe7507e1b63f8898183da057aa1f0240e39 commit cad5cfe7507e1b63f8898183da057aa1f0240e39 Author: Warner Losh AuthorDate: 2025-07-10 15:56:13 +0000 Commit: Warner Losh CommitDate: 2025-07-10 16:17:00 +0000 cam: Use less stack space Use less stack space by using the specific type of ccb to do the callback. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D51215 --- sys/cam/cam_periph.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c index 833df6cfb99b..2cf1ef5f53ef 100644 --- a/sys/cam/cam_periph.c +++ b/sys/cam/cam_periph.c @@ -767,27 +767,31 @@ camperiphfree(struct cam_periph *periph) CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph destroyed\n")); if (periph->flags & CAM_PERIPH_NEW_DEV_FOUND) { - union ccb ccb; - void *arg; - - memset(&ccb, 0, sizeof(ccb)); switch (periph->deferred_ac) { - case AC_FOUND_DEVICE: - ccb.ccb_h.func_code = XPT_GDEV_TYPE; - xpt_setup_ccb(&ccb.ccb_h, periph->path, CAM_PRIORITY_NORMAL); - xpt_action(&ccb); - arg = &ccb; + case AC_FOUND_DEVICE: { + struct ccb_getdev cgd; + + memset(&cgd, 0, sizeof(cgd)); + cgd.ccb_h.func_code = XPT_GDEV_TYPE; + xpt_setup_ccb(&cgd.ccb_h, periph->path, CAM_PRIORITY_NORMAL); + xpt_action((union ccb *)&cgd); + periph->deferred_callback(NULL, periph->deferred_ac, + periph->path, &cgd); break; - case AC_PATH_REGISTERED: - xpt_path_inq(&ccb.cpi, periph->path); - arg = &ccb; + } + case AC_PATH_REGISTERED: { + struct ccb_pathinq cpi; + + xpt_path_inq(&cpi, periph->path); + periph->deferred_callback(NULL, periph->deferred_ac, + periph->path, &cpi); break; + } default: - arg = NULL; + periph->deferred_callback(NULL, periph->deferred_ac, + periph->path, NULL); break; } - periph->deferred_callback(NULL, periph->deferred_ac, - periph->path, arg); } xpt_free_path(periph->path); free(periph, M_CAMPERIPH);