Re: [PATCH] net: mdio-gpio: support access that may sleep

From: Sergei Shtylyov
Date: Fri Apr 24 2015 - 13:25:20 EST


On 04/24/2015 06:56 PM, Florian Fainelli wrote:

Some systems using mdio-gpio may use gpio on message based busses, which
require sleeping (e.g. gpio from an I2C I/O expander).

Since this driver does not use IRQ handler, it is safe to use the
_cansleep suffixed gpio accessors.

Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>

Since this is down underneath the layer of an MII bus, you cannot
universally say that these routines are always called in a sleepable
context.

The PHY layer, and the driver itself above that, might call these
routines from timers, interruptes etc.

The PHY library calls these routines from its state machine workqueue
for that reason, or from process context (when invoked via ethtool
ioctl). The only special case is phy_mac_interrupt() which is callable
from interrupt context,

It is not (as we have discussed recently) -- cancel_work_sync() may sleep.

WBR, Sergei

--
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/