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 E52382C0263; Wed, 25 Feb 2026 06:56:06 +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=1772002567; cv=none; b=NhmVADxU4duQUE/2C1nwOOkwzT72RveNIeEhEr0BmGAy+ULkV6YxilsJ9JxLhi6hE6VfkvFjbTr7feXKFcNygEPq1mtU8pjA55sktzd9q4FQFtTaeoXzs1jkRN/xA5k2TMCa9ltFQI4RNQTnokJaTCN0Z0IKeLGED1wpkgUA/P4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002567; c=relaxed/simple; bh=5aa3CU9PWB6KKQUWiSRMLV+Rp25e9/3938yzBu0MaYw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g8ezLYJTmq1sSrWaM/Gp6cxjlLUBYDof4dxiD0cmFNcdfX2CF/bBbBRQcUDOOgT41yJiAzgQJD3Iq2Mc0q3UkZHBX+g7b6iZZH0snmjmDHZO4FusjEQZdC+sjqsfqkVQcqy3X7Mg4JCH+8u0s2DIGy1NPPtN70Ri6zM+EqcI0AA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=2YLOvtEJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="2YLOvtEJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3BCAFC19422; Wed, 25 Feb 2026 06:56:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1772002566; bh=5aa3CU9PWB6KKQUWiSRMLV+Rp25e9/3938yzBu0MaYw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2YLOvtEJuppxagMxidtWSeroxRgRo+F+7jw98vNWBeRERkukB9FwoVwtg0yIfRLKI BTi0fzL7D2NmM5QJ9CKP3KMELvYEUMRJi6a+XsOvm9IYxhVhYiOQTywuYnxlD4RH3W GW8NxgJDL3QuwZpneARMR3GTFri26b+mS7LhaYqM= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Anshumali Gaur , Jacob Keller , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.18 300/641] octeontx2-af: Fix PF driver crash with kexec kernel booting Date: Tue, 24 Feb 2026 17:20:26 -0800 Message-ID: <20260225012356.013480709@linuxfoundation.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260225012348.915798704@linuxfoundation.org> References: <20260225012348.915798704@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Anshumali Gaur [ Upstream commit 2d2d574309e3ae84ee794869a5da8b4c38753a94 ] During a kexec reboot the hardware is not power-cycled, so AF state from the old kernel can persist into the new kernel. When AF and PF drivers are built as modules, the PF driver may probe before AF reinitializes the hardware. The PF driver treats the RVUM block revision as an indication that AF initialization is complete. If this value is left uncleared at shutdown, PF may incorrectly assume AF is ready and access stale hardware state, leading to a crash. Clear the RVUM block revision during AF shutdown to avoid PF mis-detecting AF readiness after kexec. Fixes: 54494aa5d1e6 ("octeontx2-af: Add Marvell OcteonTX2 RVU AF driver") Signed-off-by: Anshumali Gaur Reviewed-by: Jacob Keller Link: https://patch.msgid.link/20260203050701.2616685-1-agaur@marvell.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c index 747fbdf2a908f..8530df8b3fdaf 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c @@ -3632,11 +3632,22 @@ static void rvu_remove(struct pci_dev *pdev) devm_kfree(&pdev->dev, rvu); } +static void rvu_shutdown(struct pci_dev *pdev) +{ + struct rvu *rvu = pci_get_drvdata(pdev); + + if (!rvu) + return; + + rvu_clear_rvum_blk_revid(rvu); +} + static struct pci_driver rvu_driver = { .name = DRV_NAME, .id_table = rvu_id_table, .probe = rvu_probe, .remove = rvu_remove, + .shutdown = rvu_shutdown, }; static int __init rvu_init_module(void) -- 2.51.0