Re: dev_WARN_ONCE cause gpio-watchdog reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/17/22 23:05, qianfan wrote:
[ ... ]


So I think it's a bug of MUSB, not caused by dev_WARN_ONCE. But I can't check which stop hrtimer.


Correct. Look at the code:

static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep)
{
...
	int             retries = 1000;
...
	while (csr & MUSB_TXCSR_FIFONOTEMPTY) {
		...
		if (dev_WARN_ONCE(musb->controller, retries-- < 1,
                                "Could not flush host TX%d fifo: csr: %04x\n",
                                ep->epnum, csr))
                        return;
                mdelay(1);
	}

This is where the one second comes from. The function is called from
musb_urb_dequeue() which disables interrupts. This forces a hard stall
of the kernel for a full second.

There is nothing we can do about that in the watchdog driver.

Guenter



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux