diff options
author | Stefan Wahren <wahrenst@gmx.net> | 2024-01-28 23:10:46 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-01-31 16:38:50 +0300 |
commit | 1a10d67ca426f6f5a76fbb81270d4ad1b44d3950 (patch) | |
tree | fbf06fbab712474b27da6c2370edb5608f2f1331 /drivers | |
parent | c494a01abe01fcfcbbcd849023ce06a573963aed (diff) | |
download | linux-1a10d67ca426f6f5a76fbb81270d4ad1b44d3950.tar.xz |
qca_spi: Improve SPI thread creation
Directly storing the result of kthread_run within the private
driver data makes it harder to identify if the pointer has a
running thread or not. So better use a local variable for
the result check and we don't have to care about error pointer
in the rest of the code.
Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/qualcomm/qca_spi.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c index 77bab8bf5203..fe50c2dd7cc8 100644 --- a/drivers/net/ethernet/qualcomm/qca_spi.c +++ b/drivers/net/ethernet/qualcomm/qca_spi.c @@ -687,6 +687,7 @@ static int qcaspi_netdev_open(struct net_device *dev) { struct qcaspi *qca = netdev_priv(dev); + struct task_struct *thread; int ret = 0; if (!qca) @@ -697,15 +698,17 @@ qcaspi_netdev_open(struct net_device *dev) qca->sync = QCASPI_SYNC_UNKNOWN; qcafrm_fsm_init_spi(&qca->frm_handle); - qca->spi_thread = kthread_run((void *)qcaspi_spi_thread, - qca, "%s", dev->name); + thread = kthread_run((void *)qcaspi_spi_thread, + qca, "%s", dev->name); - if (IS_ERR(qca->spi_thread)) { + if (IS_ERR(thread)) { netdev_err(dev, "%s: unable to start kernel thread.\n", QCASPI_DRV_NAME); - return PTR_ERR(qca->spi_thread); + return PTR_ERR(thread); } + qca->spi_thread = thread; + ret = request_irq(qca->spi_dev->irq, qcaspi_intr_handler, 0, dev->name, qca); if (ret) { |