From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) (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 7A1C834DB4A for ; Mon, 8 Jun 2026 04:59:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780894748; cv=none; b=LToi6NuZQIrbJa1p17Y4WJtYK6vvl/HSXCx+mtdoDVh7fmm2QpHvQXDRnItUIUGnvG1TrZ5lEnQGdiD01OSdV1V8o+u4kQ3tHaFMS3jm56NKrSKHthiP4suni50xHs34WIk2wwdIAFqhmE3AQC+BLeY7TgZPIpJC3vZDIM0sJKQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780894748; c=relaxed/simple; bh=sdqV9cxipRFlFA/MtGDmw0Ji7/g34gms0RXweBKZZfY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ZZ1PC8eFDHgGTK73upbd4TL1m/QgmbYREO1L1/THOLU2ffnqAFVXcyHcZQFPb9vHtNNQBBjqSFfdbB18ZIRcQL57qpCiN3p5FT5ULkop3irFbVxfSFNZ17OCa9dIDml2AJc6p+TD5iFPeLmkgE2liLsDyC9WpunXL1u3Lum07IA= 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=EfcQE/SQ; arc=none smtp.client-ip=209.85.215.169 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="EfcQE/SQ" Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-c858d69bde9so1552724a12.1 for ; Sun, 07 Jun 2026 21:59:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780894747; x=1781499547; 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=Ipqvdmyqqpva+7JIGdF/76e2icFV3lJnAt8HUZ3Swsk=; b=EfcQE/SQjr4Wan5VC4eRJ935/oBZx4lPa3WYtLxDNdRLFfziSuFLamDLeGfZjCcO7w G1gvnQsxqxNxhwQCNyfJPd1OxNSgiX3oErU7JPXBbE/gtaypzn1TGMCgTbW7bO56jTJ/ NSWQT4LWAN9tDLDoqz44sRMk6xi1znx+W6L9jUNWf+yASBt5OHhwb0wUbonV9+bQcPo4 AJJNeJ+yYiQ3y1MlBWkSjdu5DjBXGJE7aVP/N7HhI0JDOGsR5xqGzzBeB6lH9Ya0cMRv gBHZtPqTBmZUSi7CNfBVfL68eQqUwt9KHGbuLSsoG+7p+6WN0WbULkwqCjcBP62QMANQ mKrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780894747; x=1781499547; 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=Ipqvdmyqqpva+7JIGdF/76e2icFV3lJnAt8HUZ3Swsk=; b=i9jW8gc42vwGNGzqN7B3aMtu7dIxiFwoAqX/lcqqeE6OhL0zseNk4QRykF0bPLDeXo cR/8vo+gLMdFkc8M1FJOs6XPRPAuiXfhwzkkvvmIVJKG6O2TwwDt14TTWQerXA9byyWG eI6mR04GjE95nHD54ELKUABFjtBwJSd2/34t1lTZFe5Uclg6V3tQ199Rr0Yulv7/TvFU QTl6dyucmgooZ5vQ7meG8JHSEqZsiVL0S6F6p7h5nQj4E6xMoIq63UvuvaCPiMTtmeVf qYtr5NcCAElAgUNTEq+/reBjsmpLrXJ9L+ViLTug5tiqpc9OWpr9aDZlw6SGRYTcI3os OndQ== X-Forwarded-Encrypted: i=1; AFNElJ91zLDqfKinxf6qKLdor6OpUN5eY/04XM1PGqAtRw2qls3wmbIzWd+x685weyA6zdXOubBXbwEipl1GMsw=@vger.kernel.org X-Gm-Message-State: AOJu0YyZfBuKGOyhHJrpyA5xgilaOt2DqE4ayPlwlP9Yfm1acHGgrPLh x4AEXM0v71RJN8p3WRWC/+kgzKLAHmmv4TjzF1qUu+KXz//p6HnrZIAj X-Gm-Gg: Acq92OE/2QMJjUsiGMuFQKBHnpG/IUm+pmm2r1pQAWTfsdKUFJlT2bzzmF9fMQZ+5Iu PAcHIKmlzPHebNkBzfvMm7aNGOW0htatI3jYSLl9G8Y28wG2zyhR+qVqs1ny970tRGcKLZPMI71 agxfmcZW3yDm/S8eiRzrFhIfnBsfs0A/vK3EEfX5mXhDi+ay+z76El6UAnSFkCgfRbQlNrUosBh 9aptam5JDhapt1Tzc+qaypkQ1+kXQrSmrQ8WcbrRM2KksMvoD/MpmPNURXz4oxnWRRyWrbGQHM5 2ANHaVbaLPoHoo7fmBIj5+C1Y7F9Fwhr2rLgA4RFKBCl40BNusw5kpxfZ3CGPIUfYJVpF/bQLQ4 NI+XJHY4xRud9NYOczXB3zGjJhSuWW4Fzx11uuDDOG8jtFGaJw7Sers9FF+hM/enUgTzytMXwIl sVJY3H7OnWxF/tHq5Lj+vU9XuxHF1d2BY9pUsNgWmNsOXeNv8BY5JPp+Y0+Z5c896mZgyI13WtA GSUTZtczuQNInO0RN6rWu9ilgBP93b1f2+dBsY1+Wj8Fg== X-Received: by 2002:aa7:8889:0:b0:842:4f24:f3a2 with SMTP id d2e1a72fcca58-842b1065a73mr14478970b3a.28.1780894746717; Sun, 07 Jun 2026 21:59:06 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8428221a7e9sm20732154b3a.11.2026.06.07.21.59.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 21:59:06 -0700 (PDT) From: Rosen Penev To: dri-devel@lists.freedesktop.org Cc: Koby Elbaz , Konstantin Sinyuk , Oded Gabbay , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] accel/habanalabs: kzalloc + kcaalloc to kzalloc_flex Date: Sun, 7 Jun 2026 21:58:49 -0700 Message-ID: <20260608045849.5489-1-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Simplifies allocation by using a flexible array member. No need to free separately. Signed-off-by: Rosen Penev --- .../habanalabs/common/command_submission.c | 20 ++----------------- drivers/accel/habanalabs/common/habanalabs.h | 2 +- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/drivers/accel/habanalabs/common/command_submission.c b/drivers/accel/habanalabs/common/command_submission.c index ba4257bda77b..ba99329eacbd 100644 --- a/drivers/accel/habanalabs/common/command_submission.c +++ b/drivers/accel/habanalabs/common/command_submission.c @@ -809,7 +809,6 @@ static void cs_do_release(struct kref *ref) hl_fence_put(cs->fence); - kfree(cs->jobs_in_queue_cnt); kfree(cs); } @@ -907,9 +906,9 @@ static int allocate_cs(struct hl_device *hdev, struct hl_ctx *ctx, cntr = &hdev->aggregated_cs_counters; - cs = kzalloc_obj(*cs, GFP_ATOMIC); + cs = kzalloc_flex(*cs, jobs_in_queue_cnt, hdev->asic_prop.max_queues, GFP_ATOMIC); if (!cs) - cs = kzalloc_obj(*cs); + cs = kzalloc_flex(*cs, jobs_in_queue_cnt, hdev->asic_prop.max_queues); if (!cs) { atomic64_inc(&ctx->cs_counters.out_of_mem_drop_cnt); @@ -947,19 +946,6 @@ static int allocate_cs(struct hl_device *hdev, struct hl_ctx *ctx, goto free_cs; } - cs->jobs_in_queue_cnt = kcalloc(hdev->asic_prop.max_queues, - sizeof(*cs->jobs_in_queue_cnt), GFP_ATOMIC); - if (!cs->jobs_in_queue_cnt) - cs->jobs_in_queue_cnt = kcalloc(hdev->asic_prop.max_queues, - sizeof(*cs->jobs_in_queue_cnt), GFP_KERNEL); - - if (!cs->jobs_in_queue_cnt) { - atomic64_inc(&ctx->cs_counters.out_of_mem_drop_cnt); - atomic64_inc(&cntr->out_of_mem_drop_cnt); - rc = -ENOMEM; - goto free_cs_cmpl; - } - cs_cmpl->hdev = hdev; cs_cmpl->type = cs->type; spin_lock_init(&cs_cmpl->lock); @@ -1014,8 +1000,6 @@ static int allocate_cs(struct hl_device *hdev, struct hl_ctx *ctx, free_fence: spin_unlock(&ctx->cs_lock); - kfree(cs->jobs_in_queue_cnt); -free_cs_cmpl: kfree(cs_cmpl); free_cs: kfree(cs); diff --git a/drivers/accel/habanalabs/common/habanalabs.h b/drivers/accel/habanalabs/common/habanalabs.h index d94c2ba22a6a..dc13c8a6f242 100644 --- a/drivers/accel/habanalabs/common/habanalabs.h +++ b/drivers/accel/habanalabs/common/habanalabs.h @@ -2046,7 +2046,6 @@ struct hl_userptr { * @encaps_signals: true if this CS has encaps reserved signals. */ struct hl_cs { - u16 *jobs_in_queue_cnt; struct hl_ctx *ctx; struct list_head job_list; spinlock_t job_lock; @@ -2080,6 +2079,7 @@ struct hl_cs { u8 staged_cs; u8 skip_reset_on_timeout; u8 encaps_signals; + u16 jobs_in_queue_cnt[]; }; /** -- 2.54.0