diff options
Diffstat (limited to 'drivers/usb/gadget/function/u_ether.c')
-rw-r--r-- | drivers/usb/gadget/function/u_ether.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c index b4e5d6dfd549..c3cab77181d4 100644 --- a/drivers/usb/gadget/function/u_ether.c +++ b/drivers/usb/gadget/function/u_ether.c | |||
@@ -913,9 +913,16 @@ EXPORT_SYMBOL_GPL(gether_set_dev_addr); | |||
913 | int gether_get_dev_addr(struct net_device *net, char *dev_addr, int len) | 913 | int gether_get_dev_addr(struct net_device *net, char *dev_addr, int len) |
914 | { | 914 | { |
915 | struct eth_dev *dev; | 915 | struct eth_dev *dev; |
916 | int ret; | ||
916 | 917 | ||
917 | dev = netdev_priv(net); | 918 | dev = netdev_priv(net); |
918 | return get_ether_addr_str(dev->dev_mac, dev_addr, len); | 919 | ret = get_ether_addr_str(dev->dev_mac, dev_addr, len); |
920 | if (ret + 1 < len) { | ||
921 | dev_addr[ret++] = '\n'; | ||
922 | dev_addr[ret] = '\0'; | ||
923 | } | ||
924 | |||
925 | return ret; | ||
919 | } | 926 | } |
920 | EXPORT_SYMBOL_GPL(gether_get_dev_addr); | 927 | EXPORT_SYMBOL_GPL(gether_get_dev_addr); |
921 | 928 | ||
@@ -935,9 +942,16 @@ EXPORT_SYMBOL_GPL(gether_set_host_addr); | |||
935 | int gether_get_host_addr(struct net_device *net, char *host_addr, int len) | 942 | int gether_get_host_addr(struct net_device *net, char *host_addr, int len) |
936 | { | 943 | { |
937 | struct eth_dev *dev; | 944 | struct eth_dev *dev; |
945 | int ret; | ||
938 | 946 | ||
939 | dev = netdev_priv(net); | 947 | dev = netdev_priv(net); |
940 | return get_ether_addr_str(dev->host_mac, host_addr, len); | 948 | ret = get_ether_addr_str(dev->host_mac, host_addr, len); |
949 | if (ret + 1 < len) { | ||
950 | host_addr[ret++] = '\n'; | ||
951 | host_addr[ret] = '\0'; | ||
952 | } | ||
953 | |||
954 | return ret; | ||
941 | } | 955 | } |
942 | EXPORT_SYMBOL_GPL(gether_get_host_addr); | 956 | EXPORT_SYMBOL_GPL(gether_get_host_addr); |
943 | 957 | ||
@@ -984,10 +998,12 @@ EXPORT_SYMBOL_GPL(gether_get_qmult); | |||
984 | 998 | ||
985 | int gether_get_ifname(struct net_device *net, char *name, int len) | 999 | int gether_get_ifname(struct net_device *net, char *name, int len) |
986 | { | 1000 | { |
1001 | int ret; | ||
1002 | |||
987 | rtnl_lock(); | 1003 | rtnl_lock(); |
988 | strlcpy(name, netdev_name(net), len); | 1004 | ret = snprintf(name, len, "%s\n", netdev_name(net)); |
989 | rtnl_unlock(); | 1005 | rtnl_unlock(); |
990 | return strlen(name); | 1006 | return ret < len ? ret : len; |
991 | } | 1007 | } |
992 | EXPORT_SYMBOL_GPL(gether_get_ifname); | 1008 | EXPORT_SYMBOL_GPL(gether_get_ifname); |
993 | 1009 | ||