qca_spi: Improve SPI thread creation
authorStefan Wahren <wahrenst@gmx.net>
Sun, 28 Jan 2024 20:10:46 +0000 (21:10 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Jan 2024 13:38:50 +0000 (13:38 +0000)
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>
drivers/net/ethernet/qualcomm/qca_spi.c

index 77bab8bf52031ed30bf7191825c0e505ecc53e3d..fe50c2dd7cc8ef8d374f01c53cb84198f587552c 100644 (file)
@@ -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) {