mbox series

[net-next,v5,0/2] Prevent nullptr exceptions in ISR

Message ID 20240129135734.18975-1-andre.werner@systec-electronic.com (mailing list archive)
Headers show
Series Prevent nullptr exceptions in ISR | expand

Message

Andre Werner Jan. 29, 2024, 1:55 p.m. UTC
In case phydev->irq is modified unconditionally to a valid IRQ, handling
the IRQ may lead to a nullptr exception if no interrupt handler is
registered to the phy driver. phy_interrupt calls a
phy_device->handle_interrupt unconditionally. And interrupts are enabled
in phy_connect_direct if phydev->irq is not equal to PHY_POLL or
PHY_MAC_INTERRUPT, so it does not check for a phy driver providing an ISR.

Adding an additonal check for a valid interrupt handler in phy_attach_direct
function, and falling back to polling mode if not, should prevent for
such nullptr exceptions.

Moreover, the ADIN1100 phy driver is extended with an interrupt handler
for changes in the link status.

Andre Werner (2):
  net: phy: phy_device: Prevent nullptr exceptions on ISR
  net: phy: adin1100: Add interrupt support for link change

 drivers/net/phy/adin1100.c   | 55 ++++++++++++++++++++++++++++++++++++
 drivers/net/phy/phy_device.c | 13 +++++----
 2 files changed, 63 insertions(+), 5 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 1, 2024, 12:30 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Mon, 29 Jan 2024 14:55:03 +0100 you wrote:
> In case phydev->irq is modified unconditionally to a valid IRQ, handling
> the IRQ may lead to a nullptr exception if no interrupt handler is
> registered to the phy driver. phy_interrupt calls a
> phy_device->handle_interrupt unconditionally. And interrupts are enabled
> in phy_connect_direct if phydev->irq is not equal to PHY_POLL or
> PHY_MAC_INTERRUPT, so it does not check for a phy driver providing an ISR.
> 
> [...]

Here is the summary with links:
  - [net-next,v5,1/2] net: phy: phy_device: Prevent nullptr exceptions on ISR
    https://git.kernel.org/netdev/net-next/c/61c81872815f
  - [net-next,v5,2/2] net: phy: adin1100: Add interrupt support for link change
    https://git.kernel.org/netdev/net-next/c/08b47dfdd6b8

You are awesome, thank you!