Re: [PATCH 13/17] net: gianfar: remove misuse of IRQF_NO_SUSPEND flag

From: Sudeep Holla
Date: Mon Sep 21 2015 - 12:38:58 EST




On 21/09/15 17:24, Manoil Claudiu wrote:
-----Original Message-----
From: Sudeep Holla [mailto:sudeep.holla@xxxxxxx]
Sent: Monday, September 21, 2015 6:47 PM
To: linux-pm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Cc: Sudeep Holla <sudeep.holla@xxxxxxx>; Thomas Gleixner
<tglx@xxxxxxxxxxxxx>; Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>; David S. Miller
<davem@xxxxxxxxxxxxx>; Manoil Claudiu-B08782
<claudiu.manoil@xxxxxxxxxxxxx>; Kevin Hao <haokexin@xxxxxxxxx>;
netdev@xxxxxxxxxxxxxxx
Subject: [PATCH 13/17] net: gianfar: remove misuse of IRQF_NO_SUSPEND
flag

The device is set as wakeup capable using proper wakeup API but the
driver misuses IRQF_NO_SUSPEND to set the interrupt as wakeup source
which is incorrect.

This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
enable_irq_wake instead.


What would be the purpose of IRQF_NO_SUSPEND flag then?

If you look at the section "IRQF_NO_SUSPEND Flag" in
Documentation/power/suspend-and-interrupts.txt, it states it doesn't
guarantee that the interrupt will wake the system from a suspended state
-- for such cases it is necessary to use enable_irq_wake().

The flag is a friendlier API compared to calling enable_irq_wake().

In what sense ?

For older kernels, on PPC architectures, the flag did the job.

Agreed, it does the job even now, just that it's not designed for that.
One can change that anytime internally as the APIs for configuring
wakeups as in place now. I am just making use of right APIs.

When did this change? Since when using IRQF_NO_SUSPEND is a "misuse"?


Sorry if the term "misuse" is not appropriate here, since the intention
of the flag usage doesn't meet the requirements, I mentioned it as misuse.

Regards,
Sudeep
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/