From nobody Mon Oct 17 16:52:55 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4MrjjN0D0Xz4Zvg3; Mon, 17 Oct 2022 16:52:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4MrjjM6lzqz3Xd9; Mon, 17 Oct 2022 16:52:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1666025575; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L8N7wfXJTw1dqffwMZG2D+v6MkI0lZhYLdtXxZkVBoE=; b=uhOcpKgZ+R0LfH4O9HFHgE8MeW2jroaT2brLVB8PhKwduI3UyD6m0Hxzh+lBcoH9B4jYAf yJbqp4KCo8B13s0k6Hje65C+D1XxeJv/ZMHD3ttaEjFsN9qB5RR1AC78KIVRTJLxwZo4wD m+kpSCBLN2Y5u7TAqTsOX/vcPzfqf2gdX3KINcINHjawFUakz7XAb4lWeGQuD5ciMcwQeA jSu/ili8iN0nI7Mx15+Ds6T+iNRZhrNIMBjZkHzDcQpKZ7NgcXqlwREV4UjVYfoubTbPLY Pigkfjkq9NyIKTItMpoCKJdasxFZ3JuMo6DhxznUecLausU8ZknBxxyZ9+MrWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4MrjjM5pT8zthN; Mon, 17 Oct 2022 16:52:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 29HGqthM007612; Mon, 17 Oct 2022 16:52:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 29HGqtSf007611; Mon, 17 Oct 2022 16:52:55 GMT (envelope-from git) Date: Mon, 17 Oct 2022 16:52:55 GMT Message-Id: <202210171652.29HGqtSf007611@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Kenneth D. Merry" Subject: git: 11778fca4a83 - main - Fix mpr(4) panic during a firmware update. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ken X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 11778fca4a83f5e3b597c75785aa5c0ee0dc518e Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1666025575; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L8N7wfXJTw1dqffwMZG2D+v6MkI0lZhYLdtXxZkVBoE=; b=k3ELSm3KnSSV/ca/N21VolWT6WTnx13q7Ogge6jsxlxhM4WcNoVvCJY09JLZJLPb0HB/uV T/5CWYRPCVRE7WJ7D3If0xkHABsFCU0sCCXkKaClo3Y7wqHJTBpwjAzzimPdaBwt6Hysic IDqnaC7Tx7Y6LsG+MJNaEokFfDIOi4UJrCE3gxEAxBXRicR7GyBEtji/unUAHp7E2ZTU/K 9AJaLpanYgRa0/HCm5s7RpjPttbOXfe2362dpFA+6j9mZlh1K+QaTwUu6Y3SSTglwx30RN EGSaeQAbY9/2B8cyS6I6MoTjhf1sI8EFhkNntwO2s+Bk+nqKkVZ8Efk3FrWG2A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1666025575; a=rsa-sha256; cv=none; b=YcaGj8O++ZTjWTuRR56t1bP3wSZAVRUwygd2ZVlfKhMrCRPftkKhZCf3RXUusqY95I4bxA 8rzQzFC8vI//QMFuNOt4TuQnJ1C0BjQy5DxTU5N8Dm5dmxlP6RL6UVUesrZC9FE3rusrkq CXGVXvE2XAc0rwirAS2pwGnJGahF3VTPdzT6IK2OrTwX+V72GoQ5JekbJBbzQixtTKWZye AvlM1GVSTyeWOAXSqAteaPCoZYD2mmenbKCpCM9F+dj/pf7/I8tzU6Dnwc/m4n0LmtaSx/ EbPDc88VxFKZMfR1cFZ4Nrnv3q02cCIGa7udjWNLKFtLQcaWlRhkB3OM/iHtlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by ken: URL: https://cgit.FreeBSD.org/src/commit/?id=11778fca4a83f5e3b597c75785aa5c0ee0dc518e commit 11778fca4a83f5e3b597c75785aa5c0ee0dc518e Author: Kenneth D. Merry AuthorDate: 2022-10-17 16:48:34 +0000 Commit: Kenneth D. Merry CommitDate: 2022-10-17 16:48:34 +0000 Fix mpr(4) panic during a firmware update. Issue Description: The RequestCredits field of IOCFacts got changed between the Phase23 firmware to Phase24 firmware. So as part of firmware update operation, driver has to free the resources & pools which are created with the Phase23 Firmware's IOCFacts data (i.e. during driver load time) and has to reallocate the resources and pools using Phase24's IOCFacts data. Here driver has freed the interrupts but missed to reallocate the interrupts and hence config page read operation is getting timed out and controller is going for recursive reinit (controller reset) operations and leading to kernel panic. Fix: Reallocate the interrupts if the interrupts are disabled as part of firmware update/downgrade operation. Submitted by: Sreekanth Ready Tested by: ken MFC after: 3 days --- sys/dev/mpr/mpr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/mpr/mpr.c b/sys/dev/mpr/mpr.c index b4d3f3269dba..8450ef9900b0 100644 --- a/sys/dev/mpr/mpr.c +++ b/sys/dev/mpr/mpr.c @@ -740,7 +740,7 @@ mpr_iocfacts_allocate(struct mpr_softc *sc, uint8_t attaching) * XXX If the number of MSI-X vectors changes during re-init, this * won't see it and adjust. */ - if (attaching && (error = mpr_pci_setup_interrupts(sc)) != 0) { + if ((attaching || reallocating) && (error = mpr_pci_setup_interrupts(sc)) != 0) { mpr_dprint(sc, MPR_INIT|MPR_ERROR, "Failed to setup interrupts\n"); mpr_free(sc);