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

Commit bc5fdf9f authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86: io_apic: Remove the now unused sparse_irq arch_* functions

parent fbc6bff0
Loading
Loading
Loading
Loading
+0 −120
Original line number Original line Diff line number Diff line
@@ -212,126 +212,6 @@ static void free_irq_cfg(unsigned int at, struct irq_cfg *cfg)
	kfree(cfg);
	kfree(cfg);
}
}


#if 0
int arch_init_chip_data(struct irq_desc *desc, int node)
{
	struct irq_cfg *cfg;

	cfg = get_irq_desc_chip_data(desc);
	if (!cfg) {
		cfg = alloc_irq_cfg(desc->irq, node);
		desc->chip_data = cfg;
		if (!cfg) {
			printk(KERN_ERR "can not alloc irq_cfg\n");
			BUG_ON(1);
		}
	}

	return 0;
}

/* for move_irq_desc */
static void
init_copy_irq_2_pin(struct irq_cfg *old_cfg, struct irq_cfg *cfg, int node)
{
	struct irq_pin_list *old_entry, *head, *tail, *entry;

	cfg->irq_2_pin = NULL;
	old_entry = old_cfg->irq_2_pin;
	if (!old_entry)
		return;

	entry = alloc_irq_pin_list(node);
	if (!entry)
		return;

	entry->apic	= old_entry->apic;
	entry->pin	= old_entry->pin;
	head		= entry;
	tail		= entry;
	old_entry	= old_entry->next;
	while (old_entry) {
		entry = alloc_irq_pin_list(node);
		if (!entry) {
			entry = head;
			while (entry) {
				head = entry->next;
				kfree(entry);
				entry = head;
			}
			/* still use the old one */
			return;
		}
		entry->apic	= old_entry->apic;
		entry->pin	= old_entry->pin;
		tail->next	= entry;
		tail		= entry;
		old_entry	= old_entry->next;
	}

	tail->next = NULL;
	cfg->irq_2_pin = head;
}

static void free_irq_2_pin(struct irq_cfg *old_cfg, struct irq_cfg *cfg)
{
	struct irq_pin_list *entry, *next;

	if (old_cfg->irq_2_pin == cfg->irq_2_pin)
		return;

	entry = old_cfg->irq_2_pin;

	while (entry) {
		next = entry->next;
		kfree(entry);
		entry = next;
	}
	old_cfg->irq_2_pin = NULL;
}

void arch_init_copy_chip_data(struct irq_desc *old_desc,
				 struct irq_desc *desc, int node)
{
	struct irq_cfg *cfg;
	struct irq_cfg *old_cfg;

	cfg = alloc_irq_cfg(desc->irq, node);

	if (!cfg)
		return;

	desc->chip_data = cfg;

	old_cfg = old_desc->chip_data;

	cfg->vector = old_cfg->vector;
	cfg->move_in_progress = old_cfg->move_in_progress;
	cpumask_copy(cfg->domain, old_cfg->domain);
	cpumask_copy(cfg->old_domain, old_cfg->old_domain);

	init_copy_irq_2_pin(old_cfg, cfg, node);
}

void arch_free_chip_data(struct irq_desc *old_desc, struct irq_desc *desc)
{
	struct irq_cfg *old_cfg, *cfg;

	old_cfg = get_irq_desc_chip_data(old_desc);
	cfg = get_irq_desc_chip_data(desc);

	if (old_cfg == cfg)
		return;

	if (old_cfg) {
		free_irq_2_pin(old_cfg, cfg);
		free_irq_cfg(old_desc->irq, old_cfg);
		old_desc->chip_data = NULL;
	}
}
/* end for move_irq_desc */
#endif

#else
#else


struct irq_cfg *irq_cfg(unsigned int irq)
struct irq_cfg *irq_cfg(unsigned int irq)