Re: [PATCH V2] IB/hfi1,IB/qib: Fix qp_stats sleep with rcu read lock held

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

 



On 8/14/2016 4:55 AM, Leon Romanovsky wrote:
> On Fri, Aug 12, 2016 at 11:17:37AM -0400, ira.weiny@xxxxxxxxx wrote:
>> From: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
>>
>> The qp init function does a kzalloc() while holding the RCU
>> lock that encounters the following warning with a debug kernel
>> when a cat of the qp_stats is done:
>>
>> [  231.723948] rcu_scheduler_active = 1, debug_locks = 0
>> [  231.731939] 3 locks held by cat/11355:
>> [  231.736492]  #0:  (debugfs_srcu){......}, at: [<ffffffff813001a5>] debugfs_use_file_start+0x5/0x90
>> [  231.746955]  #1:  (&p->lock){+.+.+.}, at: [<ffffffff81289a6c>] seq_read+0x4c/0x3c0
>> [  231.755873]  #2:  (rcu_read_lock){......}, at: [<ffffffffa0a0c535>] _qp_stats_seq_start+0x5/0xd0 [hfi1]
>> [  231.766862]
>>
>> The init functions do an implicit next which requires the rcu read lock
>> before the kzalloc().
>>
>> Fix for both drivers is to change the scope of the init function to only
>> do the allocation and the initialization of the just allocated iter.
>>
>> The implict next is moved back into the respective start functions to fix
>> the issue.
>>
>> Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
>> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
>> CC: <stable@xxxxxxxxxxxxxxx> # 4.6.x-
>>
>> ---
>> Changes from V1:
>> 	use do.. while loop to execute first iter call.
> 
> Thanks,
> Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> 

Sorry, responded to v1 email, but I applied the v2 patch.

-- 
Doug Ledford <dledford@xxxxxxxxxx>
    GPG Key ID: 0E572FDD

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]