Showing error 585

User: Jiri Slaby
Error type: Double Lock
Error type description: Some lock is locked twice unintentionally in a sequence
File location: drivers/usb/host/ohci-hcd.c
Line in file: 928
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:59 UTC


Source:

 898        free_irq(hcd->irq, hcd);
 899        hcd->irq = -1;
 900
 901        if (quirk_zfmicro(ohci))
 902                del_timer(&ohci->unlink_watchdog);
 903        if (quirk_amdiso(ohci))
 904                amd_iso_dev_put();
 905
 906        remove_debug_files (ohci);
 907        ohci_mem_cleanup (ohci);
 908        if (ohci->hcca) {
 909                dma_free_coherent (hcd->self.controller,
 910                                sizeof *ohci->hcca,
 911                                ohci->hcca, ohci->hcca_dma);
 912                ohci->hcca = NULL;
 913                ohci->hcca_dma = 0;
 914        }
 915}
 916
 917/*-------------------------------------------------------------------------*/
 918
 919#if defined(CONFIG_PM) || defined(CONFIG_PCI)
 920
 921/* must not be called from interrupt context */
 922static int ohci_restart (struct ohci_hcd *ohci)
 923{
 924        int temp;
 925        int i;
 926        struct urb_priv *priv;
 927
 928        spin_lock_irq(&ohci->lock);
 929        disable (ohci);
 930
 931        /* Recycle any "live" eds/tds (and urbs). */
 932        if (!list_empty (&ohci->pending))
 933                ohci_dbg(ohci, "abort schedule...\n");
 934        list_for_each_entry (priv, &ohci->pending, pending) {
 935                struct urb        *urb = priv->td[0]->urb;
 936                struct ed        *ed = priv->ed;
 937
 938                switch (ed->state) {
Show full sources