On 04/07/2023 18:10, Chengfeng Ye wrote: > Hi, Krzysztof > > Thanks for the reply. > >> This interrupt is a threaded interrupt. Therefore the >> s3c2410wdt_keepalive() will be called again from process thread. Are you >> sure there is deadlock? > > Is it really that s3c2410wdt_irq is a threaded interrupt? I could be wrong > but I can > see that the interrupt is registered via the following code. It is the > third argument > of devm_request_irq but not devm_request_threaded_irq or > request_threaded_irq, > as far as I know, it should be an interrupt handler for the interrupt line > wdt_irq > executed under irq context. > > ret = devm_request_irq(dev, wdt_irq, s3c2410wdt_irq, 0, pdev->name, pdev); Yes, you are right. Best regards, Krzysztof