Re: [PATCH] mm/mmap: replace if (cond) BUG() with BUG_ON()

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

 




在 2021/1/6 下午12:28, Hugh Dickins 写道:
> On Sat, 12 Dec 2020, Alex Shi wrote:
>>
>> I'm very sorry, a typo here. the patch should be updated:
>>
>> From ed4fa1c6d5bed5766c5f0c35af0c597855d7be06 Mon Sep 17 00:00:00 2001
>> From: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
>> Date: Fri, 11 Dec 2020 21:26:46 +0800
>> Subject: [PATCH] mm/mmap: replace if (cond) BUG() with BUG_ON()
>>
>> coccinelle reports some warnings:
>> WARNING: Use BUG_ON instead of if condition followed by BUG.
>>
>> It could be fixed by BUG_ON().
>>
>> Reported-by: abaci@xxxxxxxxxxxxxxxxx
>> Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
> 
> When diffing mmotm just now, I was sorry to find this: NAK.
> 
> Alex, please consider why the authors of these lines (whom you
> did not Cc) chose to write them without BUG_ON(): it has always
> been preferred practice to use BUG_ON() on predicates, but not on
> functionally effective statements (sorry, I've forgotten the proper
> term: I'd say statements with side-effects, but here they are not
> just side-effects: they are their main purpose).
> 

Right!

The original line may want to be done whenever the BUG() enabled, I
overlocked this points. Sorry! My fault!

Please revert them.

Thanks
Alex



> We prefer not to hide those away inside BUG macros: please fix your
> "abaci" to respect kernel style here - unless it turns out that the
> kernel has moved away from that, and it's me who's behind the times.
> 
> Andrew, if you agree, please drop
> mm-mmap-replace-if-cond-bug-with-bug_on.patch
> from your stack.
> 
> (And did Minchan really Ack it? I see an Ack from Minchan to a
> similar mm/zsmalloc patch: which surprises me, but is Minchan's
> business not mine; but that patch is not in mmotm.)
> 
> On the whole, I think there are far too many patches submitted,
> where Developer B chooses to rewrite a line to their own preference,
> without respecting that Author A chose to write it in another way.
> That's great when it really does improve readability, but often not.
> 
> Thanks,
> Hugh
> 
>> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>> Cc: linux-mm@xxxxxxxxx
>> Cc: linux-kernel@xxxxxxxxxxxxxxx
>> ---
>>  mm/mmap.c | 22 ++++++++--------------
>>  1 file changed, 8 insertions(+), 14 deletions(-)
>>
>> diff --git a/mm/mmap.c b/mm/mmap.c
>> index 8144fc3c5a78..107fa91bb59f 100644
>> --- a/mm/mmap.c
>> +++ b/mm/mmap.c
>> @@ -712,9 +712,8 @@ static void __insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
>>  	struct vm_area_struct *prev;
>>  	struct rb_node **rb_link, *rb_parent;
>>  
>> -	if (find_vma_links(mm, vma->vm_start, vma->vm_end,
>> -			   &prev, &rb_link, &rb_parent))
>> -		BUG();
>> +	BUG_ON(find_vma_links(mm, vma->vm_start, vma->vm_end,
>> +			   &prev, &rb_link, &rb_parent));
>>  	__vma_link(mm, vma, prev, rb_link, rb_parent);
>>  	mm->map_count++;
>>  }
>> @@ -3585,9 +3584,8 @@ static void vm_lock_anon_vma(struct mm_struct *mm, struct anon_vma *anon_vma)
>>  		 * can't change from under us thanks to the
>>  		 * anon_vma->root->rwsem.
>>  		 */
>> -		if (__test_and_set_bit(0, (unsigned long *)
>> -				       &anon_vma->root->rb_root.rb_root.rb_node))
>> -			BUG();
>> +		BUG_ON(__test_and_set_bit(0, (unsigned long *)
>> +			&anon_vma->root->rb_root.rb_root.rb_node));
>>  	}
>>  }
>>  
>> @@ -3603,8 +3601,7 @@ static void vm_lock_mapping(struct mm_struct *mm, struct address_space *mapping)
>>  		 * mm_all_locks_mutex, there may be other cpus
>>  		 * changing other bitflags in parallel to us.
>>  		 */
>> -		if (test_and_set_bit(AS_MM_ALL_LOCKS, &mapping->flags))
>> -			BUG();
>> +		BUG_ON(test_and_set_bit(AS_MM_ALL_LOCKS, &mapping->flags));
>>  		down_write_nest_lock(&mapping->i_mmap_rwsem, &mm->mmap_lock);
>>  	}
>>  }
>> @@ -3701,9 +3698,8 @@ static void vm_unlock_anon_vma(struct anon_vma *anon_vma)
>>  		 * can't change from under us until we release the
>>  		 * anon_vma->root->rwsem.
>>  		 */
>> -		if (!__test_and_clear_bit(0, (unsigned long *)
>> -					  &anon_vma->root->rb_root.rb_root.rb_node))
>> -			BUG();
>> +		BUG_ON(!__test_and_clear_bit(0, (unsigned long *)
>> +				&anon_vma->root->rb_root.rb_root.rb_node));
>>  		anon_vma_unlock_write(anon_vma);
>>  	}
>>  }
>> @@ -3716,9 +3712,7 @@ static void vm_unlock_mapping(struct address_space *mapping)
>>  		 * because we hold the mm_all_locks_mutex.
>>  		 */
>>  		i_mmap_unlock_write(mapping);
>> -		if (!test_and_clear_bit(AS_MM_ALL_LOCKS,
>> -					&mapping->flags))
>> -			BUG();
>> +		BUG_ON(!test_and_clear_bit(AS_MM_ALL_LOCKS, &mapping->flags));
>>  	}
>>  }
>>  
>> -- 
>> 2.29.GIT





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux