usbnet: ratelimit kevent may have been dropped warnings
when something goes wrong, a flood of these messages can be generated by usbnet (thousands per second). This doesn't generally *help* the condition so this patch ratelimits the rate of their generation. There's an underlying problem in usbnet's kevent deferral mechanism which needs fixing, specifically that events *can* get dropped and not handled. This patch doesn't address this, but just mitigates fallout caused by the current implemention. Signed-off-by: Steve Glendinning <steve.glendinning@shawell.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
60713a0ca7
commit
9532021da6
|
@ -359,10 +359,12 @@ static enum skb_state defer_bh(struct usbnet *dev, struct sk_buff *skb,
|
|||
void usbnet_defer_kevent (struct usbnet *dev, int work)
|
||||
{
|
||||
set_bit (work, &dev->flags);
|
||||
if (!schedule_work (&dev->kevent))
|
||||
netdev_err(dev->net, "kevent %d may have been dropped\n", work);
|
||||
else
|
||||
if (!schedule_work (&dev->kevent)) {
|
||||
if (net_ratelimit())
|
||||
netdev_err(dev->net, "kevent %d may have been dropped\n", work);
|
||||
} else {
|
||||
netdev_dbg(dev->net, "kevent %d scheduled\n", work);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usbnet_defer_kevent);
|
||||
|
||||
|
|
Loading…
Reference in a new issue