From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (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 145462750E6 for ; Fri, 8 May 2026 05:18:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778217537; cv=none; b=uNnnb2dhiNLpSUn6dBYYnNSMw3FJg+Y8DIKgCY+svgynLv0oWDJgy902C2cqlKJGNrkyp/xInJr7CwUnD6ybQaerZU1udl9FkWxhIjqDQr7itLvWI6nSEGqbsBwSMW+PMcdCRBt/nneFWrODiZGkRarSogR+goba+o0T7Ffn2Do= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778217537; c=relaxed/simple; bh=wnuBfTCXjzfCdhWzj7AhvWHvJp0yriAxxo2qyT1rUB4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=c00wwUtFpqPiAdAgXl4Rw2ceFGzQOE8b96h9r2FZgK4KegD+7PI9yh7jJtn2GbTqcJ830gWB4jLsMlFuoHwKh3TfccvvTKOpVTgFUICi/zp7/A4pqQmmRnVfnEioI38LY5eSaVLCkOsUPsUN3UIqgFfneSGFlUv5TJ0WPKfHtM4= 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=C2RojinI; arc=none smtp.client-ip=209.85.210.181 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="C2RojinI" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-8353ca0f1f1so807778b3a.1 for ; Thu, 07 May 2026 22:18:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778217535; x=1778822335; 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=3nUCYtIDEspjLLgUB8l95D2jVq1kgmCgW5n8KURqcH0=; b=C2RojinI/FQ9Rze95HPoNwdNk9OwhhjI9wuY0SuV5p8qdEqrRwgGQ6/gHVV6V7nIrP pdeMDh6bFFeT7dW5yBH8/D6W/GZU1KhzfK7hb6sTl/1YHmwb9PXAwyhWBWUwRbAmd6lX 33b+vCkhuyEfcXIAq4GaJaJrVYzhJ+ZjHfwWErCnW0NBK6/RZI6iFzzqLGF8eZM9FCGm Y2HjbtXfEXiFu29vIaLCKIYMUw0YQLwbtzv9Txn+9fvvF98vSMmaZ3M8IoqkGk0bJQyH Mwl5Sdf3R0Kxl6OIWDCmA7M5xNdL7HZpAjFTSDrO8nPda0WFvSEUYd74NPyHgzc2OpTB Nubg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778217535; x=1778822335; 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=3nUCYtIDEspjLLgUB8l95D2jVq1kgmCgW5n8KURqcH0=; b=rrvztd8lF8mSwXPPoBX6eCGE8Q2ikR+HYJ7Lv6zELmxUk14g6YS0cSwTViDVzzORYr CHj079Kfu+zENH8Dil85G5RotvFuaBScfotjgNLn/8ChH0YEDAW1QJfvOlzdyQkmcro9 Jr28oXKBUys/h6sBR2LeUPAmI/e5BnyrbK4GocRwWRVZBfcXxywAc6CWR6Ap91bX7gc/ K9sU9MQOE0SikQdz/924BwNKlpXnGVBxVv9bZN2iSizsa55/r4e/Qr0dwDYWvShFrkaZ FCKLwRxkEVQ/lP5Jl70kC8Axw5p9GX5ZLWWvPGry6lxe2E675M2AREjXIH3hG5aN0TKW AKdA== X-Forwarded-Encrypted: i=1; AFNElJ9uGotJBOe4JnFDsfMyQmF8YE01Gsq9QykG75PzrwwGl9AslZEqbaMjejtnvlZes+kW7CVCkxRWs5lLGrg=@vger.kernel.org X-Gm-Message-State: AOJu0YyVZvqKHWQl+I/c1bctyZ9kbnYYNckGaIy977dsfj4F0NyuzDyy OPHlg0nOc3uAytZZJRiqivKu0awuN9KVv6ouaUoBigvYxy28OhXR4+I2 X-Gm-Gg: AeBDieuDrTUJfNbkj765uMxrh3lG/i8hHZijL8AvVPg+r9YxyYcXIcZfUkedo9x2+lu Ge7i34oFDvgT4fsnmS+tI8S6d2fyHFfeBrNPAc+ugoUF/VkSdwRKTz/CDGg1iIzso3y9iERQP8y gWKaqurpjFUdRs0rfiZwe4svZfzi/c0VG7ROEF/2jgVzw08T8xfHQTwEYqOGP25chMUTpJW+hyd kTxlUaflFH4YFkzncDNpLShZTFJ7ZinwzNw6uFSTGoobQ/2CXZXf41f8oiOxg7XlwibhzB2I8yl x0hKYOPYYsryjlEfP1nrYSKcfgN3n7u+k9g+BALIAyKGFN9vkZDmMDJ0Q+PrCpvMFYqrFP0udm8 iEn5kx6ieDd/3tZK0mML+4xjb+5ybdVVlaQZ59k0VS3SziFft3nwa9weNH1RGjxy94gEO7dx2On jOPNRzjP94EgSXzS40uUFcl1Rn0HO06XonPGAXOseljL530BY6vxLmahOQI/C3zA3ae8l6dlQxu i10SIzG4JefX7FDfGG9IKFsa/5Yq5CDgE0= X-Received: by 2002:a05:6a00:3e1c:b0:837:8342:abe5 with SMTP id d2e1a72fcca58-83bb7cb6c1bmr4808279b3a.18.1778217535314; Thu, 07 May 2026 22:18:55 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-839679c861esm13460826b3a.30.2026.05.07.22.18.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 22:18:54 -0700 (PDT) From: Rosen Penev To: virtualization@lists.linux.dev Cc: Dragos Tatulea , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] vdpa/mlx5: Use kvzalloc_flex() for MTT command memory Date: Thu, 7 May 2026 22:18:37 -0700 Message-ID: <20260508051837.1744409-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 The create mkey command memory embeds the MTT array as a flexible array member. Use kvzalloc_flex() to allocate it directly instead of open-coding the struct_size() calculation with kvcalloc(). The MTT allocation still needs to be aligned to MLX5_VDPA_MTT_ALIGN bytes. Since each MTT entry is __be64, align the entry count directly and avoid carrying a separate byte length variable. Assisted-by: Codex:GPT-5.5 Signed-off-by: Rosen Penev --- drivers/vdpa/mlx5/core/mr.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c index 42c2705077a6..6d02ccf9eb91 100644 --- a/drivers/vdpa/mlx5/core/mr.c +++ b/drivers/vdpa/mlx5/core/mr.c @@ -221,11 +221,10 @@ static int create_direct_keys(struct mlx5_vdpa_dev *mvdev, struct mlx5_vdpa_mr * list_for_each_entry(dmr, &mr->head, list) { struct mlx5_create_mkey_mem *cmd_mem; - int mttlen, mttcount; + int mttcount; - mttlen = roundup(MLX5_ST_SZ_BYTES(mtt) * dmr->nsg, MLX5_VDPA_MTT_ALIGN); - mttcount = mttlen / sizeof(cmd_mem->mtt[0]); - cmd_mem = kvcalloc(1, struct_size(cmd_mem, mtt, mttcount), GFP_KERNEL); + mttcount = ALIGN(dmr->nsg, MLX5_VDPA_MTT_ALIGN / sizeof(cmd_mem->mtt[0])); + cmd_mem = kvzalloc_flex(*cmd_mem, mtt, mttcount); if (!cmd_mem) { err = -ENOMEM; goto done; -- 2.54.0