LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 1/1] genirq/timings: Fix error return code in irq_timings_test_irqs()
@ 2021-05-08  6:20 Zhen Lei
  2021-08-10 13:33 ` Thomas Gleixner
  0 siblings, 1 reply; 3+ messages in thread
From: Zhen Lei @ 2021-05-08  6:20 UTC (permalink / raw)
  To: Thomas Gleixner, Daniel Lezcano, linux-kernel; +Cc: Zhen Lei

Fix to return a negative error code from the error handling case instead
of 0, as done elsewhere in this function.

Fixes: f52da98d900e ("genirq/timings: Add selftest for irqs circular buffer")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
---
 kernel/irq/timings.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/irq/timings.c b/kernel/irq/timings.c
index d309d6fbf5bd..12893be1199a 100644
--- a/kernel/irq/timings.c
+++ b/kernel/irq/timings.c
@@ -794,12 +794,14 @@ static int __init irq_timings_test_irqs(struct timings_intervals *ti)
 
 		__irq_timings_store(irq, irqs, ti->intervals[i]);
 		if (irqs->circ_timings[i & IRQ_TIMINGS_MASK] != index) {
+			ret = -EFAULT;
 			pr_err("Failed to store in the circular buffer\n");
 			goto out;
 		}
 	}
 
 	if (irqs->count != ti->count) {
+		ret = -EFAULT;
 		pr_err("Count differs\n");
 		goto out;
 	}
-- 
2.25.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] genirq/timings: Fix error return code in irq_timings_test_irqs()
  2021-05-08  6:20 [PATCH 1/1] genirq/timings: Fix error return code in irq_timings_test_irqs() Zhen Lei
@ 2021-08-10 13:33 ` Thomas Gleixner
  2021-08-11  7:11   ` Leizhen (ThunderTown)
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Gleixner @ 2021-08-10 13:33 UTC (permalink / raw)
  To: Zhen Lei, Daniel Lezcano, linux-kernel; +Cc: Zhen Lei

On Sat, May 08 2021 at 14:20, Zhen Lei wrote:
> Fix to return a negative error code from the error handling case instead
> of 0, as done elsewhere in this function.

Returning an error code is fine, but

>  
>  		__irq_timings_store(irq, irqs, ti->intervals[i]);
>  		if (irqs->circ_timings[i & IRQ_TIMINGS_MASK] != index) {
> +			ret = -EFAULT;

EFAULT is really not appropriate here. EFAULT is used for mapping
faults. ENOSPC or EBADSLT perhaps?

>  			pr_err("Failed to store in the circular buffer\n");
>  			goto out;
>  		}
>  	}
>  
>  	if (irqs->count != ti->count) {
> +		ret = -EFAULT;

ERANGE?

Thanks,

        tglx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] genirq/timings: Fix error return code in irq_timings_test_irqs()
  2021-08-10 13:33 ` Thomas Gleixner
@ 2021-08-11  7:11   ` Leizhen (ThunderTown)
  0 siblings, 0 replies; 3+ messages in thread
From: Leizhen (ThunderTown) @ 2021-08-11  7:11 UTC (permalink / raw)
  To: Thomas Gleixner, Daniel Lezcano, linux-kernel



On 2021/8/10 21:33, Thomas Gleixner wrote:
> On Sat, May 08 2021 at 14:20, Zhen Lei wrote:
>> Fix to return a negative error code from the error handling case instead
>> of 0, as done elsewhere in this function.
> 
> Returning an error code is fine, but
> 
>>  
>>  		__irq_timings_store(irq, irqs, ti->intervals[i]);
>>  		if (irqs->circ_timings[i & IRQ_TIMINGS_MASK] != index) {
>> +			ret = -EFAULT;
> 
> EFAULT is really not appropriate here. EFAULT is used for mapping
> faults. ENOSPC or EBADSLT perhaps?

EBADSLT will be better, the cyclic buffer can not be "no space".

> 
>>  			pr_err("Failed to store in the circular buffer\n");
>>  			goto out;
>>  		}
>>  	}
>>  
>>  	if (irqs->count != ti->count) {
>> +		ret = -EFAULT;
> 
> ERANGE?

Looks better than EFAULT.

Thank you for your suggestion, I will send v2.

> 
> Thanks,
> 
>         tglx
> .
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-08-11  7:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-08  6:20 [PATCH 1/1] genirq/timings: Fix error return code in irq_timings_test_irqs() Zhen Lei
2021-08-10 13:33 ` Thomas Gleixner
2021-08-11  7:11   ` Leizhen (ThunderTown)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).