From nobody Mon Apr 6 14:10:04 2026 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.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 D808A36CE02 for ; Thu, 19 Mar 2026 09:11:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773911484; cv=none; b=HcpW4Y4lBJmS1sSp6GaK/hfskOna85MRSbH6QEIY5l6sCBDQqKCoYEJXynmPtXo/LsP/l4cvK6QvLrcgcCv4k2vaK7f1QZaAi6WWjTuAKizVnCIG7SZV+prWwdYW5lbcQ4AWIv6PX+AEx0gDLvsKua8/xmd5ei3ThNJTMKLKcIk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773911484; c=relaxed/simple; bh=bIjvyx7WRM5OrhlB4sKJe7A88jbCMzyVU7Rb39RJsKU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=SgxZf2jOjtoX30WjBGpgvWQcDUOulSr245Q6uWkpiEboK6xiB3BKGPFuwPUdHlDD7TnAx4REHU0uKvpjf68/YMqizYVs1jO0wU5Zga+4Bmxv5avNPQ5gGjHQz6KIE7CoQ2HmJh6wiMGq/L4pbSlovtYqEjDdj8as62xSObB0IhY= 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=QdT6p+oM; arc=none smtp.client-ip=209.85.210.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="QdT6p+oM" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-82985f42664so536892b3a.0 for ; Thu, 19 Mar 2026 02:11:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773911483; x=1774516283; 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=pkatcgHQKlyx5yNngB4ghSz9qHnLgeMZNCch+Ad8GQ8=; b=QdT6p+oMsUdDWWChb9BOZxWReezYIUUx6Qbhilz84qOguJulguY174Q9SkIWtlBimf XV4vVGCaU72b1ehvpOqjQWerXB6y5HpPysWbBztQfzfgEJLwF3RmWUh4GAsrZz8qtfOZ NLhAyDPy1WUmy3qUdHv99GWSb0ecZDtvM2JC8dQQR5lkDLVpL1JDpdMEACwbKx1il/qW sszJ/glUb0UMMouDYWy88duweD3SHNhaSIV5dcZVoXALzqTmVcGJ/AL8dFvyd6FQ/yY7 jy4I8CQdhdUrCJiryQ9/DlGwx70Lxiy9z0I0rtiYlAr8dTkG0wzjKtqLMudx8wmnvcC6 N4KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773911483; x=1774516283; 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=pkatcgHQKlyx5yNngB4ghSz9qHnLgeMZNCch+Ad8GQ8=; b=saX5Soxy/Te47kZ8E5UVvYdJY2VmqV6gjFkSsfNVCUdpEISI7cv5Flm4TR2p4IZeeY Vu6jt+enK2SqYP338TbijgihDmbzNljsK4x1Lrccylg2TN/3LaMXcpj3ovIfJ4HvUnnn qDFiN+BUgGLPCa6UcWsD1JGxnuvBbCsb0jU+MuEPXU/h9W7TifG5t9n68C/zbIkXReAl XC/VEOjjTQY6wEb4LoTKpnRoFw9/vV5j3c67WDepNQs8/ab2m/lS2deIF3rIOrwMSwvy OVaNNw+137cJwwKj+GELSAJnaZY23sK53mrMeKQzauvwps5xZdBCARzVRcNfQtFmvMsN +OcA== X-Forwarded-Encrypted: i=1; AJvYcCUhCBpZ1dju7xiT5If6BPC5QRyHXahu4N0d9NhdWc1Fpn+mcexbcwrWD201YpmkUtpjCXCjjhUpcLGZQ3M=@vger.kernel.org X-Gm-Message-State: AOJu0YwR2U2BuPrKCyZ3tA4FP6AlPYRk/TeKExUnYKPgXdVtLalEsMtT TDuItXKe1zNjh28UmHhcK8QS8ADEEF4X/2lBynpvi2FB16YFo3pv8KH1 X-Gm-Gg: ATEYQzzfyCHvvW6mKEXobgnZs990i9HQqGSNOGEeSed5RcKm30fV1dLGRPO/BpTtmaT TykWy5FwzqyUkb9MHxcSSDpXIGCdfzxqWoaNahQW5PbXhTtZQso4SZX6VIbZ6/ie49hoxhwlaMb JwCApFqEYEj0LzyQzoFUKXFnGzxUc548FWArCYy9Iy/83A7+Up9dGd9LzgXsa7AQOCrvNaEofBX oulCxdlfk9sZHobq7bC+LzgvtiTQgAXDzZOfRFRc0RvhxDU5fB/KEjvt845ImluGbXnsiNvRQ5W KpOEm5geCaElTQmtrdHVoPB8tZuXz4s8fIEkzqQBZpl1HIs32UJYSXZH/po6j7TMvcrxAD35zey lyLPIGa0E01ZaXloqPB/0fkdrvi9LukcWm7NLH8mi3G5TtSS+hIusaQxVyBg3LsdLo1gFYHi8GS xzBY0XNycsDVx1NZ0Q+1xaaN6nig== X-Received: by 2002:a05:6a00:12d5:b0:82a:1044:3582 with SMTP id d2e1a72fcca58-82a6ae70a27mr6691313b3a.28.1773911483131; Thu, 19 Mar 2026 02:11:23 -0700 (PDT) Received: from ubuntu.. ([152.58.152.33]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82a6bbb522asm5324925b3a.37.2026.03.19.02.11.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Mar 2026 02:11:22 -0700 (PDT) From: Anas Iqbal To: iyappan@os.amperecomputing.com Cc: keyur@os.amperecomputing.com, quan@os.amperecomputing.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com, andrew+netdev@lunn.ch, Anas Iqbal Subject: [PATCH] net: xgene: fix signedness bug in xgene_enet_get_fpsel() Date: Thu, 19 Mar 2026 09:11:06 +0000 Message-ID: <20260319091106.1662-1-mohd.abd.6602@gmail.com> X-Mailer: git-send-email 2.43.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" xgene_enet_get_fpsel() returns a u8 but can compute a negative value when xgene_enet_ring_bufnum(id) is less than RING_BUFNUM_BUFPOOL. This leads to an implicit conversion of a negative value to u8, resulting in a large unintended value. This can cause incorrect behavior when the result is used in bit operations such as BIT(), potentially leading to undefined behavior. Fix this by validating the value before subtraction to avoid underflow. Fixes: 2c839337520b ("drivers: net: xgene: Add helper function") Signed-off-by: Anas Iqbal --- drivers/net/ethernet/apm/xgene/xgene_enet_hw.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_hw.h b/drivers/net/e= thernet/apm/xgene/xgene_enet_hw.h index 2f534f9d4416..fe563c396773 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_hw.h +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_hw.h @@ -405,10 +405,16 @@ static inline bool xgene_enet_is_bufpool(u16 id) =20 static inline u8 xgene_enet_get_fpsel(u16 id) { - if (xgene_enet_is_bufpool(id)) - return xgene_enet_ring_bufnum(id) - RING_BUFNUM_BUFPOOL; + u16 val; =20 - return 0; + if (!xgene_enet_is_bufpool(id)) + return 0; + + val =3D xgene_enet_ring_bufnum(id); + if (val < RING_BUFNUM_BUFPOOL) + return 0; + + return val - RING_BUFNUM_BUFPOOL; } =20 static inline u16 xgene_enet_get_numslots(u16 id, u32 size) --=20 2.43.0