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: | net/irda/irqueue.c |
Line in file: | 636 |
Project: | Linux Kernel |
Project version: | 2.6.28 |
Tools: |
Stanse
(1.2)
|
Entered: | 2012-05-29 20:11:37 UTC |
606 } 607 } 608 entry = entry->q_next; 609 } while ( entry != hashbin->hb_queue[ bin ] ); 610 } 611 612 /* 613 * If entry was found, dequeue it 614 */ 615 if ( found ) { 616 dequeue_general( (irda_queue_t**) &hashbin->hb_queue[ bin ], 617 (irda_queue_t*) entry ); 618 hashbin->hb_size--; 619 620 /* 621 * Check if this item is the currently selected item, and in 622 * that case we must reset hb_current 623 */ 624 if ( entry == hashbin->hb_current) 625 hashbin->hb_current = NULL; 626 } 627 628 /* Release lock */ 629 if ( hashbin->hb_type & HB_LOCK ) { 630 spin_unlock_irqrestore(&hashbin->hb_spinlock, flags); 631 } /* Default is no-lock */ 632 633 634 /* Return */ 635 if ( found ) 636 return entry; 637 else 638 return NULL; 639 640} 641EXPORT_SYMBOL(hashbin_remove); 642 643/* 644 * Function hashbin_remove_this (hashbin, entry) 645 * 646 * Remove entry with the given name