Flush worker earlier, resolving the last to-do item.
authornorly <ny-git@enpas.org>
Mon, 10 Jun 2019 15:32:04 +0000 (17:32 +0200)
committernorly <ny-git@enpas.org>
Mon, 10 Jun 2019 15:32:04 +0000 (17:32 +0200)
module/elmcan.c
readme.rst

index 2fd861d54d1f5c248b0404e490abe4922102ac66..33b0add55e8adb2dc3ed28c6fee21a5654a55bff 100644 (file)
@@ -1215,14 +1215,14 @@ static void elmcan_ldisc_close(struct tty_struct *tty)
 
        /* At this point, all ldisc calls to us have become no-ops. */
 
+       flush_work(&elm->tx_work);
+
        /* Mark channel as dead */
        spin_lock_bh(&elm->lock);
        tty->disc_data = NULL;
        elm->tty = NULL;
        spin_unlock_bh(&elm->lock);
 
-       flush_work(&elm->tx_work);
-
        netdev_info(elm->dev, "elmcan off %s.\n", tty->name);
 
        kfree(elm->txbuf);
index a283e0af7ee148b72a72dc58821ffb0796c3e1fd..bfaf89b96307fe82aa7af322fb0fb9de2660656e 100644 (file)
@@ -341,5 +341,4 @@ termination resistors on its PCB and try removing them.
 To Do list for future development
 ----------------------------------
 
-- flushing of ``tx_work`` is too late in ``ldisc_close()``
-  (is this still the case?)
+- None currently