Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0899fc9f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "irq: smp_affinity: Initialize work struct only once"

parents dca34e2b ee7ee8aa
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -379,6 +379,7 @@ extern void irq_cpu_online(void);
extern void irq_cpu_offline(void);
extern int irq_set_affinity_locked(struct irq_data *data,
				   const struct cpumask *cpumask, bool force);
extern void irq_affinity_notify(struct work_struct *work);

#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ)
void irq_move_irq(struct irq_data *data);
+1 −0
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
	desc_smp_init(desc, node);
#ifdef CONFIG_SMP
	INIT_LIST_HEAD(&desc->affinity_notify);
	INIT_WORK(&desc->affinity_work, irq_affinity_notify);
#endif
}

+1 −3
Original line number Diff line number Diff line
@@ -216,7 +216,7 @@ int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m)
}
EXPORT_SYMBOL_GPL(irq_set_affinity_hint);

static void irq_affinity_notify(struct work_struct *work)
void irq_affinity_notify(struct work_struct *work)
{
	struct irq_desc *desc =
			container_of(work, struct irq_desc, affinity_work);
@@ -343,8 +343,6 @@ setup_affinity(unsigned int irq, struct irq_desc *desc, struct cpumask *mask)
		if (cpumask_intersects(mask, nodemask))
			cpumask_and(mask, mask, nodemask);
	}
	INIT_LIST_HEAD(&desc->affinity_notify);
	INIT_WORK(&desc->affinity_work, irq_affinity_notify);
	irq_do_set_affinity(&desc->irq_data, mask, false);
	return 0;
}