diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-06-12 13:06:58 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-06-12 13:06:58 +0200 |
commit | e83aff3d719a7246e087021feae68d29bb8df699 (patch) | |
tree | 7df20b49a130f5f7ad8329ae3afb789e3672fb65 | |
parent | 304699e35ed310910af41f9b1bbc08c4da473a8d (diff) | |
download | queue-3.18-e83aff3d719a7246e087021feae68d29bb8df699.tar.gz |
another patch
-rw-r--r-- | ethtool-check-the-return-value-of-get_regs_len.patch | 50 | ||||
-rw-r--r-- | series | 1 |
2 files changed, 51 insertions, 0 deletions
diff --git a/ethtool-check-the-return-value-of-get_regs_len.patch b/ethtool-check-the-return-value-of-get_regs_len.patch new file mode 100644 index 0000000..0b9b704 --- /dev/null +++ b/ethtool-check-the-return-value-of-get_regs_len.patch @@ -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 +@@ -404,8 +404,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); + +@@ -856,6 +861,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; + @@ -73,4 +73,5 @@ genwqe-prevent-an-integer-overflow-in-the-ioctl.patch drm-gma500-cdv-check-vbt-config-bits-when-detecting-lvds-panels.patch fs-stream_open-opener-for-stream-like-files-so-that-read-and-write-can-run-simultaneously-without-deadlock.patch fuse-add-fopen_stream-to-use-stream_open.patch +ethtool-check-the-return-value-of-get_regs_len.patch crypto-gcm-fix-incompatibility-between-gcm-and-gcm_base.patch |