On 9/28/2016 8:14 PM, Florian Fainelli wrote:
The PHY interrupts are now handled in a threaded interrupt handler,
which can sleep. The work queue is no longer needed, phy_change() can
be called directly. Additionally, none of the callers of
phy_mac_interrupt() did so in interrupt context, so fully remove the
I did intend to call it from interrupt context (from the ravb
work queue, and document that phy_mac_interrupt() should not be called
in interrupt context.
It was intentionally made callable from the interrupt context, I'd
if you wouldn't change that.
OTOH, it's still not very handy to call because of the 'new_link'
parameter which I'm not sure I can provide...
If there is a need for it, i will leave the work queue and keep this
Let's hear what Florian says...
The intent is really to have phy_mac_interrupt() callable from hard IRQ
context, not that this matters really too much because link events
already occur in the slow path, but it's nice to have that property
Actually, I still don't know how to call phy_mac_interrupt() from the ravb
driver because of the 'new_link' parameter -- I won't always have that signal
connected to the MAC...