From nobody Fri Dec 19 15:59:32 2025 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 E5CBB222598; Mon, 19 May 2025 21:37:01 +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=1747690622; cv=none; b=uBg2bVbZixgA+FP7fgPyxZAQT5MXiYq2preYMxotLVIHny5U+1G4BfeIq5ELUJgN+avxG7IHY3ReDPUAu7scqMJMXz7V5Jxs397uLn2vipmxGNxIMiBSxZNPZO74jQSUxMdJWTmkLJEp1h7s313T5qpkgy6o0bhwGhISF+1QzSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747690622; c=relaxed/simple; bh=gCT9zdwjoP3FNraWNBiZ8smNlAkNybhV2cLRnGajjKs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LtRvooNzkZeQ7bChHpIWXKT7KDgEBqF9RQBXZu6Kb6AzhzbQFwQCQVwC2xliugrKutAjCMXtfIoSDm5amr7WGY7OTup0L01Qpu+azHNAbsxnwpBZKzMBLLaxJWmnGKRUWcE6q0Mk9I4x+pzSZl8JuxpgTN7vzDxj51XgMvEzhg4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OrPiLiDm; 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="OrPiLiDm" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9314CC4CEE4; Mon, 19 May 2025 21:37:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747690621; bh=gCT9zdwjoP3FNraWNBiZ8smNlAkNybhV2cLRnGajjKs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OrPiLiDmpSu1WJ9nom0wJOy2FCbHU+YnPGTo/5Xn6QMvGmqMH8IfwtPy5yvmyNVEd R2sM5OyxvvFe/Tz5dljMdsncNBsacd4eve4DtjhvqOxObvbe6v1+w+2uBC2aNhYknY AqgX5PLViSDcmjXnohR9JM7/CWiFGkyEmtr8xZgGfvnd/P8JdZ5F6RGGMkEZfq5qrV ageQzsUsWVRZPMzrux9eMn6Wyl24eHibuYpvNOTzST9Y0U4EQar52V35DI8Y+CH/Uz boXmkSdE1ntQmUs+cVICZ98h/5zuHrkFPcQyedXSevJR8P65fVOiYgvpSWD1RnxTXk mkaTa3l2mKbnA== From: Bjorn Helgaas To: linux-pci@vger.kernel.org Cc: Jon Pan-Doh , Karolina Stolarek , Martin Petersen , Ben Fuller , Drew Walton , Anil Agrawal , Tony Luck , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Sathyanarayanan Kuppuswamy , Lukas Wunner , Jonathan Cameron , Sargun Dhillon , "Paul E . McKenney" , Mahesh J Salgaonkar , Oliver O'Halloran , Kai-Heng Feng , Keith Busch , Robert Richter , Terry Bowman , Shiju Jose , Dave Jiang , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Bjorn Helgaas Subject: [PATCH v6 07/16] PCI/AER: Initialize aer_err_info before using it Date: Mon, 19 May 2025 16:35:49 -0500 Message-ID: <20250519213603.1257897-8-helgaas@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250519213603.1257897-1-helgaas@kernel.org> References: <20250519213603.1257897-1-helgaas@kernel.org> 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: Bjorn Helgaas Previously the struct aer_err_info "e_info" was allocated on the stack without being initialized, so it contained junk except for the fields we explicitly set later. Initialize "e_info" at declaration with a designated initializer list, which initializes the other members to zero. Signed-off-by: Bjorn Helgaas Reviewed-by: Ilpo J=C3=A4rvinen Reviewed-by: Kuppuswamy Sathyanarayanan --- drivers/pci/pcie/aer.c | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index 95a4cab1d517..40f003eca1c5 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c @@ -1281,7 +1281,7 @@ static void aer_isr_one_error(struct aer_rpc *rpc, struct aer_err_source *e_src) { struct pci_dev *pdev =3D rpc->rpd; - struct aer_err_info e_info; + u32 status =3D e_src->status; =20 pci_rootport_aer_stats_incr(pdev, e_src); =20 @@ -1289,14 +1289,13 @@ static void aer_isr_one_error(struct aer_rpc *rpc, * There is a possibility that both correctable error and * uncorrectable error being logged. Report correctable error first. */ - if (e_src->status & PCI_ERR_ROOT_COR_RCV) { - e_info.id =3D ERR_COR_ID(e_src->id); - e_info.severity =3D AER_CORRECTABLE; - - if (e_src->status & PCI_ERR_ROOT_MULTI_COR_RCV) - e_info.multi_error_valid =3D 1; - else - e_info.multi_error_valid =3D 0; + if (status & PCI_ERR_ROOT_COR_RCV) { + int multi =3D status & PCI_ERR_ROOT_MULTI_COR_RCV; + struct aer_err_info e_info =3D { + .id =3D ERR_COR_ID(e_src->id), + .severity =3D AER_CORRECTABLE, + .multi_error_valid =3D multi ? 1 : 0, + }; =20 if (find_source_device(pdev, &e_info)) { aer_print_source(pdev, &e_info, ""); @@ -1304,18 +1303,14 @@ static void aer_isr_one_error(struct aer_rpc *rpc, } } =20 - if (e_src->status & PCI_ERR_ROOT_UNCOR_RCV) { - e_info.id =3D ERR_UNCOR_ID(e_src->id); - - if (e_src->status & PCI_ERR_ROOT_FATAL_RCV) - e_info.severity =3D AER_FATAL; - else - e_info.severity =3D AER_NONFATAL; - - if (e_src->status & PCI_ERR_ROOT_MULTI_UNCOR_RCV) - e_info.multi_error_valid =3D 1; - else - e_info.multi_error_valid =3D 0; + if (status & PCI_ERR_ROOT_UNCOR_RCV) { + int fatal =3D status & PCI_ERR_ROOT_FATAL_RCV; + int multi =3D status & PCI_ERR_ROOT_MULTI_UNCOR_RCV; + struct aer_err_info e_info =3D { + .id =3D ERR_UNCOR_ID(e_src->id), + .severity =3D fatal ? AER_FATAL : AER_NONFATAL, + .multi_error_valid =3D multi ? 1 : 0, + }; =20 if (find_source_device(pdev, &e_info)) { aer_print_source(pdev, &e_info, ""); --=20 2.43.0