Centos-kernel-stream-9/net/802
Desnes Nunes 30247fa579 treewide: Convert del_timer*() to timer_shutdown*()
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2190250
Upstream Status: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=292a089d78d3e2f7944e60bb897c977785a321e3
Conflicts:
* Avoiding commit <d87d44f7ab35> ("ARM: omap1: move CF chipselect setup to
  board file") and commit <df99e7bbbec3> ("ARM: omap1: use
  pci_remap_iospace() for omap_cf") with their ARM series. Also, this
  considers the fixes on i40e_main.c that have been partially applied
  through RHEL commit <3731942e6257>.

commit 292a089d78d3e2f7944e60bb897c977785a321e3
Author: "Steven Rostedt (Google)" <rostedt@goodmis.org>
Date: Tue, 20 Dec 2022 13:45:19 -0500

  Due to several bugs caused by timers being re-armed after they are
  shutdown and just before they are freed, a new state of timers was added
  called "shutdown".  After a timer is set to this state, then it can no
  longer be re-armed.

  The following script was run to find all the trivial locations where
  del_timer() or del_timer_sync() is called in the same function that the
  object holding the timer is freed.  It also ignores any locations where
  the timer->function is modified between the del_timer*() and the free(),
  as that is not considered a "trivial" case.

  This was created by using a coccinelle script and the following
  commands:

      $ cat timer.cocci
      @@
      expression ptr, slab;
      identifier timer, rfield;
      @@
      (
      -       del_timer(&ptr->timer);
      +       timer_shutdown(&ptr->timer);
      |
      -       del_timer_sync(&ptr->timer);
      +       timer_shutdown_sync(&ptr->timer);
      )
        ... when strict
            when != ptr->timer
      (
              kfree_rcu(ptr, rfield);
      |
              kmem_cache_free(slab, ptr);
      |
              kfree(ptr);
      )

      $ spatch timer.cocci . > /tmp/t.patch
      $ patch -p1 < /tmp/t.patch

  Link: https://lore.kernel.org/lkml/20221123201306.823305113@linutronix.de/
  Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
  Acked-by: Pavel Machek <pavel@ucw.cz> [ LED ]
  Acked-by: Kalle Valo <kvalo@kernel.org> [ wireless ]
  Acked-by: Paolo Abeni <pabeni@redhat.com> [ networking ]
  Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Signed-off-by: Desnes Nunes <desnesn@redhat.com>
2023-05-08 15:02:53 -03:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
fddi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
garp.c treewide: Convert del_timer*() to timer_shutdown*() 2023-05-08 15:02:53 -03:00
hippi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mrp.c treewide: Convert del_timer*() to timer_shutdown*() 2023-05-08 15:02:53 -03:00
p8022.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
p8023.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
psnap.c net: 802: psnap.c: Use built-in RCU list checking 2020-02-24 13:02:53 -08:00
stp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00