net: update netdev_rx_csum_fault() print dump only once
Printing this stack dump multiple times does not provide additional useful information, and consumes time in the data path. Printing once is sufficient. Changes v2: Format indentation properly Signed-off-by: Tanner Love <tannerlove@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Acked-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a358f40600
commit
127d7355ab
@ -148,6 +148,7 @@
|
|||||||
#include <net/devlink.h>
|
#include <net/devlink.h>
|
||||||
#include <linux/pm_runtime.h>
|
#include <linux/pm_runtime.h>
|
||||||
#include <linux/prandom.h>
|
#include <linux/prandom.h>
|
||||||
|
#include <linux/once_lite.h>
|
||||||
|
|
||||||
#include "net-sysfs.h"
|
#include "net-sysfs.h"
|
||||||
|
|
||||||
@ -3487,13 +3488,16 @@ EXPORT_SYMBOL(__skb_gso_segment);
|
|||||||
|
|
||||||
/* Take action when hardware reception checksum errors are detected. */
|
/* Take action when hardware reception checksum errors are detected. */
|
||||||
#ifdef CONFIG_BUG
|
#ifdef CONFIG_BUG
|
||||||
|
static void do_netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>");
|
||||||
|
skb_dump(KERN_ERR, skb, true);
|
||||||
|
dump_stack();
|
||||||
|
}
|
||||||
|
|
||||||
void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
|
void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
if (net_ratelimit()) {
|
DO_ONCE_LITE(do_netdev_rx_csum_fault, dev, skb);
|
||||||
pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>");
|
|
||||||
skb_dump(KERN_ERR, skb, true);
|
|
||||||
dump_stack();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(netdev_rx_csum_fault);
|
EXPORT_SYMBOL(netdev_rx_csum_fault);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user