]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 10 Jun 2019 14:29:16 +0000 (16:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 10 Jun 2019 14:29:16 +0000 (16:29 +0200)
added patches:
ethtool-check-the-return-value-of-get_regs_len.patch

queue-4.19/ethtool-check-the-return-value-of-get_regs_len.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/ethtool-check-the-return-value-of-get_regs_len.patch b/queue-4.19/ethtool-check-the-return-value-of-get_regs_len.patch
new file mode 100644 (file)
index 0000000..a81becd
--- /dev/null
@@ -0,0 +1,50 @@
+From f9fc54d313fab2834f44f516459cdc8ac91d797f Mon Sep 17 00:00:00 2001
+From: Yunsheng Lin <linyunsheng@huawei.com>
+Date: Wed, 26 Dec 2018 19:51:46 +0800
+Subject: ethtool: check the return value of get_regs_len
+
+From: Yunsheng Lin <linyunsheng@huawei.com>
+
+commit f9fc54d313fab2834f44f516459cdc8ac91d797f upstream.
+
+The return type for get_regs_len in struct ethtool_ops is int,
+the hns3 driver may return error when failing to get the regs
+len by sending cmd to firmware.
+
+Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Michal Kubecek <mkubecek@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/core/ethtool.c |   12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/net/core/ethtool.c
++++ b/net/core/ethtool.c
+@@ -880,8 +880,13 @@ static noinline_for_stack int ethtool_ge
+               if (rc >= 0)
+                       info.n_priv_flags = rc;
+       }
+-      if (ops->get_regs_len)
+-              info.regdump_len = ops->get_regs_len(dev);
++      if (ops->get_regs_len) {
++              int ret = ops->get_regs_len(dev);
++
++              if (ret > 0)
++                      info.regdump_len = ret;
++      }
++
+       if (ops->get_eeprom_len)
+               info.eedump_len = ops->get_eeprom_len(dev);
+@@ -1424,6 +1429,9 @@ static int ethtool_get_regs(struct net_d
+               return -EFAULT;
+       reglen = ops->get_regs_len(dev);
++      if (reglen <= 0)
++              return reglen;
++
+       if (regs.len > reglen)
+               regs.len = reglen;
index 355163788f28d4c9f22654e0a903ad7bde55e835..280e5c415a2acbaab046406ddb2ba67719b8a3f3 100644 (file)
@@ -50,3 +50,4 @@ drm-don-t-block-fb-changes-for-async-plane-updates.patch
 drm-i915-gvt-initialize-intel_gvt_gtt_entry-in-stack.patch
 tty-serial_core-add-install.patch
 ipv4-define-__ipv4_neigh_lookup_noref-when-config_inet-is-disabled.patch
+ethtool-check-the-return-value-of-get_regs_len.patch