* [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 related [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).