Patch "ASoC: SOF: Intel: pci-tng: revert invalid bar size setting" 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

    ASoC: SOF: Intel: pci-tng: revert invalid bar size setting

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:
     asoc-sof-intel-pci-tng-revert-invalid-bar-size-setti.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 26966d2d8afa2f9f5203fe666e882f3dc0b30c85
Author: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Date:   Tue Mar 7 11:53:41 2023 +0200

    ASoC: SOF: Intel: pci-tng: revert invalid bar size setting
    
    [ Upstream commit ca09e2a351fbc7836ba9418304ff0c3e72addfe0 ]
    
    The logic for the ioremap is to find the resource index 3 (IRAM) and
    infer the BAR address by subtracting the IRAM offset. The BAR size
    defined in hardware specifications is 2MB.
    
    The commit 5947b2726beb6 ("ASoC: SOF: Intel: Check the bar size before
    remapping") tried to find the BAR size by querying the resource length
    instead of a pre-canned value, but by requesting the size for index 3
    it only gets the size of the IRAM. That's obviously wrong and prevents
    the probe from proceeding.
    
    This commit attempted to fix an issue in a fuzzing/simulated
    environment but created another on actual devices, so the best course
    of action is to revert that change.
    
    Reported-by: Ferry Toth <fntoth@xxxxxxxxx>
    Tested-by: Ferry Toth <fntoth@xxxxxxxxx> (Intel Edison-Arduino)
    Link: https://github.com/thesofproject/linux/issues/3901
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
    Reviewed-by: Péter Ujfalusi <peter.ujfalusi@xxxxxxxxxxxxxxx>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx>
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230307095341.3222-1-peter.ujfalusi@xxxxxxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/sof/intel/pci-tng.c b/sound/soc/sof/intel/pci-tng.c
index f0f6d9ba88037..0b17d1bb225e2 100644
--- a/sound/soc/sof/intel/pci-tng.c
+++ b/sound/soc/sof/intel/pci-tng.c
@@ -75,11 +75,7 @@ static int tangier_pci_probe(struct snd_sof_dev *sdev)
 
 	/* LPE base */
 	base = pci_resource_start(pci, desc->resindex_lpe_base) - IRAM_OFFSET;
-	size = pci_resource_len(pci, desc->resindex_lpe_base);
-	if (size < PCI_BAR_SIZE) {
-		dev_err(sdev->dev, "error: I/O region is too small.\n");
-		return -ENODEV;
-	}
+	size = PCI_BAR_SIZE;
 
 	dev_dbg(sdev->dev, "LPE PHY base at 0x%x size 0x%x", base, size);
 	sdev->bar[DSP_BAR] = devm_ioremap(sdev->dev, base, size);



[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