Subject: Re: [PATCH] powerpc/pseries: avoid harmless preempt warning

From: Nicholas Piggin <[email-masked]>
Date: Sat, 21 Mar 2020 16:34:39 +1000

Christophe Leroy's on March 21, 2020 1:33 am:
> 
> 
> Le 20/03/2020 à 16:24, Nicholas Piggin a écrit :
>> Signed-off-by: Nicholas Piggin <[email-masked]>
>> ---
>>   arch/powerpc/platforms/pseries/lpar.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>> 
>> diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
>> index 3c3da25b445c..e4ed5317f117 100644
>> --- a/arch/powerpc/platforms/pseries/lpar.c
>> +++ b/arch/powerpc/platforms/pseries/lpar.c
>> @@ -636,8 +636,16 @@ static const struct proc_ops vcpudispatch_stats_freq_proc_ops = {
>>   
>>   static int __init vcpudispatch_stats_procfs_init(void)
>>   {
>> -	if (!lppaca_shared_proc(get_lppaca()))
>> +	/*
>> +	 * Avoid smp_processor_id while preemptible. All CPUs should have
>> +	 * the same value for lppaca_shared_proc.
>> +	 */
>> +	preempt_disable();
>> +	if (!lppaca_shared_proc(get_lppaca())) {
>> +		preempt_enable();
>>   		return 0;
>> +	}
>> +	preempt_enable();
> 
> Can we avoid the double preempt_enable() with something like:
> 
> 	preempt_disable();
> 	is_shared = lppaca_shared_proc(get_lppaca());
> 	preempt_enable();
> 	if (!is_shared)
> 		return 0;

I don't mind too much. Same number of lines.

Thanks,
Nick