]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: core: move mac_pton() to lib/net_utils.c
authorAndy Shevchenko <andy.shevchenko@gmail.com>
Tue, 4 Jun 2013 16:46:26 +0000 (19:46 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Jun 2013 19:00:27 +0000 (12:00 -0700)
Since we have at least one user of this function outside of CONFIG_NET
scope, we have to provide this function independently. The proposed
solution is to move it under lib/net_utils.c with corresponding
configuration variable and select wherever it is needed.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reported-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/Kconfig
drivers/net/netconsole.c
include/linux/if_ether.h
include/linux/kernel.h
lib/Kconfig
lib/Makefile
lib/net_utils.c [new file with mode: 0644]
net/Kconfig
net/core/netpoll.c
net/core/utils.c

index c002d8660e3053b056220018f5b25b81eccaade5..80889d5f95f5f1d643533fe7cd6b99e4171fb0d2 100644 (file)
@@ -480,6 +480,7 @@ config BMP085_SPI
 
 config PCH_PHUB
        tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
+       select GENERIC_NET_UTILS
        depends on PCI
        help
          This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
index 59ac143dec2576a697d9f383ef4d5d7372eef93c..4f777ed9b089f2def76c4fb6e85ae68b71653877 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/slab.h>
 #include <linux/console.h>
 #include <linux/moduleparam.h>
+#include <linux/kernel.h>
 #include <linux/string.h>
 #include <linux/netpoll.h>
 #include <linux/inet.h>
index 12b4d55a02af195674e5369c0b35d7b37258d9f5..d5569734f6724d6194497fe9842e9aac56ef0b09 100644 (file)
@@ -30,7 +30,6 @@ static inline struct ethhdr *eth_hdr(const struct sk_buff *skb)
 
 int eth_header_parse(const struct sk_buff *skb, unsigned char *haddr);
 
-int mac_pton(const char *s, u8 *mac);
 extern ssize_t sysfs_format_mac(char *buf, const unsigned char *addr, int len);
 
 #endif /* _LINUX_IF_ETHER_H */
index e9ef6d6b51d5b07f6471e96dc20efa5685416220..3afb969441d15582969917b429e3e1a2b58fbb70 100644 (file)
@@ -450,6 +450,8 @@ static inline char * __deprecated pack_hex_byte(char *buf, u8 byte)
 extern int hex_to_bin(char ch);
 extern int __must_check hex2bin(u8 *dst, const char *src, size_t count);
 
+int mac_pton(const char *s, u8 *mac);
+
 /*
  * General tracing related utility functions - trace_printk(),
  * tracing_on/tracing_off and tracing_start()/tracing_stop
index fe01d418b09ae4d13a15b59039ef27602d1ad0f3..d246a3bbd6eff291d4f0ea3f43566c5b0da9685b 100644 (file)
@@ -22,6 +22,9 @@ config GENERIC_STRNCPY_FROM_USER
 config GENERIC_STRNLEN_USER
        bool
 
+config GENERIC_NET_UTILS
+       bool
+
 config GENERIC_FIND_FIRST_BIT
        bool
 
index c55a037a354eb9ffbd8f492f8e07c92e3aa0b941..22f0f4e8a9e1bd9a1dcf4b8eb56012d53cacbbef 100644 (file)
@@ -137,6 +137,8 @@ obj-$(CONFIG_DDR) += jedec_ddr_data.o
 obj-$(CONFIG_GENERIC_STRNCPY_FROM_USER) += strncpy_from_user.o
 obj-$(CONFIG_GENERIC_STRNLEN_USER) += strnlen_user.o
 
+obj-$(CONFIG_GENERIC_NET_UTILS) += net_utils.o
+
 obj-$(CONFIG_STMP_DEVICE) += stmp_device.o
 
 libfdt_files = fdt.o fdt_ro.o fdt_wip.o fdt_rw.o fdt_sw.o fdt_strerror.o
diff --git a/lib/net_utils.c b/lib/net_utils.c
new file mode 100644 (file)
index 0000000..2e3c52c
--- /dev/null
@@ -0,0 +1,26 @@
+#include <linux/string.h>
+#include <linux/if_ether.h>
+#include <linux/ctype.h>
+#include <linux/kernel.h>
+
+int mac_pton(const char *s, u8 *mac)
+{
+       int i;
+
+       /* XX:XX:XX:XX:XX:XX */
+       if (strlen(s) < 3 * ETH_ALEN - 1)
+               return 0;
+
+       /* Don't dirty result unless string is valid MAC. */
+       for (i = 0; i < ETH_ALEN; i++) {
+               if (!isxdigit(s[i * 3]) || !isxdigit(s[i * 3 + 1]))
+                       return 0;
+               if (i != ETH_ALEN - 1 && s[i * 3 + 2] != ':')
+                       return 0;
+       }
+       for (i = 0; i < ETH_ALEN; i++) {
+               mac[i] = (hex_to_bin(s[i * 3]) << 4) | hex_to_bin(s[i * 3 + 1]);
+       }
+       return 1;
+}
+EXPORT_SYMBOL(mac_pton);
index 2ddc9046868e7a19d06841054696773242099ccf..6dfe1c636a8050c0346acea359059780e4986f12 100644 (file)
@@ -5,6 +5,7 @@
 menuconfig NET
        bool "Networking support"
        select NLATTR
+       select GENERIC_NET_UTILS
        ---help---
          Unless you really know what you are doing, you should say Y here.
          The reason is that some programs need kernel networking support even
index cec074be8c4378b56a01889165d55cc282808208..35a9f0804b6f971a3982e2118a20369f80851493 100644 (file)
@@ -12,6 +12,7 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/moduleparam.h>
+#include <linux/kernel.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/string.h>
index 3c7f5b51b979c88a3dc1d0bc9cf6c44f2e74d182..aa88e23fc87aa44f95f8794cf234846d8d06d21d 100644 (file)
@@ -338,25 +338,3 @@ void inet_proto_csum_replace16(__sum16 *sum, struct sk_buff *skb,
                                  csum_unfold(*sum)));
 }
 EXPORT_SYMBOL(inet_proto_csum_replace16);
-
-int mac_pton(const char *s, u8 *mac)
-{
-       int i;
-
-       /* XX:XX:XX:XX:XX:XX */
-       if (strlen(s) < 3 * ETH_ALEN - 1)
-               return 0;
-
-       /* Don't dirty result unless string is valid MAC. */
-       for (i = 0; i < ETH_ALEN; i++) {
-               if (!isxdigit(s[i * 3]) || !isxdigit(s[i * 3 + 1]))
-                       return 0;
-               if (i != ETH_ALEN - 1 && s[i * 3 + 2] != ':')
-                       return 0;
-       }
-       for (i = 0; i < ETH_ALEN; i++) {
-               mac[i] = (hex_to_bin(s[i * 3]) << 4) | hex_to_bin(s[i * 3 + 1]);
-       }
-       return 1;
-}
-EXPORT_SYMBOL(mac_pton);