From nobody Wed Apr 1 09:46:38 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A9712EACF2 for ; Mon, 30 Mar 2026 21:23:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774905838; cv=none; b=NiEHTW88rs+u1lz1bc0n+2Dly0CcbkNSBOY+KRwG7CTnCv1A+bi2/SCwi3DEUfH72WxiY04OQF5smlQPd/NNv5evVEfzawF8LCrhcpr3EItQw1cg5sxc1qSh50TORcb+N/oMx5znPLB/0wSqcmDMU797Ed4LZ+VMeNMRxuAVy+g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774905838; c=relaxed/simple; bh=gg/+qd9lKJZ3VbFlkE39x5JH1DDKZMGJVqccM56LzXs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=kgcz4WvAtqxQGn5KEDwddXh+iTtxynyUN3SSB0m2+hPTC0WD0uftj7Fxd4PthiQYxRHPkjD7cIR1SY68kaelvPU/elJQDLQikApmhv6bx6OXMo+4CvNeFdqy6YXV3uXrBpOO2PoC2HQ4BlvM/6gZmBx4B/RS1IXVf0Jpu39UAMQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UEwiP2sW; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UEwiP2sW" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2b0ba3bfe16so38414465ad.1 for ; Mon, 30 Mar 2026 14:23:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774905837; x=1775510637; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=XjjIrXPfDSSBntPUXBfY9smmOGuXahxeNABshAdAH/Q=; b=UEwiP2sWttJK/z+Lsx3tFxRyiLCnxsW4jsBgYT9AXsx70QNw9wijDX/gj9djvXUj2z VstiVXlTa/pKGLj57ULU30UVoNyofsAJzbpA/Bs6RM2nUNinPeZuTgEPXNTOISiOuILz 9+XnGu2cELKN4qGd7iuG/mvnX8VBZt9VqiTjQrJkc/XkiJZy5i3N4AzdlvPWUPQOdlnP Fs9GRMPPHqUD+S4ivEs0+OpRYedb2FSXH8elqdA4/UNDoJMPagcdHnbvRZX3bDzzbZwB KnAWShK+2YPcDwEz3jZKfaii+XuI8AYg4oaGbGHIH/vbaTxJ+s+1KJiuXu272jCb2IdR A7Bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774905837; x=1775510637; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=XjjIrXPfDSSBntPUXBfY9smmOGuXahxeNABshAdAH/Q=; b=Ett12ULWvi95DS0P1dZq9BUjfBuju61avVn2ToTAL1n88hKhfF6NeUfD66Q1oTgdnI Qnh9mqQvw3QuUS9rFwGhEZmIwphu6p9jnq0i+i5PbRQGFl2iQW+rycPVkxFqcO55IJeh 3+f6H4Q0zVpsK38LMxxGsGKR8cRvPg8OWG/pKL3X+SFdSdPQoQ8AXc9trE+YLhJ/Xa4x ABwcz3cbahnVY4Gp9LSvToCCZbVK+24GhJxXtmzszFYhWUz2Qkf08J1bfJz61jhofus7 A41HFkrjo8hwT8evoV9BqNq8A9BMx2J3zOUCJdpk3L/3A/JtKthfnRLsyUj2xEXb4LwC tXag== X-Forwarded-Encrypted: i=1; AJvYcCWNiLby3FzYNiFpSsPXsn2wSN+gyw05PGwwxoHlv0EJz07rAKAcuK03QYThekfimda7ed/dJ+FqwXuMqb0=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3VfSLOP+vWobzAXE4TQ29jCUKgUyKSAl7DlKg1ofdfgjHa4ds Upk3NMEoS8jZ3VNKr8BK9uaN6FCCDUQNO3LG7yumQiYfSjsPjep66+/C X-Gm-Gg: ATEYQzzSr8sdMrdjh9ZY+BUFngsJRI3o9QWkM7qOvzxEoCt61F0dAr9uBXw9xmghCSD LtHfd9XOgVwbat3I1AaQu/QDcMl4JJ6PR69QI8q6WUAtfBtdaHgxoKoGSxtbqL8abbahGqRElcO Sep95j8arSH92jC/Ed2LaTiCmAxwmrlc7J3Cw2S30UGDDdXmxxtkZfHuIM6FMViRJH4+UMofUap M4C6FhRDQUvys4Lcsi0gi3J8MPHmBLOL2cwUHd5LTr0vuNbuqlvpXjbb26HxzYCsuxsx4fhiGY8 GPVw9CyctjzmuCkNIGA57R3rH/Z83tRojYuKidOUb2zaAJY42cpe83CP8aoU3Y9u+Z/oFNhxoDp VGIhrNZ9WmN/JVsUwhv2KrDxuLjtXr7Re3I7b3j1Us6F8vq2lKYgebCANf8mZUVObT7F0+lUL85 KCjsFKLGUt7k+MSsKKE4ssEsRwfJrLmGETEO6B7NlqAuyofw/i3TcEB4Q= X-Received: by 2002:a17:902:ccd1:b0:24b:1585:6350 with SMTP id d9443c01a7336-2b25eed40e1mr8421245ad.11.1774905836913; Mon, 30 Mar 2026 14:23:56 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d::8bd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b2427b15a2sm111083995ad.73.2026.03.30.14.23.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 14:23:56 -0700 (PDT) From: Rosen Penev To: sparclinux@vger.kernel.org Cc: "David S. Miller" , Andreas Larsson , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] oradax: allocate ccb_buf with ctx Date: Mon, 30 Mar 2026 14:23:39 -0700 Message-ID: <20260330212339.16673-1-rosenp@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use a flexible array member to allocate together and avoid freeing separately. Signed-off-by: Rosen Penev --- drivers/sbus/char/oradax.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/sbus/char/oradax.c b/drivers/sbus/char/oradax.c index 45df0b274491..7313585ff3a2 100644 --- a/drivers/sbus/char/oradax.c +++ b/drivers/sbus/char/oradax.c @@ -189,7 +189,6 @@ struct dax_cca { =20 /* per thread CCB context */ struct dax_ctx { - struct dax_ccb *ccb_buf; u64 ccb_buf_ra; /* cached RA of ccb_buf */ struct dax_cca *ca_buf; u64 ca_buf_ra; /* cached RA of ca_buf */ @@ -200,6 +199,7 @@ struct dax_ctx { union ccb_result result; u32 ccb_count; u32 fail_count; + struct dax_ccb ccb_buf[]; }; =20 /* driver public entry points */ @@ -533,7 +533,6 @@ static int dax_close(struct inode *ino, struct file *f) dax_unlock_pages(ctx, i, 1); } =20 - kfree(ctx->ccb_buf); kfree(ctx->ca_buf); dax_stat_dbg("CCBs: %d good, %d bad", ctx->ccb_count, ctx->fail_count); kfree(ctx); @@ -643,13 +642,9 @@ static int dax_open(struct inode *inode, struct file *= f) struct dax_ctx *ctx =3D NULL; int i; =20 - ctx =3D kzalloc_obj(*ctx); + ctx =3D kzalloc_flex(*ctx, ccb_buf, DAX_MAX_CCBS); if (ctx =3D=3D NULL) - goto done; - - ctx->ccb_buf =3D kzalloc_objs(struct dax_ccb, DAX_MAX_CCBS); - if (ctx->ccb_buf =3D=3D NULL) - goto done; + return -ENOMEM; =20 ctx->ccb_buf_ra =3D virt_to_phys(ctx->ccb_buf); dax_dbg("ctx->ccb_buf=3D0x%p, ccb_buf_ra=3D0x%llx", @@ -671,8 +666,6 @@ static int dax_open(struct inode *inode, struct file *f) return 0; =20 alloc_error: - kfree(ctx->ccb_buf); -done: kfree(ctx); return -ENOMEM; } --=20 2.53.0