summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/qualcomm
diff options
context:
space:
mode:
authorStefan Wahren <wahrenst@gmx.net>2024-01-28 21:10:46 +0100
committerDavid S. Miller <davem@davemloft.net>2024-01-31 13:38:50 +0000
commit1a10d67ca426f6f5a76fbb81270d4ad1b44d3950 (patch)
treefbf06fbab712474b27da6c2370edb5608f2f1331 /drivers/net/ethernet/qualcomm
parentc494a01abe01fcfcbbcd849023ce06a573963aed (diff)
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/net/ethernet/qualcomm')
-rw-r--r--drivers/net/ethernet/qualcomm/qca_spi.c11
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) {