From nobody Tue Jun 16 12:41:14 2026 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) (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 5B5A825F994 for ; Sun, 19 Apr 2026 22:24:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776637486; cv=none; b=NelUKUeqfs1ingkzDb+jyaIXzO21X2Eg5aLrq+pkmJy2XcEB8+qvWwLYQOaVoAJtCyXln3//eHucgFHmj4uc1m4nVhy0Yn+bePiCdlEOP5ioDNYdFHWEiIMYpkNY9NV0p30S/myldbNsSXuTcS2/nDWlDhi0Bww/dYjok6eS8OA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776637486; c=relaxed/simple; bh=HokyC2nDUbRTJYDs3PhWlBf/ZTkZR5B5P0FWV4QeBLg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=A6eI7l0rLi8nEkddNOQOEadytfeidZuX2nM8udO/ho4pVAXRI3nSfPHA5GJLyBK3ByXw2nSYMYVPrLfg0Bn4dKBQ4azSPnOgVJT9C/7Jw0xlc0IUqraaGLgI3aVVLoFr4zFnw7Op67bHEouK0Jq2ZZGdA925SbrmQspgAEMAsz8= 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=ekiMwlWS; arc=none smtp.client-ip=209.85.167.46 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="ekiMwlWS" Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-5a10d130b37so2344137e87.0 for ; Sun, 19 Apr 2026 15:24:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776637482; x=1777242282; 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=HpNJcvd4vFonahhQxxRKSX+/5Qv/TqiQwoW9F6azc/c=; b=ekiMwlWSHWkdNYZO2uvYuT7Ef7GXktYnaT4gnlpbBPKXQPBbz2CMLsq4QTBO6JM7MM 9PR+jjofyRZqmScMVuTPy9ViueG/4LyG91jd6pjRmrNNZYQy05BLNXKe9+lfRMTe7+CK W2occPBGCeoumuRDhxV2JOo8+LSY58rWuK8T6IrvnSJyFwlp74C/yNDPzOsyv9kGFc5R lUmIOt4iAd3E4UZfu2rM2sPUXUUN+ENYjl0la8+WdafHlvqNVaSOuLEDMpawe4Z7+3+E EYPV4MqFVoS0XWwlPOaHiSyJXi6MlZJCrMKSDtUlrILnZ4kEL0EeazoDwl0sE43mnJ8B dXCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776637482; x=1777242282; 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=HpNJcvd4vFonahhQxxRKSX+/5Qv/TqiQwoW9F6azc/c=; b=C02xTrOtUrFU1sCx2/PtDoHd8bIrZXAyRtaoUXBvp/zoxJck7Z0SBpmw/BVxGXi0C3 DfWOibL8c3dGwXaKP5g2DiP1X+JaxITG425uLgUq4MJ6KE32aB2i1FsCa7jN2Fbhyrgm IOwAAz5TaUm+CtSQZ9CL56MoOsBwyuvjp8Bq11/MiOK3wJPQwcMX2wKwX9d2jgC0KdWt WKgxG8PG/eLHXmeNwvmSeYGa6ZecZHdQJtLw7zMTQdnCSYGZwZ44imGQnOSKGVYHbY3E cfJOKZHiocUIxrp4IoYRwsQ5sVKiQc5VDwl/Mg4GMG7Jy+PN/pKglGTV70SHG/DP8q2b RqtQ== X-Forwarded-Encrypted: i=1; AFNElJ8tDD5mkG1hO538B4xbRceHzU3lXGEyOsn1eRDlxOYs7RW/J5nB3KV/Gt9nDkSfcNSszBZIWFsXJByF1JM=@vger.kernel.org X-Gm-Message-State: AOJu0YzsTjYCrWyoRtfBfF34na8SEkd3HmLc/UuidDL+7h0zo08suT79 A/8bd5ncCqmSHgsN5K2GyrmtrOfaxng+9A8fhQ76q4cXUFXiWscelCWe X-Gm-Gg: AeBDies33++oiF3ayltIypzH9O1LwFW/hisUGBiEqofuRPKHXtjSWDy0WceFqwcvQjA 1LwlJOHEaK/SPkFY74b/ddqmsQPTPBg61Hs/5rgVrYHf5PQQZf+Q8iXpBgaAtTUdr53CUR2W634 445y5AgsQtQxC4OtHW8MpPQk69tppUIInFI3/vVyHFYopHqFJPdwgXTBFqPwghi2WYw+7Gc7KwE BTz7Yf1dLa2fSs03DH2IjZYln5GMMc7PlRsGo6bnYo+SXaup8S9YVT0eoWv52TFftQq2Ag/xopa ZB0nkgfeAy36DWicu2jQ0B/+yVNK15fCgdpSR02N1siqQo1704fCKa3fPpdPToACbW+ETGCK1L6 j4aGE/lpsC8E55VGiL+vWRYdb8SzD/ukYlBWtX8SF0RrnH1SEh5Z7LKIfYt2DOAeV0ygp/x+L5O pjOm8YlW4SEbF+h56FccnNLZm/mq8gF3VjtN6kS+T0j9zFv+46a57NXom7j/b4SA== X-Received: by 2002:a05:6512:3502:b0:5a1:3d08:cfab with SMTP id 2adb3069b0e04-5a4172a9d81mr3298109e87.23.1776637481976; Sun, 19 Apr 2026 15:24:41 -0700 (PDT) Received: from localhost.localdomain ([85.143.146.122]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185ad0fdsm2554297e87.13.2026.04.19.15.24.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 15:24:41 -0700 (PDT) From: Rand Deeb To: stable@vger.kernel.org Cc: axboe@kernel.dk, linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, deeb.rand@confident.ru, lvc-project@linuxtesting.org, khoroshilov@ispras.ru, Sergey Shtylyov , Damien Le Moal , Rand Deeb Subject: [PATCH 5.10.y] ata: pata_sil680: fix result type of sil680_sel{dev|reg}() Date: Mon, 20 Apr 2026 01:23:55 +0300 Message-ID: <20260419222355.5842-1-rand.sec96@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" From: Sergey Shtylyov [ Upstream commit dafbbf5c57dd6ae01d20b894bc2200e9d9834c4e ] sil680_sel{dev|reg}() return a PCI config space address but needlessly use the *unsigned long* type for that, whereas the PCI config space accessors take *int* for the address parameter. Switch these functions to returning *int*, updating the local variables at their call sites. Get rid of the 'base' local variables in these functions, while at it... Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool. Signed-off-by: Sergey Shtylyov Signed-off-by: Damien Le Moal Signed-off-by: Rand Deeb --- drivers/ata/pata_sil680.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c index 7ab9aea3b..fe60f884b 100644 --- a/drivers/ata/pata_sil680.c +++ b/drivers/ata/pata_sil680.c @@ -47,11 +47,9 @@ * criticial. */ =20 -static unsigned long sil680_selreg(struct ata_port *ap, int r) +static int sil680_selreg(struct ata_port *ap, int r) { - unsigned long base =3D 0xA0 + r; - base +=3D (ap->port_no << 4); - return base; + return 0xA0 + (ap->port_no << 4) + r; } =20 /** @@ -64,12 +62,9 @@ static unsigned long sil680_selreg(struct ata_port *ap, = int r) * the unit shift. */ =20 -static unsigned long sil680_seldev(struct ata_port *ap, struct ata_device = *adev, int r) +static int sil680_seldev(struct ata_port *ap, struct ata_device *adev, int= r) { - unsigned long base =3D 0xA0 + r; - base +=3D (ap->port_no << 4); - base |=3D adev->devno ? 2 : 0; - return base; + return 0xA0 + (ap->port_no << 4) + r + (adev->devno << 1); } =20 =20 @@ -84,8 +79,9 @@ static unsigned long sil680_seldev(struct ata_port *ap, s= truct ata_device *adev, static int sil680_cable_detect(struct ata_port *ap) { struct pci_dev *pdev =3D to_pci_dev(ap->host->dev); - unsigned long addr =3D sil680_selreg(ap, 0); + int addr =3D sil680_selreg(ap, 0); u8 ata66; + pci_read_config_byte(pdev, addr, &ata66); if (ata66 & 1) return ATA_CBL_PATA80; @@ -112,9 +108,9 @@ static void sil680_set_piomode(struct ata_port *ap, str= uct ata_device *adev) 0x328A, 0x2283, 0x1281, 0x10C3, 0x10C1 }; =20 - unsigned long tfaddr =3D sil680_selreg(ap, 0x02); - unsigned long addr =3D sil680_seldev(ap, adev, 0x04); - unsigned long addr_mask =3D 0x80 + 4 * ap->port_no; + int tfaddr =3D sil680_selreg(ap, 0x02); + int addr =3D sil680_seldev(ap, adev, 0x04); + int addr_mask =3D 0x80 + 4 * ap->port_no; struct pci_dev *pdev =3D to_pci_dev(ap->host->dev); int pio =3D adev->pio_mode - XFER_PIO_0; int lowest_pio =3D pio; @@ -164,9 +160,9 @@ static void sil680_set_dmamode(struct ata_port *ap, str= uct ata_device *adev) static const u16 dma_table[3] =3D { 0x2208, 0x10C2, 0x10C1 }; =20 struct pci_dev *pdev =3D to_pci_dev(ap->host->dev); - unsigned long ma =3D sil680_seldev(ap, adev, 0x08); - unsigned long ua =3D sil680_seldev(ap, adev, 0x0C); - unsigned long addr_mask =3D 0x80 + 4 * ap->port_no; + int ma =3D sil680_seldev(ap, adev, 0x08); + int ua =3D sil680_seldev(ap, adev, 0x0C); + int addr_mask =3D 0x80 + 4 * ap->port_no; int port_shift =3D adev->devno * 4; u8 scsc, mode; u16 multi, ultra; @@ -219,7 +215,7 @@ static void sil680_sff_exec_command(struct ata_port *ap, static bool sil680_sff_irq_check(struct ata_port *ap) { struct pci_dev *pdev =3D to_pci_dev(ap->host->dev); - unsigned long addr =3D sil680_selreg(ap, 1); + int addr =3D sil680_selreg(ap, 1); u8 val; =20 pci_read_config_byte(pdev, addr, &val); --=20 2.43.0