]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net: ethernet: fs_enet: only protect the .restart() call in .adjust_link
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Wed, 4 Sep 2024 17:18:17 +0000 (19:18 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Sep 2024 09:29:04 +0000 (10:29 +0100)
commitaa3672be731d473f65619ad198664a90771ab3d5
tree13a7faaa82e1315b26d26293d506c3020507503a
parent96bf0c4e9f485e286fef7c6677f16f37e7a7ff7c
net: ethernet: fs_enet: only protect the .restart() call in .adjust_link

When .adjust_link() gets called, it runs in thread context, with the
phydev->lock held. We only need to protect the fep->fecp/fccp/sccp
register that are accessed within the .restart() function from
concurrent access from the interrupts.

These registers are being protected by the fep->lock spinlock, so we can
move the spinlock protection around the .restart() call instead of the
entire adjust_link() call. By doing so, we can simplify further the
.adjust_link() callback and avoid the intermediate helper.

Suggested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c