Patch "dmaengine: dmatest: Fix process hang when reading 'wait' parameter" has been added to the 5.6-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

    dmaengine: dmatest: Fix process hang when reading 'wait' parameter

to the 5.6-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:
     dmaengine-dmatest-fix-process-hang-when-reading-wait.patch
and it can be found in the queue-5.6 subdirectory.

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



commit 55d465c1bfbaae38397311b9a938a573bec44c45
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date:   Tue Apr 28 14:35:18 2020 +0300

    dmaengine: dmatest: Fix process hang when reading 'wait' parameter
    
    commit aa72f1d20ee973d68f26d46fce5e1cf6f9b7e1ca upstream.
    
    If we do
    
      % echo 1 > /sys/module/dmatest/parameters/run
      [  115.851124] dmatest: Could not start test, no channels configured
    
      % echo dma8chan7 > /sys/module/dmatest/parameters/channel
      [  127.563872] dmatest: Added 1 threads using dma8chan7
    
      % cat /sys/module/dmatest/parameters/wait
      ... !!! HANG !!! ...
    
    The culprit is the commit 6138f967bccc
    
      ("dmaengine: dmatest: Use fixed point div to calculate iops")
    
    which makes threads not to run, but pending and being kicked off by writing
    to the 'run' node. However, it forgot to consider 'wait' routine to avoid
    above mentioned case.
    
    In order to fix this, check for really running threads, i.e. with pending
    and done flags unset.
    
    It's pity the culprit commit hadn't updated documentation and tested all
    possible scenarios.
    
    Fixes: 6138f967bccc ("dmaengine: dmatest: Use fixed point div to calculate iops")
    Cc: Seraj Alijan <seraj.alijan@xxxxxxxxxxx>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20200428113518.70620-1-andriy.shevchenko@xxxxxxxxxxxxxxx
    Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index 4993e3e5c5b01..364dd34799d45 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -240,7 +240,7 @@ static bool is_threaded_test_run(struct dmatest_info *info)
 		struct dmatest_thread *thread;
 
 		list_for_each_entry(thread, &dtc->threads, node) {
-			if (!thread->done)
+			if (!thread->done && !thread->pending)
 				return true;
 		}
 	}



[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