Alan, I trace into it and found the ohci->hcca->done_head is 0 when handling OHCI_INTR_WDH interrupt, that will cause the mouse hang. I do not know why ohci->hcca->done_head will be 0 when ohci_irq() is triggered. Can you give me some explanation for that? Because from the 2.6.22 kernel source, I found that when entering the ohci_irq() function, the code will justify if the ohci->hcca->done_head is 0. The 2.6.27 kernel does not have that part code. So right now , I change the ohci_irq() code as below referring the 2.6.22 kernel source: --ints = ohci_readl(ohci, ®s->intrstatus); ++if((ohci->hcca->done_head!=0) ++ && !(hc32_to_cpup(ohci, &ohci->hcca->done_head) ++ & 0x0a)){ ++ int = OHCI_INTR_WDH; ++else{ ++ ints = ohci_readl(ohci, ®s->intrstatus); ++ ints &= 0xfffffffd; ++ } Using the ints&0xfffffffd can make the ohci_irq omit the OHCI_INTR_WDH interrupt if the ohci->hcca->done_head is 0. Now the test result it fine. Thanks, Frank -----Original Message----- From: Huang, FrankR Sent: Tuesday, December 29, 2009 2:45 PM To: 'Alan Stern' Cc: USB list Subject: RE: A question about ohci_irq() Alan, In the dl_done_list() function in /drivers/usb/host/ohci-q.c file, Before the moment of mouse hang, the dl_reverse_done_list(ohci) function return value is 0. That will give td a 0 value. After that, the mouse hang. Why the 0 value will be got from the dl_reverse_done_list? Thanks, Frank -----Original Message----- From: Alan Stern [mailto:stern@xxxxxxxxxxxxxxxxxxx] Sent: Tuesday, December 29, 2009 11:41 AM To: Huang, FrankR Cc: USB list Subject: RE: A question about ohci_irq() On Mon, 28 Dec 2009, Huang, FrankR wrote: > Alan, > > Thanks.I know the reason why the two irq functions are triggered > at the same time. > Below is dmesg result. > I insert a USB mouse and USB disk to the ports. > And the delay posision for ohci_irq() is : > ints = ohci_readl(ohci, ®s->intrstatus); > + udelay(100); > When the mouse is hang, the ohci_irq() has no response. What do you mean by "has no response"? Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html