diff options
| -rw-r--r-- | kernel/irq/chip.c | 2 | ||||
| -rw-r--r-- | kernel/irq/manage.c | 3 | 
2 files changed, 4 insertions, 1 deletions
| diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 6fc89fd93824..5a2ef92c2782 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -265,8 +265,8 @@ int irq_startup(struct irq_desc *desc, bool resend, bool force)  			irq_setup_affinity(desc);  			break;  		case IRQ_STARTUP_MANAGED: +			irq_do_set_affinity(d, aff, false);  			ret = __irq_startup(desc); -			irq_set_affinity_locked(d, aff, false);  			break;  		case IRQ_STARTUP_ABORT:  			return 0; diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index ef89f7246656..4bff6a10ae8e 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -188,6 +188,9 @@ int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask,  	struct irq_chip *chip = irq_data_get_irq_chip(data);  	int ret; +	if (!chip || !chip->irq_set_affinity) +		return -EINVAL; +  	ret = chip->irq_set_affinity(data, mask, force);  	switch (ret) {  	case IRQ_SET_MASK_OK: |