Patch "wifi: mt76: mt7921: fix error code of return in mt7921_acpi_read" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: mt76: mt7921: fix error code of return in mt7921_acpi_read

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-mt76-mt7921-fix-error-code-of-return-in-mt7921_.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0c299faabc00a302e48f358c271e56bd13027593
Author: Aaron Ma <aaron.ma@xxxxxxxxxxxxx>
Date:   Mon Jan 16 23:22:35 2023 +0800

    wifi: mt76: mt7921: fix error code of return in mt7921_acpi_read
    
    [ Upstream commit 888d89034f9eaeab9b5b75f13dbe35376c7dd471 ]
    
    Kernel NULL pointer dereference when ACPI SAR table isn't implemented well.
    Fix the error code of return to mark the ACPI SAR table as invalid.
    
    [    5.077128] mt7921e 0000:06:00.0: sar cnt = 0
    [    5.077381] BUG: kernel NULL pointer dereference, address:
    0000000000000004
    [    5.077630] #PF: supervisor read access in kernel mode
    [    5.077883] #PF: error_code(0x0000) - not-present page
    [    5.078138] PGD 0 P4D 0
    [    5.078398] Oops: 0000 [#1] PREEMPT SMP NOPTI
    [    5.079202] RIP: 0010:mt7921_init_acpi_sar+0x106/0x220
    [mt7921_common]
    ...
    [    5.080786] Call Trace:
    [    5.080786]  <TASK>
    [    5.080786]  mt7921_register_device+0x37d/0x490 [mt7921_common]
    [    5.080786]  mt7921_pci_probe.part.0+0x2ee/0x310 [mt7921e]
    [    5.080786]  mt7921_pci_probe+0x52/0x70 [mt7921e]
    [    5.080786]  local_pci_probe+0x47/0x90
    [    5.080786]  pci_call_probe+0x55/0x190
    [    5.080786]  pci_device_probe+0x84/0x120
    
    Fixes: f965333e491e ("mt76: mt7921: introduce ACPI SAR support")
    Signed-off-by: Aaron Ma <aaron.ma@xxxxxxxxxxxxx>
    Signed-off-by: Felix Fietkau <nbd@xxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c b/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c
index 47e034a9b0037..ed9241d4aa641 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c
@@ -33,14 +33,17 @@ mt7921_acpi_read(struct mt7921_dev *dev, u8 *method, u8 **tbl, u32 *len)
 	    sar_root->package.elements[0].type != ACPI_TYPE_INTEGER) {
 		dev_err(mdev->dev, "sar cnt = %d\n",
 			sar_root->package.count);
+		ret = -EINVAL;
 		goto free;
 	}
 
 	if (!*tbl) {
 		*tbl = devm_kzalloc(mdev->dev, sar_root->package.count,
 				    GFP_KERNEL);
-		if (!*tbl)
+		if (!*tbl) {
+			ret = -ENOMEM;
 			goto free;
+		}
 	}
 	if (len)
 		*len = sar_root->package.count;
@@ -52,9 +55,9 @@ mt7921_acpi_read(struct mt7921_dev *dev, u8 *method, u8 **tbl, u32 *len)
 			break;
 		*(*tbl + i) = (u8)sar_unit->integer.value;
 	}
-free:
 	ret = (i == sar_root->package.count) ? 0 : -EINVAL;
 
+free:
 	kfree(sar_root);
 
 	return ret;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux