User: | Jiri Slaby |
Error type: | Leaving function in locked state |
Error type description: | Some lock is not unlocked on all paths of a function, so it is leaked |
File location: | arch/x86/kernel/io_apic.c |
Line in file: | 1030 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2012-05-21 20:30:05 UTC |
1000 } 1001 1002#ifdef CONFIG_X86_32 1003 /* 1004 * PCI IRQ command line redirection. Yes, limits are hardcoded. 1005 */ 1006 if ((pin >= 16) && (pin <= 23)) { 1007 if (pirq_entries[pin-16] != -1) { 1008 if (!pirq_entries[pin-16]) { 1009 apic_printk(APIC_VERBOSE, KERN_DEBUG 1010 "disabling PIRQ%d\n", pin-16); 1011 } else { 1012 irq = pirq_entries[pin-16]; 1013 apic_printk(APIC_VERBOSE, KERN_DEBUG 1014 "using PIRQ%d -> IRQ %d\n", 1015 pin-16, irq); 1016 } 1017 } 1018 } 1019#endif 1020 1021 return irq; 1022} 1023 1024void lock_vector_lock(void) 1025{ 1026 /* Used to the online set of cpus does not change 1027 * during assign_irq_vector. 1028 */ 1029 spin_lock(&vector_lock); 1030} 1031 1032void unlock_vector_lock(void) 1033{ 1034 spin_unlock(&vector_lock); 1035} 1036 1037static int __assign_irq_vector(int irq, cpumask_t mask) 1038{ 1039 /* 1040 * NOTE! The local APIC isn't very good at handling