diff options
author | Andy Shevchenko <andy.shevchenko@gmail.com> | 2013-09-03 08:13:43 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-09-04 14:41:55 -0400 |
commit | 8390f81482e3bbf756dce3a5121f164140fd0412 (patch) | |
tree | 52919d1889dd3a9ba9a495e04bbed40a35cd082f /drivers/atm | |
parent | 0cf915809ce775cba3f08de5df1fb89bdbd95a28 (diff) |
atm: nicstar: re-use native mac_pton() helper
There is a nice helper to parse MAC. Let's use it and remove custom
implementation.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/atm')
-rw-r--r-- | drivers/atm/nicstar.c | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c index 6587dc295eb0..409502a78e7e 100644 --- a/drivers/atm/nicstar.c +++ b/drivers/atm/nicstar.c | |||
@@ -153,7 +153,6 @@ static int ns_ioctl(struct atm_dev *dev, unsigned int cmd, void __user * arg); | |||
153 | static void which_list(ns_dev * card, struct sk_buff *skb); | 153 | static void which_list(ns_dev * card, struct sk_buff *skb); |
154 | #endif | 154 | #endif |
155 | static void ns_poll(unsigned long arg); | 155 | static void ns_poll(unsigned long arg); |
156 | static int ns_parse_mac(char *mac, unsigned char *esi); | ||
157 | static void ns_phy_put(struct atm_dev *dev, unsigned char value, | 156 | static void ns_phy_put(struct atm_dev *dev, unsigned char value, |
158 | unsigned long addr); | 157 | unsigned long addr); |
159 | static unsigned char ns_phy_get(struct atm_dev *dev, unsigned long addr); | 158 | static unsigned char ns_phy_get(struct atm_dev *dev, unsigned long addr); |
@@ -779,7 +778,7 @@ static int ns_init_card(int i, struct pci_dev *pcidev) | |||
779 | return error; | 778 | return error; |
780 | } | 779 | } |
781 | 780 | ||
782 | if (ns_parse_mac(mac[i], card->atmdev->esi)) { | 781 | if (mac[i] == NULL || mac_pton(mac[i], card->atmdev->esi)) { |
783 | nicstar_read_eprom(card->membase, NICSTAR_EPROM_MAC_ADDR_OFFSET, | 782 | nicstar_read_eprom(card->membase, NICSTAR_EPROM_MAC_ADDR_OFFSET, |
784 | card->atmdev->esi, 6); | 783 | card->atmdev->esi, 6); |
785 | if (memcmp(card->atmdev->esi, "\x00\x00\x00\x00\x00\x00", 6) == | 784 | if (memcmp(card->atmdev->esi, "\x00\x00\x00\x00\x00\x00", 6) == |
@@ -2802,29 +2801,6 @@ static void ns_poll(unsigned long arg) | |||
2802 | PRINTK("nicstar: Leaving ns_poll().\n"); | 2801 | PRINTK("nicstar: Leaving ns_poll().\n"); |
2803 | } | 2802 | } |
2804 | 2803 | ||
2805 | static int ns_parse_mac(char *mac, unsigned char *esi) | ||
2806 | { | ||
2807 | int i, j; | ||
2808 | short byte1, byte0; | ||
2809 | |||
2810 | if (mac == NULL || esi == NULL) | ||
2811 | return -1; | ||
2812 | j = 0; | ||
2813 | for (i = 0; i < 6; i++) { | ||
2814 | if ((byte1 = hex_to_bin(mac[j++])) < 0) | ||
2815 | return -1; | ||
2816 | if ((byte0 = hex_to_bin(mac[j++])) < 0) | ||
2817 | return -1; | ||
2818 | esi[i] = (unsigned char)(byte1 * 16 + byte0); | ||
2819 | if (i < 5) { | ||
2820 | if (mac[j++] != ':') | ||
2821 | return -1; | ||
2822 | } | ||
2823 | } | ||
2824 | return 0; | ||
2825 | } | ||
2826 | |||
2827 | |||
2828 | static void ns_phy_put(struct atm_dev *dev, unsigned char value, | 2804 | static void ns_phy_put(struct atm_dev *dev, unsigned char value, |
2829 | unsigned long addr) | 2805 | unsigned long addr) |
2830 | { | 2806 | { |