tasklet: Remove tasklet_kill_immediate
authorDavidlohr Bueso <dave@stgolabs.net>
Sat, 6 Mar 2021 21:36:58 +0000 (13:36 -0800)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 16 Mar 2021 14:06:31 +0000 (15:06 +0100)
Ever since RCU was converted to softirq, it has no users.

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Paul E. McKenney <paulmck@kernel.org>
Link: https://lore.kernel.org/r/20210306213658.12862-1-dave@stgolabs.net
include/linux/interrupt.h
kernel/softirq.c

index 76f1161..2b98156 100644 (file)
@@ -716,7 +716,6 @@ static inline void tasklet_enable(struct tasklet_struct *t)
 }
 
 extern void tasklet_kill(struct tasklet_struct *t);
-extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu);
 extern void tasklet_init(struct tasklet_struct *t,
                         void (*func)(unsigned long), unsigned long data);
 extern void tasklet_setup(struct tasklet_struct *t,
index 9908ec4..8b44ab9 100644 (file)
@@ -658,38 +658,6 @@ static void run_ksoftirqd(unsigned int cpu)
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
-/*
- * tasklet_kill_immediate is called to remove a tasklet which can already be
- * scheduled for execution on @cpu.
- *
- * Unlike tasklet_kill, this function removes the tasklet
- * _immediately_, even if the tasklet is in TASKLET_STATE_SCHED state.
- *
- * When this function is called, @cpu must be in the CPU_DEAD state.
- */
-void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu)
-{
-       struct tasklet_struct **i;
-
-       BUG_ON(cpu_online(cpu));
-       BUG_ON(test_bit(TASKLET_STATE_RUN, &t->state));
-
-       if (!test_bit(TASKLET_STATE_SCHED, &t->state))
-               return;
-
-       /* CPU is dead, so no lock needed. */
-       for (i = &per_cpu(tasklet_vec, cpu).head; *i; i = &(*i)->next) {
-               if (*i == t) {
-                       *i = t->next;
-                       /* If this was the tail element, move the tail ptr */
-                       if (*i == NULL)
-                               per_cpu(tasklet_vec, cpu).tail = i;
-                       return;
-               }
-       }
-       BUG();
-}
-
 static int takeover_tasklets(unsigned int cpu)
 {
        /* CPU is dead, so no lock needed. */