File tree Expand file tree Collapse file tree 1 file changed +16
-23
lines changed Expand file tree Collapse file tree 1 file changed +16
-23
lines changed Original file line number Diff line number Diff line change @@ -629,32 +629,25 @@ int irq_setup_affinity(struct irq_desc *desc)
629629 */
630630int irq_set_vcpu_affinity (unsigned int irq , void * vcpu_info )
631631{
632- unsigned long flags ;
633- struct irq_desc * desc = irq_get_desc_lock (irq , & flags , 0 );
634- struct irq_data * data ;
635- struct irq_chip * chip ;
636- int ret = - ENOSYS ;
637-
638- if (!desc )
639- return - EINVAL ;
632+ scoped_irqdesc_get_and_lock (irq , 0 ) {
633+ struct irq_desc * desc = scoped_irqdesc ;
634+ struct irq_data * data ;
635+ struct irq_chip * chip ;
640636
641- data = irq_desc_get_irq_data (desc );
642- do {
643- chip = irq_data_get_irq_chip (data );
644- if (chip && chip -> irq_set_vcpu_affinity )
645- break ;
646- #ifdef CONFIG_IRQ_DOMAIN_HIERARCHY
647- data = data -> parent_data ;
648- #else
649- data = NULL ;
650- #endif
651- } while (data );
637+ data = irq_desc_get_irq_data (desc );
638+ do {
639+ chip = irq_data_get_irq_chip (data );
640+ if (chip && chip -> irq_set_vcpu_affinity )
641+ break ;
652642
653- if (data )
654- ret = chip -> irq_set_vcpu_affinity (data , vcpu_info );
655- irq_put_desc_unlock (desc , flags );
643+ data = irqd_get_parent_data (data );
644+ } while (data );
656645
657- return ret ;
646+ if (!data )
647+ return - ENOSYS ;
648+ return chip -> irq_set_vcpu_affinity (data , vcpu_info );
649+ }
650+ return - EINVAL ;
658651}
659652EXPORT_SYMBOL_GPL (irq_set_vcpu_affinity );
660653
You can’t perform that action at this time.
0 commit comments