Patch "dma: gpi: remove spurious unlock in gpi_ch_init" has been added to the 6.3-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

    dma: gpi: remove spurious unlock in gpi_ch_init

to the 6.3-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:
     dma-gpi-remove-spurious-unlock-in-gpi_ch_init.patch
and it can be found in the queue-6.3 subdirectory.

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



commit 9c2fa99e0e10f22ba4ce88313af429f6faabce28
Author: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
Date:   Mon Apr 10 02:33:55 2023 +0300

    dma: gpi: remove spurious unlock in gpi_ch_init
    
    [ Upstream commit 91d6a468e335571f1e67e046050dea9af5fa4ebe ]
    
    gpi_ch_init() doesn't lock the ctrl_lock mutex, so there is no need to
    unlock it too. Instead the mutex is handled by the function
    gpi_alloc_chan_resources(), which properly locks and unlocks the mutex.
    
    =====================================
    WARNING: bad unlock balance detected!
    6.3.0-rc5-00253-g99792582ded1-dirty #15 Not tainted
    -------------------------------------
    kworker/u16:0/9 is trying to release lock (&gpii->ctrl_lock) at:
    [<ffffb99d04e1284c>] gpi_alloc_chan_resources+0x108/0x5bc
    but there are no more locks to release!
    
    other info that might help us debug this:
    6 locks held by kworker/u16:0/9:
     #0: ffff575740010938 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x220/0x594
     #1: ffff80000809bdd0 (deferred_probe_work){+.+.}-{0:0}, at: process_one_work+0x220/0x594
     #2: ffff575740f2a0f8 (&dev->mutex){....}-{3:3}, at: __device_attach+0x38/0x188
     #3: ffff57574b5570f8 (&dev->mutex){....}-{3:3}, at: __device_attach+0x38/0x188
     #4: ffffb99d06a2f180 (of_dma_lock){+.+.}-{3:3}, at: of_dma_request_slave_channel+0x138/0x280
     #5: ffffb99d06a2ee20 (dma_list_mutex){+.+.}-{3:3}, at: dma_get_slave_channel+0x28/0x10c
    
    stack backtrace:
    CPU: 7 PID: 9 Comm: kworker/u16:0 Not tainted 6.3.0-rc5-00253-g99792582ded1-dirty #15
    Hardware name: Google Pixel 3 (DT)
    Workqueue: events_unbound deferred_probe_work_func
    Call trace:
     dump_backtrace+0xa0/0xfc
     show_stack+0x18/0x24
     dump_stack_lvl+0x60/0xac
     dump_stack+0x18/0x24
     print_unlock_imbalance_bug+0x130/0x148
     lock_release+0x270/0x300
     __mutex_unlock_slowpath+0x48/0x2cc
     mutex_unlock+0x20/0x2c
     gpi_alloc_chan_resources+0x108/0x5bc
     dma_chan_get+0x84/0x188
     dma_get_slave_channel+0x5c/0x10c
     gpi_of_dma_xlate+0x110/0x1a0
     of_dma_request_slave_channel+0x174/0x280
     dma_request_chan+0x3c/0x2d4
     geni_i2c_probe+0x544/0x63c
     platform_probe+0x68/0xc4
     really_probe+0x148/0x2ac
     __driver_probe_device+0x78/0xe0
     driver_probe_device+0x3c/0x160
     __device_attach_driver+0xb8/0x138
     bus_for_each_drv+0x84/0xe0
     __device_attach+0x9c/0x188
     device_initial_probe+0x14/0x20
     bus_probe_device+0xac/0xb0
     device_add+0x60c/0x7d8
     of_device_add+0x44/0x60
     of_platform_device_create_pdata+0x90/0x124
     of_platform_bus_create+0x15c/0x3c8
     of_platform_populate+0x58/0xf8
     devm_of_platform_populate+0x58/0xbc
     geni_se_probe+0xf0/0x164
     platform_probe+0x68/0xc4
     really_probe+0x148/0x2ac
     __driver_probe_device+0x78/0xe0
     driver_probe_device+0x3c/0x160
     __device_attach_driver+0xb8/0x138
     bus_for_each_drv+0x84/0xe0
     __device_attach+0x9c/0x188
     device_initial_probe+0x14/0x20
     bus_probe_device+0xac/0xb0
     deferred_probe_work_func+0x8c/0xc8
     process_one_work+0x2bc/0x594
     worker_thread+0x228/0x438
     kthread+0x108/0x10c
     ret_from_fork+0x10/0x20
    
    Fixes: 5d0c3533a19f ("dmaengine: qcom: Add GPI dma driver")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230409233355.453741-1-dmitry.baryshkov@xxxxxxxxxx
    Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c
index 59a36cbf9b5f7..932628b319c81 100644
--- a/drivers/dma/qcom/gpi.c
+++ b/drivers/dma/qcom/gpi.c
@@ -1966,7 +1966,6 @@ static int gpi_ch_init(struct gchan *gchan)
 error_config_int:
 	gpi_free_ring(&gpii->ev_ring, gpii);
 exit_gpi_init:
-	mutex_unlock(&gpii->ctrl_lock);
 	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