From patchwork Thu Jul 6 18:29:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Zhang X-Patchwork-Id: 1804457 X-Patchwork-Delegate: miquel.raynal@bootlin.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=2q9xSuKv; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=TVJ3nLzT; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QxlSt4vWVz242W for ; Fri, 7 Jul 2023 04:30:22 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date :Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=aEJhR6EdCZTHPya/+z1IJcMOVnHAA93aq4OovPMkwEA=; b=2q9xSuKvTQOB6ZVk0/dPtPgaEO FoDKT1Sj8TzjUGf2IUhNHVUY1Ljq6HjgQD9qKT2VB/Ou10oerR3gxnW+/IoFFNkzIHP3wnA1iWSS2 nOMa1MhlryKXZpcznzR77uT5cUN2OPbDpMF5IRj/oJJuch9I/GIIrFvQxT5TfVp7ZNybwD9enu4HX VPiHzX+1bMJsBvfahyYB/9ZAJ7LWa5DylbX5p8RcWmU4EbiZ96qe3ADu7xF4x3MWw+r0Ees78LVKn erg/je0irESJZ1fgJuqWNAMUIHNPXBP3CsKnOC26xVLXYIb2Jeh9cuA7bVnF2kYTE4fdI+w2jDk0O OB58gZ6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qHTjY-002OtN-1n; Thu, 06 Jul 2023 18:29:40 +0000 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qHTjV-002Orf-1L for linux-mtd@lists.infradead.org; Thu, 06 Jul 2023 18:29:38 +0000 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-66f5faba829so672367b3a.3 for ; Thu, 06 Jul 2023 11:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1688668176; x=1691260176; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=kdKGWUbGNZ0QO+JMSEBiLNbimzhoxUmAMXK12MHHg/M=; b=TVJ3nLzTNgv6O4WJiB7UQ1RGjus7AUtVcHdzXu7qewI5MXkr6g2pSvaoJFVQJYhS66 ZYqAGOb8eRa2sbITvmrnhgXb8WBVklfGU/6ocrRtMiEBYbKESSFfqN4SQ2xqJEeNxKb0 aRwskoxljew4bUyqU/YlTEd4w4QzjBWVTA7To= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688668176; x=1691260176; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kdKGWUbGNZ0QO+JMSEBiLNbimzhoxUmAMXK12MHHg/M=; b=WRTHKvm9VzhW5e6ZaKwhyAc3vWHZBxpC/SM4l1TJKeEip5ljTpmj2d7IlaKTkdOg9x kZy3wcAqGSacfyNItQq16FqKlGw+3Aw4rni1EYybHpAxrHlMDlO7/U02HCC8xXjs4Y0O 5jn+jSSDPuYt7nMwR3aCWH3K6HyEzcU6Ia6gnmkjU62Vo/WCJMMCb/jqB3vSPHpt4KTJ veuq4uPTJoHTD9BwTAH6vjKa76i3rwLFwPyWHOQ0y3EJc8XgQHPEG7qTEfu1knBwu9Qn o1zqQegjJnqioar5RVmkMdmxuAo3U0c4KtYnjy1JNfub81lOJAvqJlbq1HZOd6uqVpJq vy9w== X-Gm-Message-State: ABy/qLZFz9SYlhb7ENE5RkUfedpkzc7AyI/9jb3ClrQZNafoSlycn9Or mTpJ1xT+Vz+pBZs1uYmjW4O6PA== X-Google-Smtp-Source: APBJJlHeySiuxxq2R6Ai3jVV/fwkfMpSWlkHFx80dOBaKpwk/a+GxXItO74MPBe9ET2kvwqH5Kk/EA== X-Received: by 2002:a05:6a00:139b:b0:679:bc89:e5b with SMTP id t27-20020a056a00139b00b00679bc890e5bmr2741416pfg.19.1688668176150; Thu, 06 Jul 2023 11:29:36 -0700 (PDT) Received: from ubuntu-22.localdomain ([192.19.222.250]) by smtp.gmail.com with ESMTPSA id y13-20020aa7804d000000b006826c9e4397sm1580871pfm.48.2023.07.06.11.29.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Jul 2023 11:29:35 -0700 (PDT) From: William Zhang To: Broadcom Kernel List , Linux MTD List Cc: f.fainelli@gmail.com, rafal@milecki.pl, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, computersforpeace@gmail.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, William Zhang , Florian Fainelli , stable@vger.kernel.org, Miquel Raynal , linux-kernel@vger.kernel.org, Vignesh Raghavendra , Richard Weinberger , Kamal Dasu Subject: [PATCH v4 3/5] mtd: rawnand: brcmnand: Fix crash during the panic_write Date: Thu, 6 Jul 2023 11:29:07 -0700 Message-Id: <20230706182909.79151-4-william.zhang@broadcom.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230706182909.79151-1-william.zhang@broadcom.com> References: <20230706182909.79151-1-william.zhang@broadcom.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230706_112937_478094_16CD6578 X-CRM114-Status: GOOD ( 14.11 ) X-Spam-Score: -0.4 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: When executing a NAND command within the panic write path, wait for any pending command instead of calling BUG_ON to avoid crashing while already crashing. Fixes: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller") Signed-off-by: William Zhang Reviewed-by: Florian Fainelli List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org When executing a NAND command within the panic write path, wait for any pending command instead of calling BUG_ON to avoid crashing while already crashing. Fixes: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller") Signed-off-by: William Zhang Reviewed-by: Florian Fainelli Reviewed-by: Kursad Oney Reviewed-by: Kamal Dasu Cc: stable@vger.kernel.org --- Changes in v4: - Update commit message - Add cc stable tag Changes in v3: None Changes in v2: None drivers/mtd/nand/raw/brcmnand/brcmnand.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c index 9a373a10304d..b2c6396060db 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -1608,7 +1608,17 @@ static void brcmnand_send_cmd(struct brcmnand_host *host, int cmd) dev_dbg(ctrl->dev, "send native cmd %d addr 0x%llx\n", cmd, cmd_addr); - BUG_ON(ctrl->cmd_pending != 0); + /* + * If we came here through _panic_write and there is a pending + * command, try to wait for it. If it times out, rather than + * hitting BUG_ON, just return so we don't crash while crashing. + */ + if (oops_in_progress) { + if (ctrl->cmd_pending && + bcmnand_ctrl_poll_status(ctrl, NAND_CTRL_RDY, NAND_CTRL_RDY, 0)) + return; + } else + BUG_ON(ctrl->cmd_pending != 0); ctrl->cmd_pending = cmd; ret = bcmnand_ctrl_poll_status(ctrl, NAND_CTRL_RDY, NAND_CTRL_RDY, 0);