From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F4262D60B; Fri, 8 Mar 2024 20:20:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709929223; cv=none; b=W1R5/fexdQ0cJTju+1IArxCy2eNXtp+LD1cUeWOkaisBwojvk8ki1YwDch+Xsp0w7pkdSnEimQQ9iBuk+dr2W8HlUNyO02dST/+5s7NtXdLhAW65Ux9cwg6lrgDRxvdta+OST8h8c75dFEMoTykxKZFiVK56S9jD+S2u77l2W1E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709929223; c=relaxed/simple; bh=gYgxy4F5CnKyHPKbcHJaavUq/XxDolwE8qGCqjDXh+8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=WeCE+apYQ4hPwFER36veNPFS7q2fCbAKtOvdRnBRzpbd5QMbHMpXvJoN2c9uAxpYYvW+rdsdVuC0b0Sq92Hl3irjMeMfsq/w13DR8kshqUOxopDjXdgq4beUerNRVCxtlr/NbGeP6MJbd2XqXl9F+DZl2xC3txywWNz9T1qZF7w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bwXjVQtG; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bwXjVQtG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33931C433C7; Fri, 8 Mar 2024 20:20:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1709929223; bh=gYgxy4F5CnKyHPKbcHJaavUq/XxDolwE8qGCqjDXh+8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=bwXjVQtGGIi4z05dXM7t+mW349nAbNwduE6oKVrFaZqaqvjJAZm1gY9cyKAaaGzVz jeIwty/w36mFs0a1IIzAQA0eel7mIwNKMwXnn3QRuKZkesAf96SFGm2HRHvyWsDzkR Ic29K329b7pgj1Ddkv8YZlovz2x7xk9WTC7TuDGbyRR8eYWnkB7FsGpkAIgQQnlntd KR14Yc8aUhx3c87tFBIAuvlqn7x+QBYUvhD9n6gwg2+m1QsW0zm6rybHTFwnjK6Rt1 YJtX06wEpTmXnvJUMUeHrD1N9CvJAHtpr9tlqrVU8cJkkGHb34BD4L2HIBH+pmpn0R UYec58b4sG9Wg== Date: Fri, 8 Mar 2024 20:20:18 +0000 From: Simon Horman To: Kees Cook Cc: Przemek Kitszel , Jesse Brandeburg , Tony Nguyen , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Gustavo A. R. Silva" , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-hardening@vger.kernel.org, Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] overflow: Change DEFINE_FLEX to take __counted_by member Message-ID: <20240308202018.GC603911@kernel.org> References: <20240306235128.it.933-kees@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240306235128.it.933-kees@kernel.org> On Wed, Mar 06, 2024 at 03:51:36PM -0800, Kees Cook wrote: > The norm should be flexible array structures with __counted_by > annotations, so DEFINE_FLEX() is updated to expect that. Rename > the non-annotated version to DEFINE_RAW_FLEX(), and update the > few existing users. > > Signed-off-by: Kees Cook Hi Kees, I'm unclear what this is based on, as it doesn't appear to apply cleanly to net-next or the dev-queue branch of the iwl-next tree. But I manually applied it to the latter and ran some checks. ... > diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c > index f84bab80ca42..d4baae8c3b72 100644 > --- a/drivers/net/ethernet/intel/ice/ice_switch.c > +++ b/drivers/net/ethernet/intel/ice/ice_switch.c Given what is currently in the dev-queue branch of the iwl-next tree, the following hunk also seems to be required for ice_switch.c. @@ -5378,7 +5378,7 @@ ice_get_compat_fv_bitmap(struct ice_hw *hw, struct ice_adv_rule_info *rinfo, */ static int ice_subscribe_recipe(struct ice_hw *hw, u16 rid) { - DEFINE_FLEX(struct ice_aqc_alloc_free_res_elem, sw_buf, elem, 1); + DEFINE_RAW_FLEX(struct ice_aqc_alloc_free_res_elem, sw_buf, elem, 1); u16 buf_len = __struct_size(sw_buf); u16 res_type; int status; ... > diff --git a/include/linux/overflow.h b/include/linux/overflow.h > index aa691f2119b0..677b03c4c84f 100644 > --- a/include/linux/overflow.h > +++ b/include/linux/overflow.h > @@ -396,9 +396,9 @@ static inline size_t __must_check size_sub(size_t minuend, size_t subtrahend) > * @name: Name for a variable to define. > * @member: Name of the array member. > * @count: Number of elements in the array; must be compile-time const. > - * @initializer: initializer expression (could be empty for no init). > + * @initializer...: initializer expression (could be empty for no init). Curiously kernel-doc --none seems happier without the line above changed. > */ > -#define _DEFINE_FLEX(type, name, member, count, initializer) \ > +#define _DEFINE_FLEX(type, name, member, count, initializer...) \ > _Static_assert(__builtin_constant_p(count), \ > "onstack flex array members require compile-time const count"); \ > union { \ ...