]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - net/core/dev.c
netdev_printk/netif_printk: Remove a superfluous logging colon
[mirror_ubuntu-bionic-kernel.git] / net / core / dev.c
index 83988362805ef1453efb37bfcb3692f59f4edd21..cb9d43be07e7ee7e998c743cbf37ad9200b14c32 100644 (file)
@@ -2647,15 +2647,16 @@ void __skb_get_rxhash(struct sk_buff *skb)
        if (!skb_flow_dissect(skb, &keys))
                return;
 
-       if (keys.ports) {
-               if ((__force u16)keys.port16[1] < (__force u16)keys.port16[0])
-                       swap(keys.port16[0], keys.port16[1]);
+       if (keys.ports)
                skb->l4_rxhash = 1;
-       }
 
        /* get a consistent hash (same value on both flow directions) */
-       if ((__force u32)keys.dst < (__force u32)keys.src)
+       if (((__force u32)keys.dst < (__force u32)keys.src) ||
+           (((__force u32)keys.dst == (__force u32)keys.src) &&
+            ((__force u16)keys.port16[1] < (__force u16)keys.port16[0]))) {
                swap(keys.dst, keys.src);
+               swap(keys.port16[0], keys.port16[1]);
+       }
 
        hash = jhash_3words((__force u32)keys.dst,
                            (__force u32)keys.src,
@@ -6422,22 +6423,30 @@ const char *netdev_drivername(const struct net_device *dev)
        return empty;
 }
 
-int __netdev_printk(const char *level, const struct net_device *dev,
+static int __netdev_printk(const char *level, const struct net_device *dev,
                           struct va_format *vaf)
 {
        int r;
 
-       if (dev && dev->dev.parent)
-               r = dev_printk(level, dev->dev.parent, "%s: %pV",
-                              netdev_name(dev), vaf);
-       else if (dev)
+       if (dev && dev->dev.parent) {
+               char dict[128];
+               size_t dictlen = create_syslog_header(dev->dev.parent,
+                                                     dict, sizeof(dict));
+
+               r = printk_emit(0, level[1] - '0',
+                               dictlen ? dict : NULL, dictlen,
+                               "%s %s %s: %pV",
+                               dev_driver_string(dev->dev.parent),
+                               dev_name(dev->dev.parent),
+                               netdev_name(dev), vaf);
+       } else if (dev) {
                r = printk("%s%s: %pV", level, netdev_name(dev), vaf);
-       else
+       } else {
                r = printk("%s(NULL net_device): %pV", level, vaf);
+       }
 
        return r;
 }
-EXPORT_SYMBOL(__netdev_printk);
 
 int netdev_printk(const char *level, const struct net_device *dev,
                  const char *format, ...)
@@ -6452,6 +6461,7 @@ int netdev_printk(const char *level, const struct net_device *dev,
        vaf.va = &args;
 
        r = __netdev_printk(level, dev, &vaf);
+
        va_end(args);
 
        return r;
@@ -6471,6 +6481,7 @@ int func(const struct net_device *dev, const char *fmt, ...)      \
        vaf.va = &args;                                         \
                                                                \
        r = __netdev_printk(level, dev, &vaf);                  \
+                                                               \
        va_end(args);                                           \
                                                                \
        return r;                                               \