Thread (44 messages) 44 messages, 6 authors, 2021-12-17

Re: [PATCH v1 1/2] ata: libahci_platform: Get rid of dup message when IRQ can't be retrieved

From: Sergey Shtylyov <hidden>
Date: 2021-12-10 19:30:58
Also in: lkml

On 12/10/21 10:25 PM, Andy Shevchenko wrote:

[...]
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
platform_get_irq() will print a message when it fails.
No need to repeat this.

While at it, drop redundant check for 0 as platform_get_irq() spills
out a big WARN() in such case.
The reason you should be able to remove the "if (!irq)" test is that
platform_get_irq() never returns 0. At least, that is what the function kdoc
says. But looking at platform_get_irq_optional(), which is called by
platform_get_irq(), the out label is:

	WARN(ret == 0, "0 is an invalid IRQ number\n");
	return ret;

So 0 will be returned as-is. That is rather weird. That should be fixed to
return -ENXIO:

	if (WARN(ret == 0, "0 is an invalid IRQ number\n"))
		return -ENXIO;
	return ret;
   My unmerged patch (https://marc.info/?l=linux-kernel&m=163623041902285) does this
but returns -EINVAL instead.
quoted
Otherwise, I do not think that removing the "if (!irq)" hunk is safe. no ?
   Of course it isn't...
It's unsubstantiated statement. The vIRQ 0 shouldn't be returned by any of
those API calls.
   We do _not_ know what needs to be fixed, that's the problem, and that's why the WARN()
is there...
So, have you seen this warning (being reported) related to libahci_platform?
   No (as if you need to really see this while it's obvious from the code review).
quoted
If no, what we are discussing about then? The workaround is redundant and
   I don't know. :-) Your arguments so far seem bogus (sorry! :-))...
It seems you haven't got them at all. The problems of platform_get_irq() et al
shouldn't be worked around in the callers.
   I have clearly explained to you what I'm working around there. If that wasn't clear
enough, I don't want to continue this talk anymore. Good luck with your patch (not this
one).
Good luck with yours, not the one that touches platform_get_irq_optional() though!
   Mmh, I'm not touching it any way that would break what your patch was trying to do,
unless you've re-thopught that. It also shoudn't matter whose patch gets merged 1st 
other than some small adaptation).

MBR, Sergey
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help