I've tried to use ndo_tx_timeout. Actually it works. But it takes too long time after TX failure and before watchdog fires.
As I understand ndo_tx_timeout will be called only if tx queue is stopped. But ks8851 driver stops queue only after it's full. So one have to send a lot of data to reset device (~6KiB). But I need to recover as fast as possible. Could you suggest how to achieve that? ________________________________________ From: David Miller <[email protected]> Sent: Thursday, April 3, 2014 9:32 PM To: Nekludov, Max Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected] Subject: Re: ks8851: reset on RX failure and TX timeout From: "Nekludov, Max" <[email protected]> Date: Wed, 2 Apr 2014 06:31:23 +0000 > Electromagnetic noise can make device to not send TX interrupts. > As result outgoing queue will be suspended forever. > Also EMI can raise RX interrupt with zero value in KS_RXFC register. > > Signed-off-by: Max Nekludov <[email protected]> We have a watchdog facility for TX timeouts, don't reinvent the wheel. Implement ->ndo_tx_timeout() and set dev->watchdog_timeo appropriately. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

