static void vector_setup_etheraddr(struct net_device *dev, char *str)
 {
        u8 addr[ETH_ALEN];
-       char *end;
-       int i;
 
        if (str == NULL)
                goto random;
 
-       for (i = 0; i < 6; i++) {
-               addr[i] = simple_strtoul(str, &end, 16);
-               if ((end == str) ||
-                  ((*end != ':') && (*end != ',') && (*end != '\0'))) {
-                       netdev_err(dev,
-                               "Failed to parse '%s' as an ethernet address\n", str);
-                       goto random;
-               }
-               str = end + 1;
+       if (!mac_pton(str, addr)) {
+               netdev_err(dev,
+                       "Failed to parse '%s' as an ethernet address\n", str);
+               goto random;
        }
        if (is_multicast_ether_addr(addr)) {
                netdev_err(dev,