Patch "clk: mediatek: clk-mtk: Grab iomem pointer for divider clocks" has been added to the 6.4-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

    clk: mediatek: clk-mtk: Grab iomem pointer for divider clocks

to the 6.4-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:
     clk-mediatek-clk-mtk-grab-iomem-pointer-for-divider-.patch
and it can be found in the queue-6.4 subdirectory.

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



commit 5d9310d6ebe6f77d365dd9450a769d4c0225c916
Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
Date:   Thu Jun 15 14:20:49 2023 +0200

    clk: mediatek: clk-mtk: Grab iomem pointer for divider clocks
    
    [ Upstream commit 51821765e89906090753421580a61d25a4668186 ]
    
    In the rare case in which one of the clock drivers has divider clocks
    but not composite clocks, mtk_clk_simple_probe() would not io(re)map,
    hence passing a NULL pointer to mtk_clk_register_dividers().
    
    To fix this issue, extend the `if` conditional to also check if any
    divider clocks are present. While at it, also make sure the iomem
    pointer is NULL if no composite/divider clocks are declared, as we
    are checking for that when iounmapping it in the error path.
    
    This hasn't been seen on any MediaTek clock driver as the current ones
    always declare composite clocks along with divider clocks, but this is
    still an important fix for a future potential KP.
    
    Fixes: 1fe074b1f112 ("clk: mediatek: Add divider clocks to mtk_clk_simple_{probe,remove}()")
    Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230615122051.546985-2-angelogioacchino.delregno@xxxxxxxxxxxxx
    Reviewed-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
    Reviewed-by: Markus Schneider-Pargmann <msp@xxxxxxxxxxxx>
    Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index 3c50f48e93a7b..affaf52c82bd4 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -469,7 +469,7 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
 	const struct platform_device_id *id;
 	const struct mtk_clk_desc *mcd;
 	struct clk_hw_onecell_data *clk_data;
-	void __iomem *base;
+	void __iomem *base = NULL;
 	int num_clks, r;
 
 	mcd = device_get_match_data(&pdev->dev);
@@ -483,8 +483,8 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
 			return -EINVAL;
 	}
 
-	/* Composite clocks needs us to pass iomem pointer */
-	if (mcd->composite_clks) {
+	/* Composite and divider clocks needs us to pass iomem pointer */
+	if (mcd->composite_clks || mcd->divider_clks) {
 		if (!mcd->shared_io)
 			base = devm_platform_ioremap_resource(pdev, 0);
 		else



[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