aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/function/u_ether.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/function/u_ether.c')
-rw-r--r--drivers/usb/gadget/function/u_ether.c24
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);
913int gether_get_dev_addr(struct net_device *net, char *dev_addr, int len) 913int 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}
920EXPORT_SYMBOL_GPL(gether_get_dev_addr); 927EXPORT_SYMBOL_GPL(gether_get_dev_addr);
921 928
@@ -935,9 +942,16 @@ EXPORT_SYMBOL_GPL(gether_set_host_addr);
935int gether_get_host_addr(struct net_device *net, char *host_addr, int len) 942int 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}
942EXPORT_SYMBOL_GPL(gether_get_host_addr); 956EXPORT_SYMBOL_GPL(gether_get_host_addr);
943 957
@@ -984,10 +998,12 @@ EXPORT_SYMBOL_GPL(gether_get_qmult);
984 998
985int gether_get_ifname(struct net_device *net, char *name, int len) 999int 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}
992EXPORT_SYMBOL_GPL(gether_get_ifname); 1008EXPORT_SYMBOL_GPL(gether_get_ifname);
993 1009