Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4744120pxj; Wed, 12 May 2021 12:12:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzxQ5pwbkts1PWxHwkofL0ssGO2Y8V1l85dok0uvUFGJG8GNtgo2mdFzcxg2qFDcOzx+WHd X-Received: by 2002:a05:6402:12cf:: with SMTP id k15mr45225782edx.130.1620846768550; Wed, 12 May 2021 12:12:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620846768; cv=none; d=google.com; s=arc-20160816; b=w+L11RowaGe8vnCXupzvdbQvmwmDkAXjVpUC7FmVQMoagWC5yy4Ezafny8ICygj4uc f0IVWz0l7JEJGcRolJhT+KVhcs4izmQXhzFLdPAFqXzeVmytqEgFh2J6UUnYJoSq7wH/ lwIDIlncuMftN1Mypk0HM3VkO0Yfqyj1c/dSZQWWL2PDhPoqTNUECMzjmOPMJnE8IF3j wJ5wuoMEYJ2tan+PU7OY43h7e6eOAtiY4xaWOEMe2aS2hmTfU43rWUVaCFzZJp2KIZjw KK5eS5/9bjPlfjvOCRXjTO+rslDxbiTeEBwWvRGTGVnyfaYIX2+BxDcmEsZcyXJsp2Go xFHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=HsRadZs80xHxoC8lC9R1xUrM7oSlA8FmiEdj771Rg8A=; b=mUY4psA+BuXHCdHAB/CIE/E1SDbOIXmPCP32Y2NBw4h6tt2HJ75lFFBkqvyaL7GY2A /grOBnHGOYligsbEYM3rlYuomu4+wOHTIpmwmSt6ju//JgzP32CB8YLOQfO2sakpFhcp XwkNWDr+go08ZJ4oLuzpQp+I+640Dfue+EvlDennN+sbHGzpXlCoMOgbSKbfambzvp8Z beYJD7dcntHFx4Oe0Y4fSsuHOWG+6ZTXyfO2VIgU2poQSt98XKAZpLXlQzJmfEuw3I1p WYggo83h++q0s+LZCURU7k7JsabGOAX+zOIPogsm7JSI8B3OWNGbhrtrI1MxgCuY0h7J LC9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=NKHEnNCd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k1si707315ejp.353.2021.05.12.12.12.23; Wed, 12 May 2021 12:12:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=NKHEnNCd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377729AbhELTIl (ORCPT + 99 others); Wed, 12 May 2021 15:08:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:36672 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237898AbhELQm5 (ORCPT ); Wed, 12 May 2021 12:42:57 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1E86961D52; Wed, 12 May 2021 16:12:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620835957; bh=J/cwC4wRTQatgMDlzzvs5Sc4brQPNfOkSX1zsyaax8I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NKHEnNCdk19pkd4/Rl4ZGWtRoaiKEUfct/Dp96mxBUuaA3mO5V3p/je4u0FYYZ2CH LhDrGP86tQ0nRN6UJd17XZxqhEvrsitYHgxztu4+qHEUoyDNVJfUvem8YlfbCvQteG iyy4Q1GaQVvgdIzb2PIkUSXYddNBYgX0BrTgf+Io= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Claire Chang , YN Chen , Sean Wang , Felix Fietkau , Sasha Levin Subject: [PATCH 5.12 552/677] mt76: mt7921: fix kernel crash when the firmware fails to download Date: Wed, 12 May 2021 16:49:58 +0200 Message-Id: <20210512144855.723711138@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sean Wang [ Upstream commit e230f0c44f011f3270680a506b19b7e84c5e8923 ] Fix kernel crash when the firmware is missing or fails to download. [ 9.444758] kernel BUG at drivers/pci/msi.c:375! [ 9.449363] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [ 9.501033] pstate: a0400009 (NzCv daif +PAN -UAO) [ 9.505814] pc : free_msi_irqs+0x180/0x184 [ 9.509897] lr : free_msi_irqs+0x40/0x184 [ 9.513893] sp : ffffffc015193870 [ 9.517194] x29: ffffffc015193870 x28: 00000000f0e94fa2 [ 9.522492] x27: 0000000000000acd x26: 000000000000009a [ 9.527790] x25: ffffffc0152cee58 x24: ffffffdbb383e0d8 [ 9.533087] x23: ffffffdbb38628d0 x22: 0000000000040200 [ 9.538384] x21: ffffff8cf7de7318 x20: ffffff8cd65a2480 [ 9.543681] x19: ffffff8cf7de7000 x18: 0000000000000000 [ 9.548979] x17: ffffff8cf9ca03b4 x16: ffffffdc13ad9a34 [ 9.554277] x15: 0000000000000000 x14: 0000000000080800 [ 9.559575] x13: ffffff8cd65a2980 x12: 0000000000000000 [ 9.564873] x11: ffffff8cfa45d820 x10: ffffff8cfa45d6d0 [ 9.570171] x9 : 0000000000000040 x8 : ffffff8ccef1b780 [ 9.575469] x7 : aaaaaaaaaaaaaaaa x6 : 0000000000000000 [ 9.580766] x5 : ffffffdc13824900 x4 : ffffff8ccefe0000 [ 9.586063] x3 : 0000000000000000 x2 : 0000000000000000 [ 9.591362] x1 : 0000000000000125 x0 : ffffff8ccefe0000 [ 9.596660] Call trace: [ 9.599095] free_msi_irqs+0x180/0x184 [ 9.602831] pci_disable_msi+0x100/0x130 [ 9.606740] pci_free_irq_vectors+0x24/0x30 [ 9.610915] mt7921_pci_probe+0xbc/0x250 [mt7921e] [ 9.615693] pci_device_probe+0xd4/0x14c [ 9.619604] really_probe+0x134/0x2ec [ 9.623252] driver_probe_device+0x64/0xfc [ 9.627335] device_driver_attach+0x4c/0x6c [ 9.631506] __driver_attach+0xac/0xc0 [ 9.635243] bus_for_each_dev+0x8c/0xd4 [ 9.639066] driver_attach+0x2c/0x38 [ 9.642628] bus_add_driver+0xfc/0x1d0 [ 9.646365] driver_register+0x64/0xf8 [ 9.650101] __pci_register_driver+0x6c/0x7c [ 9.654360] init_module+0x28/0xfdc [mt7921e] [ 9.658704] do_one_initcall+0x13c/0x2d0 [ 9.662615] do_init_module+0x58/0x1e8 [ 9.666351] load_module+0xd80/0xeb4 [ 9.669912] __arm64_sys_finit_module+0xa8/0xe0 [ 9.674430] el0_svc_common+0xa4/0x16c [ 9.678168] el0_svc_compat_handler+0x2c/0x40 [ 9.682511] el0_svc_compat+0x8/0x10 [ 9.686076] Code: a94257f6 f9400bf7 a8c47bfd d65f03c0 (d4210000) [ 9.692155] ---[ end trace 7621f966afbf0a29 ]--- [ 9.697385] Kernel panic - not syncing: Fatal exception [ 9.702599] SMP: stopping secondary CPUs [ 9.706549] Kernel Offset: 0x1c03600000 from 0xffffffc010000000 [ 9.712456] PHYS_OFFSET: 0xfffffff440000000 [ 9.716625] CPU features: 0x080026,2a80aa18 [ 9.720795] Memory Limit: none Fixes: 5c14a5f944b9 ("mt76: mt7921: introduce mt7921e support") Reported-by: Claire Chang Co-developed-by: YN Chen Signed-off-by: YN Chen Signed-off-by: Sean Wang Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin --- drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c index 0262bd8b1626..8e756871a056 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c @@ -146,10 +146,12 @@ static int mt7921_pci_probe(struct pci_dev *pdev, ret = mt7921_register_device(dev); if (ret) - goto err_free_dev; + goto err_free_irq; return 0; +err_free_irq: + devm_free_irq(&pdev->dev, pdev->irq, dev); err_free_dev: mt76_free_device(&dev->mt76); err_free_pci_vec: -- 2.30.2