Skip to content

Commit 55f3628

Browse files
lategoodbyekuba-moo
authored andcommitted
net: vertexcom: mse102x: Fix possible stuck of SPI interrupt
The MSE102x doesn't provide any SPI commands for interrupt handling. So in case the interrupt fired before the driver requests the IRQ, the interrupt will never fire again. In order to fix this always poll for pending packets after opening the interface. Fixes: 2f207cb ("net: vertexcom: Add MSE102x SPI support") Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20250430133043.7722-2-wahrenst@gmx.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 2f0b0c6 commit 55f3628

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/net/ethernet/vertexcom/mse102x.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@ static irqreturn_t mse102x_irq(int irq, void *_mse)
509509
static int mse102x_net_open(struct net_device *ndev)
510510
{
511511
struct mse102x_net *mse = netdev_priv(ndev);
512+
struct mse102x_net_spi *mses = to_mse102x_spi(mse);
512513
int ret;
513514

514515
ret = request_threaded_irq(ndev->irq, NULL, mse102x_irq, IRQF_ONESHOT,
@@ -524,6 +525,13 @@ static int mse102x_net_open(struct net_device *ndev)
524525

525526
netif_carrier_on(ndev);
526527

528+
/* The SPI interrupt can stuck in case of pending packet(s).
529+
* So poll for possible packet(s) to re-arm the interrupt.
530+
*/
531+
mutex_lock(&mses->lock);
532+
mse102x_rx_pkt_spi(mse);
533+
mutex_unlock(&mses->lock);
534+
527535
netif_dbg(mse, ifup, ndev, "network device up\n");
528536

529537
return 0;

0 commit comments

Comments
 (0)