From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) (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 0DE6C2DF12F for ; Mon, 8 Jun 2026 05:12:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780895563; cv=none; b=OnEUzkEuzZtNpmWe7b/KLIJGut749TgmG0l4rq9pr9UWmHJ54MB7bCNRvTG9sId/lEcvZFWlP3NqXQEga52V22rZp43CP/A0VEY4yP0KC1jvu7aIyuHLzQm0aPqVL5gtbgDz0pWkrza/dkVww3EzbfTuK/2rKIXFZRaR6JwNoAk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780895563; c=relaxed/simple; bh=mXESvG5bra+MK91pHzsezZSYvLAKgd/Kbd+RLxZPx4Y=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=QPb274Qh61xQGFviFXVfNl0z775jlv1n4mpIK9fugwZPXMUkkRD2pPvkBlHunSC8aNB7WhivK5qDEAIHMq1+iQ+wvlxzQ4qotltM4zAM6NdGNsnTmGHQJRQDlCxZ77Md7c7i7IJp2DDVWxgYlipm/RGo9xpI3PFZ+B+LdgbkVLk= 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=chGeonKX; arc=none smtp.client-ip=209.85.128.180 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="chGeonKX" Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-7ea16f090b4so49080327b3.2 for ; Sun, 07 Jun 2026 22:12:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780895561; x=1781500361; 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=6ZqvEFIx8o+tuUq0/oKqceOPSer9LPJeoZ78Qqb2WNQ=; b=chGeonKX8jIbL+7Dq9SQrZFSVayjl0zgjlX2kxcsVXRAvWtAAh64WF6/TAxgYeTYJw O5AuZa2cOzFaT9/SFwoCzXKeYxz5MhAxW3TSrpxl5mwKlBDC6EDZT+s0n9QFm2K/kq6r cRlxnAEJWV85vTsD01F1XTkKXxilLO2nVN3P1pTPv2Ewj7wkqLdeG/dMpjk3r+YAwzTJ oDNb7jIfuHqVxsyeeDQI5JasKeM2TzHUckCwXVZ+b+fZsBaIkNZjDDfNr633nJHGDJyk VHM7lp+7of8aOWT7l2aEX0lkIjjfeeDt2fJgNPWB4qY8zpx2oOOx/U3YBNHhxOnG1t1w dz2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780895561; x=1781500361; 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=6ZqvEFIx8o+tuUq0/oKqceOPSer9LPJeoZ78Qqb2WNQ=; b=gq6LP//VMYy9vPu+qCZUgJ607bXWfXIQWV67UPunMxvCfcjPSYJ4eD1Qgs/wiVD6YW SoTJz+qUcqKG+dyE9vncOdZoMv67KGhIuWL/XazGPztRbt2zfuXIz9lkeAAGEEzQGfW4 kYJcpxte9yyh06YxL9eZH3DYyD/z6XGgrputSLNF43nTs+r9m3QTW4Hnha1XTBx8XcIt P3rklde/HDxOP6z17DD8DDwOSgonwM0Nb1ie0ne/OqjwE/cv1erzOpt4nLvw7CKsSrAy lQWL3fLnYqJXJSZLZLMX9dXAzz9GJprNSB0v7ZB6Hjk2SSOafxSKlNvEDvLSUzoomtpo rY2A== X-Forwarded-Encrypted: i=1; AFNElJ8c/0CIMDVe64c9UjHA6Scd/Ubp6BgxjnaAI8ReopHhHuFfj+DMKf8uUyA5BGl9/B2zmMrQ+uyWlfiWiJQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/waIMmBwnLsYeKAyYXFfr/tygbEIOVjnkWO1jxE+iuSttvM4z ZrbqOO4M0mvV3V//Jqxsrf+OJHDfIDBgENX3ABYMvavdE++M0ZHizdrLtkZXCct5 X-Gm-Gg: Acq92OFm/89oyVO2mGGF4F4JRoMEYF4f/aFjhV5nUOIup974towjKM80NDjdXS4hkT4 2o6ZCHnOxwnmeNc6VwrcLx7R5HnzuYRuohvJ372dRfrgFetTtu9yCV800DrIxF3H3T6DMoi+War Tnh/8Bj7B5cAuh2vb2ZZalveVFrZjz5yx5NqWvj5smchoKeWVNZnLjYaTipFK5nS/RmpK8eLX51 eH4mXAnhIjZ4BE/JJ1RfriIZbaDa1NfEWMpRYA1CVtqcvryyRG9A0bbQvWODmoC8yxutW3HO1La fcSGENEFVKgX++97yTg/RvB6HoCG394aW5PtBYqDaqEyoxqg/ic7uhZUYdKzg24K9D4wiZnnJoX M0gDp0Dg9k/0rBuW7tZwn2wNCJvXS/m7e3z7ITkmvL6Kfl+E7uP5eVF8fHLft36UY53AJLb39Dy LIDirIwn9LKrgz/DUZCLx+UcTIi+5qJTK9U+ydO1LgEQRTX9gf98h9q3tM+8pOu4DCWnNJU80kN /iXuG4vPkG+cVclJcXik6VG7/SmSs7UJHH45xUhWpEhbA== X-Received: by 2002:a05:690c:3349:b0:7dc:e580:7f8 with SMTP id 00721157ae682-7ed0d1da1d2mr124891767b3.26.1780895561209; Sun, 07 Jun 2026 22:12:41 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7ea2167b40bsm78518697b3.17.2026.06.07.22.12.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 07 Jun 2026 22:12:40 -0700 (PDT) From: Rosen Penev To: linux-nvme@lists.infradead.org Cc: Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] nvme: target: allocate ana_state with port Date: Sun, 7 Jun 2026 22:12:23 -0700 Message-ID: <20260608051223.6884-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 Use a flexible array member to remove one allocation. Simplifies code slightly. Signed-off-by: Rosen Penev --- drivers/nvme/target/configfs.c | 9 +-------- drivers/nvme/target/nvmet.h | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/nvme/target/configfs.c b/drivers/nvme/target/configfs.c index b88f897f06e2..2b69ffcfc8df 100644 --- a/drivers/nvme/target/configfs.c +++ b/drivers/nvme/target/configfs.c @@ -2007,7 +2007,6 @@ static void nvmet_port_release(struct config_item *item) list_del(&port->global_entry); key_put(port->keyring); - kfree(port->ana_state); kfree(port); } @@ -2047,16 +2046,10 @@ static struct config_group *nvmet_ports_make(struct config_group *group, if (kstrtou16(name, 0, &portid)) return ERR_PTR(-EINVAL); - port = kzalloc_obj(*port); + port = kzalloc_flex(*port, ana_state, NVMET_MAX_ANAGRPS + 1); if (!port) return ERR_PTR(-ENOMEM); - port->ana_state = kzalloc_objs(*port->ana_state, NVMET_MAX_ANAGRPS + 1); - if (!port->ana_state) { - kfree(port); - return ERR_PTR(-ENOMEM); - } - if (IS_ENABLED(CONFIG_NVME_TARGET_TCP_TLS) && nvme_keyring_id()) { port->keyring = key_lookup(nvme_keyring_id()); if (IS_ERR(port->keyring)) { diff --git a/drivers/nvme/target/nvmet.h b/drivers/nvme/target/nvmet.h index 3305a88684ec..aaba745e3c21 100644 --- a/drivers/nvme/target/nvmet.h +++ b/drivers/nvme/target/nvmet.h @@ -208,7 +208,6 @@ struct nvmet_port { struct list_head global_entry; struct config_group ana_groups_group; struct nvmet_ana_group ana_default_group; - enum nvme_ana_state *ana_state; struct key *keyring; void *priv; bool enabled; @@ -217,6 +216,7 @@ struct nvmet_port { int mdts; const struct nvmet_fabrics_ops *tr_ops; bool pi_enable; + enum nvme_ana_state ana_state[]; }; static inline struct nvmet_port *to_nvmet_port(struct config_item *item) -- 2.54.0