* [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink
@ 2018-12-13 4:27 Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 06/73] tools/bpf: fix two test_btf unit test cases Sasha Levin
` (26 more replies)
0 siblings, 27 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Alexey Khoroshilov, Johannes Berg, Sasha Levin, linux-wireless,
netdev
From: Alexey Khoroshilov <khoroshilov@ispras.ru>
[ Upstream commit 05cc09de4c017663a217630682041066f2f9a5cd ]
There is no unregister netlink notifier and family on error paths
in init_mac80211_hwsim(). Also there is an error path where
hwsim_class is not destroyed.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Fixes: 62759361eb49 ("mac80211-hwsim: Provide multicast event for HWSIM_CMD_NEW_RADIO")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/mac80211_hwsim.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 07442ada6dd0..6532cb25a333 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -3712,16 +3712,16 @@ static int __init init_mac80211_hwsim(void)
if (err)
goto out_unregister_pernet;
+ err = hwsim_init_netlink();
+ if (err)
+ goto out_unregister_driver;
+
hwsim_class = class_create(THIS_MODULE, "mac80211_hwsim");
if (IS_ERR(hwsim_class)) {
err = PTR_ERR(hwsim_class);
- goto out_unregister_driver;
+ goto out_exit_netlink;
}
- err = hwsim_init_netlink();
- if (err < 0)
- goto out_unregister_driver;
-
for (i = 0; i < radios; i++) {
struct hwsim_new_radio_params param = { 0 };
@@ -3827,6 +3827,8 @@ static int __init init_mac80211_hwsim(void)
free_netdev(hwsim_mon);
out_free_radios:
mac80211_hwsim_free();
+out_exit_netlink:
+ hwsim_exit_netlink();
out_unregister_driver:
platform_driver_unregister(&mac80211_hwsim_driver);
out_unregister_pernet:
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 06/73] tools/bpf: fix two test_btf unit test cases
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 07/73] tools/bpf: add addition type tests to test_btf Sasha Levin
` (25 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Martin KaFai Lau, Yonghong Song, Alexei Starovoitov, Sasha Levin,
netdev, linux-kselftest
From: Martin KaFai Lau <kafai@fb.com>
[ Upstream commit 8800cd031af085807028656c6ba7eb7908d78262 ]
There are two unit test cases, which should encode
TYPEDEF type, but instead encode PTR type.
The error is flagged out after enforcing name
checking in the previous patch.
Fixes: c0fa1b6c3efc ("bpf: btf: Add BTF tests")
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
tools/testing/selftests/bpf/test_btf.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_btf.c b/tools/testing/selftests/bpf/test_btf.c
index 6b5cfeb7a9cc..4909aab4d6ab 100644
--- a/tools/testing/selftests/bpf/test_btf.c
+++ b/tools/testing/selftests/bpf/test_btf.c
@@ -431,11 +431,11 @@ static struct btf_raw_test raw_tests[] = {
/* const void* */ /* [3] */
BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 2),
/* typedef const void * const_void_ptr */
- BTF_TYPE_ENC(NAME_TBD, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 3),
- /* struct A { */ /* [4] */
+ BTF_TYPEDEF_ENC(NAME_TBD, 3), /* [4] */
+ /* struct A { */ /* [5] */
BTF_TYPE_ENC(NAME_TBD, BTF_INFO_ENC(BTF_KIND_STRUCT, 0, 1), sizeof(void *)),
/* const_void_ptr m; */
- BTF_MEMBER_ENC(NAME_TBD, 3, 0),
+ BTF_MEMBER_ENC(NAME_TBD, 4, 0),
/* } */
BTF_END_RAW,
},
@@ -493,10 +493,10 @@ static struct btf_raw_test raw_tests[] = {
BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_CONST, 0, 0), 0),
/* const void* */ /* [3] */
BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 2),
- /* typedef const void * const_void_ptr */ /* [4] */
- BTF_TYPE_ENC(NAME_TBD, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 3),
- /* const_void_ptr[4] */ /* [5] */
- BTF_TYPE_ARRAY_ENC(3, 1, 4),
+ /* typedef const void * const_void_ptr */
+ BTF_TYPEDEF_ENC(NAME_TBD, 3), /* [4] */
+ /* const_void_ptr[4] */
+ BTF_TYPE_ARRAY_ENC(4, 1, 4), /* [5] */
BTF_END_RAW,
},
.str_sec = "\0const_void_ptr",
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 07/73] tools/bpf: add addition type tests to test_btf
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 06/73] tools/bpf: fix two test_btf unit test cases Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 08/73] net: ethernet: ave: Replace NET_IP_ALIGN with AVE_FRAME_HEADROOM Sasha Levin
` (24 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Yonghong Song, Alexei Starovoitov, Sasha Levin, netdev,
linux-kselftest
From: Yonghong Song <yhs@fb.com>
[ Upstream commit d08489125e04a9f73d9323caea43270fd22d395f ]
The following additional unit testcases are added to test_btf:
...
BTF raw test[42] (typedef (invalid name, name_off = 0)): OK
BTF raw test[43] (typedef (invalid name, invalid identifier)): OK
BTF raw test[44] (ptr type (invalid name, name_off <> 0)): OK
BTF raw test[45] (volatile type (invalid name, name_off <> 0)): OK
BTF raw test[46] (const type (invalid name, name_off <> 0)): OK
BTF raw test[47] (restrict type (invalid name, name_off <> 0)): OK
BTF raw test[48] (fwd type (invalid name, name_off = 0)): OK
BTF raw test[49] (fwd type (invalid name, invalid identifier)): OK
BTF raw test[50] (array type (invalid name, name_off <> 0)): OK
BTF raw test[51] (struct type (name_off = 0)): OK
BTF raw test[52] (struct type (invalid name, invalid identifier)): OK
BTF raw test[53] (struct member (name_off = 0)): OK
BTF raw test[54] (struct member (invalid name, invalid identifier)): OK
BTF raw test[55] (enum type (name_off = 0)): OK
BTF raw test[56] (enum type (invalid name, invalid identifier)): OK
BTF raw test[57] (enum member (invalid name, name_off = 0)): OK
BTF raw test[58] (enum member (invalid name, invalid identifier)): OK
...
Fixes: c0fa1b6c3efc ("bpf: btf: Add BTF tests")
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
tools/testing/selftests/bpf/test_btf.c | 361 +++++++++++++++++++++++++
1 file changed, 361 insertions(+)
diff --git a/tools/testing/selftests/bpf/test_btf.c b/tools/testing/selftests/bpf/test_btf.c
index 4909aab4d6ab..29116366a9fc 100644
--- a/tools/testing/selftests/bpf/test_btf.c
+++ b/tools/testing/selftests/bpf/test_btf.c
@@ -1291,6 +1291,367 @@ static struct btf_raw_test raw_tests[] = {
.err_str = "type != 0",
},
+{
+ .descr = "typedef (invalid name, name_off = 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPEDEF_ENC(0, 1), /* [2] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__int",
+ .str_sec_size = sizeof("\0__int"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "typedef_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "typedef (invalid name, invalid identifier)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPEDEF_ENC(NAME_TBD, 1), /* [2] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__!int",
+ .str_sec_size = sizeof("\0__!int"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "typedef_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "ptr type (invalid name, name_off <> 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 1), /* [2] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__int",
+ .str_sec_size = sizeof("\0__int"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "ptr_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "volatile type (invalid name, name_off <> 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_VOLATILE, 0, 0), 1), /* [2] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__int",
+ .str_sec_size = sizeof("\0__int"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "volatile_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "const type (invalid name, name_off <> 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_CONST, 0, 0), 1), /* [2] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__int",
+ .str_sec_size = sizeof("\0__int"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "const_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "restrict type (invalid name, name_off <> 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 1), /* [2] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_RESTRICT, 0, 0), 2), /* [3] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__int",
+ .str_sec_size = sizeof("\0__int"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "restrict_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "fwd type (invalid name, name_off = 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_FWD, 0, 0), 0), /* [2] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__skb",
+ .str_sec_size = sizeof("\0__skb"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "fwd_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "fwd type (invalid name, invalid identifier)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_FWD, 0, 0), 0), /* [2] */
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__!skb",
+ .str_sec_size = sizeof("\0__!skb"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "fwd_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "array type (invalid name, name_off <> 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_ARRAY, 0, 0), 0), /* [2] */
+ BTF_ARRAY_ENC(1, 1, 4),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0__skb",
+ .str_sec_size = sizeof("\0__skb"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "array_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "struct type (name_off = 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(0,
+ BTF_INFO_ENC(BTF_KIND_STRUCT, 0, 1), 4), /* [2] */
+ BTF_MEMBER_ENC(NAME_TBD, 1, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0A",
+ .str_sec_size = sizeof("\0A"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "struct_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+},
+
+{
+ .descr = "struct type (invalid name, invalid identifier)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_STRUCT, 0, 1), 4), /* [2] */
+ BTF_MEMBER_ENC(NAME_TBD, 1, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0A!\0B",
+ .str_sec_size = sizeof("\0A!\0B"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "struct_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "struct member (name_off = 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(0,
+ BTF_INFO_ENC(BTF_KIND_STRUCT, 0, 1), 4), /* [2] */
+ BTF_MEMBER_ENC(NAME_TBD, 1, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0A",
+ .str_sec_size = sizeof("\0A"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "struct_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+},
+
+{
+ .descr = "struct member (invalid name, invalid identifier)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_STRUCT, 0, 1), 4), /* [2] */
+ BTF_MEMBER_ENC(NAME_TBD, 1, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0A\0B*",
+ .str_sec_size = sizeof("\0A\0B*"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "struct_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "enum type (name_off = 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(0,
+ BTF_INFO_ENC(BTF_KIND_ENUM, 0, 1),
+ sizeof(int)), /* [2] */
+ BTF_ENUM_ENC(NAME_TBD, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0A\0B",
+ .str_sec_size = sizeof("\0A\0B"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "enum_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+},
+
+{
+ .descr = "enum type (invalid name, invalid identifier)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(NAME_TBD,
+ BTF_INFO_ENC(BTF_KIND_ENUM, 0, 1),
+ sizeof(int)), /* [2] */
+ BTF_ENUM_ENC(NAME_TBD, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0A!\0B",
+ .str_sec_size = sizeof("\0A!\0B"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "enum_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "enum member (invalid name, name_off = 0)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(0,
+ BTF_INFO_ENC(BTF_KIND_ENUM, 0, 1),
+ sizeof(int)), /* [2] */
+ BTF_ENUM_ENC(0, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "",
+ .str_sec_size = sizeof(""),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "enum_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
+
+{
+ .descr = "enum member (invalid name, invalid identifier)",
+ .raw_types = {
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
+ BTF_TYPE_ENC(0,
+ BTF_INFO_ENC(BTF_KIND_ENUM, 0, 1),
+ sizeof(int)), /* [2] */
+ BTF_ENUM_ENC(NAME_TBD, 0),
+ BTF_END_RAW,
+ },
+ .str_sec = "\0A!",
+ .str_sec_size = sizeof("\0A!"),
+ .map_type = BPF_MAP_TYPE_ARRAY,
+ .map_name = "enum_type_check_btf",
+ .key_size = sizeof(int),
+ .value_size = sizeof(int),
+ .key_type_id = 1,
+ .value_type_id = 1,
+ .max_entries = 4,
+ .btf_load_err = true,
+ .err_str = "Invalid name",
+},
{
.descr = "arraymap invalid btf key (a bit field)",
.raw_types = {
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 08/73] net: ethernet: ave: Replace NET_IP_ALIGN with AVE_FRAME_HEADROOM
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 06/73] tools/bpf: fix two test_btf unit test cases Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 07/73] tools/bpf: add addition type tests to test_btf Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 09/73] net: phy: sfp: correct store of detected link modes Sasha Levin
` (23 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Kunihiko Hayashi, David S . Miller, Sasha Levin, netdev
From: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
[ Upstream commit 88113957ddb7b7d5451e28cd708c82ea7e63b097 ]
In commit 26a4676faa1a ("arm64: mm: define NET_IP_ALIGN to 0"),
AVE controller affects this modification because the controller forces
to ignore lower 2bits of buffer start address, and make 2-byte headroom,
that is, data reception starts from (buffer + 2).
This patch defines AVE_FRAME_HEADROOM macro as hardware-specific value,
and replaces NET_IP_ALIGN with it.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/socionext/sni_ave.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/socionext/sni_ave.c b/drivers/net/ethernet/socionext/sni_ave.c
index f7ecceeb1e28..f27d67a4d304 100644
--- a/drivers/net/ethernet/socionext/sni_ave.c
+++ b/drivers/net/ethernet/socionext/sni_ave.c
@@ -194,6 +194,7 @@
/* Parameter for ethernet frame */
#define AVE_MAX_ETHFRAME 1518
+#define AVE_FRAME_HEADROOM 2
/* Parameter for interrupt */
#define AVE_INTM_COUNT 20
@@ -585,12 +586,13 @@ static int ave_rxdesc_prepare(struct net_device *ndev, int entry)
skb = priv->rx.desc[entry].skbs;
if (!skb) {
- skb = netdev_alloc_skb_ip_align(ndev,
- AVE_MAX_ETHFRAME);
+ skb = netdev_alloc_skb(ndev, AVE_MAX_ETHFRAME);
if (!skb) {
netdev_err(ndev, "can't allocate skb for Rx\n");
return -ENOMEM;
}
+ skb->data += AVE_FRAME_HEADROOM;
+ skb->tail += AVE_FRAME_HEADROOM;
}
/* set disable to cmdsts */
@@ -603,12 +605,12 @@ static int ave_rxdesc_prepare(struct net_device *ndev, int entry)
* - Rx buffer begins with 2 byte headroom, and data will be put from
* (buffer + 2).
* To satisfy this, specify the address to put back the buffer
- * pointer advanced by NET_IP_ALIGN by netdev_alloc_skb_ip_align(),
- * and expand the map size by NET_IP_ALIGN.
+ * pointer advanced by AVE_FRAME_HEADROOM, and expand the map size
+ * by AVE_FRAME_HEADROOM.
*/
ret = ave_dma_map(ndev, &priv->rx.desc[entry],
- skb->data - NET_IP_ALIGN,
- AVE_MAX_ETHFRAME + NET_IP_ALIGN,
+ skb->data - AVE_FRAME_HEADROOM,
+ AVE_MAX_ETHFRAME + AVE_FRAME_HEADROOM,
DMA_FROM_DEVICE, &paddr);
if (ret) {
netdev_err(ndev, "can't map skb for Rx\n");
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 09/73] net: phy: sfp: correct store of detected link modes
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (2 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 08/73] net: ethernet: ave: Replace NET_IP_ALIGN with AVE_FRAME_HEADROOM Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 20/73] net: stmmac: Move debugfs init/exit to ->probe()/->remove() Sasha Levin
` (22 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Baruch Siach, David S . Miller, Sasha Levin, netdev
From: Baruch Siach <baruch@tkos.co.il>
[ Upstream commit d7f7e0018b96fd1a30a968faa9464eb57372c1ec ]
The link modes that sfp_parse_support() detects are stored in the
'modes' bitmap. There is no reason to make an exception for 1000Base-PX
or 1000Base-BX10.
Fixes: 03145864bd0f ("sfp: support 1G BiDi (eg, FiberStore SFP-GE-BX) modules")
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/phy/sfp-bus.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c
index 83060fb349f4..ad9db652874d 100644
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -162,7 +162,7 @@ void sfp_parse_support(struct sfp_bus *bus, const struct sfp_eeprom_id *id,
/* 1000Base-PX or 1000Base-BX10 */
if ((id->base.e_base_px || id->base.e_base_bx10) &&
br_min <= 1300 && br_max >= 1200)
- phylink_set(support, 1000baseX_Full);
+ phylink_set(modes, 1000baseX_Full);
/* For active or passive cables, select the link modes
* based on the bit rates and the cable compliance bytes.
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 20/73] net: stmmac: Move debugfs init/exit to ->probe()/->remove()
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (3 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 09/73] net: phy: sfp: correct store of detected link modes Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 21/73] net: aquantia: fix rx checksum offload bits Sasha Levin
` (21 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Thierry Reding, David S . Miller, Sasha Levin, netdev
From: Thierry Reding <treding@nvidia.com>
[ Upstream commit 5f2b8b62786853341a20d4cd4948f9cbca3db002 ]
Setting up and tearing down debugfs is current unbalanced, as seen by
this error during resume from suspend:
[ 752.134067] dwc-eth-dwmac 2490000.ethernet eth0: ERROR failed to create debugfs directory
[ 752.134347] dwc-eth-dwmac 2490000.ethernet eth0: stmmac_hw_setup: failed debugFS registration
The imbalance happens because the driver creates the debugfs hierarchy
when the device is opened and tears it down when the device is closed.
There's little gain in that, and it could be argued that it is even
surprising because it's not usually done for other devices. Fix the
imbalance by moving the debugfs creation and teardown to the driver's
->probe() and ->remove() implementations instead.
Note that the ring descriptors cannot be read while the interface is
down, so make sure to return an empty file when the descriptors_status
debugfs file is read.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 23 +++++++++++--------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 75896d6ba6e2..99ea5c4ce29c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -2547,12 +2547,6 @@ static int stmmac_hw_setup(struct net_device *dev, bool init_ptp)
netdev_warn(priv->dev, "PTP init failed\n");
}
-#ifdef CONFIG_DEBUG_FS
- ret = stmmac_init_fs(dev);
- if (ret < 0)
- netdev_warn(priv->dev, "%s: failed debugFS registration\n",
- __func__);
-#endif
priv->tx_lpi_timer = STMMAC_DEFAULT_TWT_LS;
if (priv->use_riwt) {
@@ -2753,10 +2747,6 @@ static int stmmac_release(struct net_device *dev)
netif_carrier_off(dev);
-#ifdef CONFIG_DEBUG_FS
- stmmac_exit_fs(dev);
-#endif
-
stmmac_release_ptp(priv);
return 0;
@@ -3896,6 +3886,9 @@ static int stmmac_sysfs_ring_read(struct seq_file *seq, void *v)
u32 tx_count = priv->plat->tx_queues_to_use;
u32 queue;
+ if ((dev->flags & IFF_UP) == 0)
+ return 0;
+
for (queue = 0; queue < rx_count; queue++) {
struct stmmac_rx_queue *rx_q = &priv->rx_queue[queue];
@@ -4394,6 +4387,13 @@ int stmmac_dvr_probe(struct device *device,
goto error_netdev_register;
}
+#ifdef CONFIG_DEBUG_FS
+ ret = stmmac_init_fs(ndev);
+ if (ret < 0)
+ netdev_warn(priv->dev, "%s: failed debugFS registration\n",
+ __func__);
+#endif
+
return ret;
error_netdev_register:
@@ -4429,6 +4429,9 @@ int stmmac_dvr_remove(struct device *dev)
netdev_info(priv->dev, "%s: removing driver", __func__);
+#ifdef CONFIG_DEBUG_FS
+ stmmac_exit_fs(ndev);
+#endif
stmmac_stop_all_dma(priv);
stmmac_mac_set(priv, priv->ioaddr, false);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 21/73] net: aquantia: fix rx checksum offload bits
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (4 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 20/73] net: stmmac: Move debugfs init/exit to ->probe()/->remove() Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 22/73] bonding: fix 802.3ad state sent to partner when unbinding slave Sasha Levin
` (20 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Dmitry Bogdanov, Igor Russkikh, David S . Miller, Sasha Levin,
netdev
From: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
[ Upstream commit 37c4b91f955fdd5f4ad771956b97d35f1321098e ]
The last set of csum offload fixes had a leak:
Checksum enabled status bits from rx descriptor were incorrectly
interpreted. Consequently all the other valid logic worked on zero bits.
That caused rx checksum offloads never to trigger.
Tested by dumping rx descriptors and validating resulting csum_level.
Reported-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Fixes: ad703c2b9127f ("net: aquantia: invalid checksumm offload implementation")
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
index 88705dee5b95..56363ff5c891 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
@@ -667,7 +667,7 @@ static int hw_atl_b0_hw_ring_rx_receive(struct aq_hw_s *self,
rx_stat = (0x0000003CU & rxd_wb->status) >> 2;
- is_rx_check_sum_enabled = (rxd_wb->type) & (0x3U << 19);
+ is_rx_check_sum_enabled = (rxd_wb->type >> 19) & 0x3U;
pkt_type = 0xFFU & (rxd_wb->type >> 4);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 22/73] bonding: fix 802.3ad state sent to partner when unbinding slave
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (5 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 21/73] net: aquantia: fix rx checksum offload bits Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 23/73] bpf: Fix verifier log string check for bad alignment Sasha Levin
` (19 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Toni Peltonen, Jay Vosburgh, David S . Miller, Sasha Levin,
netdev
From: Toni Peltonen <peltzi@peltzi.fi>
[ Upstream commit 3b5b3a3331d141e8f2a7aaae3a94dfa1e61ecbe4 ]
Previously when unbinding a slave the 802.3ad implementation only told
partner that the port is not suitable for aggregation by setting the port
aggregation state from aggregatable to individual. This is not enough. If the
physical layer still stays up and we only unbinded this port from the bond there
is nothing in the aggregation status alone to prevent the partner from sending
traffic towards us. To ensure that the partner doesn't consider this
port at all anymore we should also disable collecting and distributing to
signal that this actor is going away. Also clear AD_STATE_SYNCHRONIZATION to
ensure partner exits collecting + distributing state.
I have tested this behaviour againts Arista EOS switches with mlx5 cards
(physical link stays up even when interface is down) and simulated
the same situation virtually Linux <-> Linux with two network namespaces
running two veth device pairs. In both cases setting aggregation to
individual doesn't alone prevent traffic from being to sent towards this
port given that the link stays up in partners end. Partner still keeps
it's end in collecting + distributing state and continues until timeout is
reached. In most cases this means we are losing the traffic partner sends
towards our port while we wait for timeout. This is most visible with slow
periodic time (LACP rate slow).
Other open source implementations like Open VSwitch and libreswitch, and
vendor implementations like Arista EOS, seem to disable collecting +
distributing to when doing similar port disabling/detaching/removing change.
With this patch kernel implementation would behave the same way and ensure
partner doesn't consider our actor viable anymore.
Signed-off-by: Toni Peltonen <peltzi@peltzi.fi>
Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Acked-by: Jonathan Toppins <jtoppins@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/bonding/bond_3ad.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index f43fb2f958a5..93dfcef8afc4 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -2086,6 +2086,9 @@ void bond_3ad_unbind_slave(struct slave *slave)
aggregator->aggregator_identifier);
/* Tell the partner that this port is not suitable for aggregation */
+ port->actor_oper_port_state &= ~AD_STATE_SYNCHRONIZATION;
+ port->actor_oper_port_state &= ~AD_STATE_COLLECTING;
+ port->actor_oper_port_state &= ~AD_STATE_DISTRIBUTING;
port->actor_oper_port_state &= ~AD_STATE_AGGREGATION;
__update_lacpdu_from_port(port);
ad_lacpdu_send(port);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 23/73] bpf: Fix verifier log string check for bad alignment.
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (6 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 22/73] bonding: fix 802.3ad state sent to partner when unbinding slave Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 24/73] liquidio: read sc->iq_no before release sc Sasha Levin
` (18 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: David Miller, Alexei Starovoitov, Sasha Levin, netdev,
linux-kselftest
From: David Miller <davem@davemloft.net>
[ Upstream commit c01ac66b38660f2b507ccd0b75d28e3002d56fbb ]
The message got changed a lot time ago.
This was responsible for 36 test case failures on sparc64.
Fixes: f1174f77b50c ("bpf/verifier: rework value tracking")
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
tools/testing/selftests/bpf/test_verifier.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c
index 67c412d19c09..d80c36465c1c 100644
--- a/tools/testing/selftests/bpf/test_verifier.c
+++ b/tools/testing/selftests/bpf/test_verifier.c
@@ -12746,7 +12746,7 @@ static void do_test_single(struct bpf_test *test, bool unpriv,
reject_from_alignment = fd_prog < 0 &&
(test->flags & F_NEEDS_EFFICIENT_UNALIGNED_ACCESS) &&
- strstr(bpf_vlog, "Unknown alignment.");
+ strstr(bpf_vlog, "misaligned");
#ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
if (reject_from_alignment) {
printf("FAIL\nFailed due to alignment despite having efficient unaligned access: '%s'!\n",
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 24/73] liquidio: read sc->iq_no before release sc
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (7 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 23/73] bpf: Fix verifier log string check for bad alignment Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 26/73] SUNRPC: Fix leak of krb5p encode pages Sasha Levin
` (17 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Pan Bian, David S . Miller, Sasha Levin, netdev
From: Pan Bian <bianpan2016@163.com>
[ Upstream commit c0f53771ba45745e5870daf880127925c93f232f ]
The function lio_vf_rep_packet_sent_callback releases the occupation of
sc via octeon_free_soft_command. sc should not be used after that.
Unfortunately, sc->iq_no is read. To fix this, the patch stores sc->iq_no
into a local variable before releasing sc and then uses the local variable
instead of sc->iq_no.
Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
index ddd7431579f4..c99b59fe4c8f 100644
--- a/drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
+++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c
@@ -367,13 +367,15 @@ lio_vf_rep_packet_sent_callback(struct octeon_device *oct,
struct octeon_soft_command *sc = (struct octeon_soft_command *)buf;
struct sk_buff *skb = sc->ctxptr;
struct net_device *ndev = skb->dev;
+ u32 iq_no;
dma_unmap_single(&oct->pci_dev->dev, sc->dmadptr,
sc->datasize, DMA_TO_DEVICE);
dev_kfree_skb_any(skb);
+ iq_no = sc->iq_no;
octeon_free_soft_command(oct, sc);
- if (octnet_iq_is_full(oct, sc->iq_no))
+ if (octnet_iq_is_full(oct, iq_no))
return;
if (netif_queue_stopped(ndev))
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 26/73] SUNRPC: Fix leak of krb5p encode pages
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (8 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 24/73] liquidio: read sc->iq_no before release sc Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 27/73] SUNRPC: Fix a potential race in xprt_connect() Sasha Levin
` (16 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Chuck Lever, stable, Trond Myklebust, Sasha Levin, linux-nfs,
netdev
From: Chuck Lever <chuck.lever@oracle.com>
[ Upstream commit 8dae5398ab1ac107b1517e8195ed043d5f422bd0 ]
call_encode can be invoked more than once per RPC call. Ensure that
each call to gss_wrap_req_priv does not overwrite pointers to
previously allocated memory.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: stable@kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/sunrpc/auth_gss/auth_gss.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
index 21c0aa0a0d1d..8cb7d812ccb8 100644
--- a/net/sunrpc/auth_gss/auth_gss.c
+++ b/net/sunrpc/auth_gss/auth_gss.c
@@ -1768,6 +1768,7 @@ priv_release_snd_buf(struct rpc_rqst *rqstp)
for (i=0; i < rqstp->rq_enc_pages_num; i++)
__free_page(rqstp->rq_enc_pages[i]);
kfree(rqstp->rq_enc_pages);
+ rqstp->rq_release_snd_buf = NULL;
}
static int
@@ -1776,6 +1777,9 @@ alloc_enc_pages(struct rpc_rqst *rqstp)
struct xdr_buf *snd_buf = &rqstp->rq_snd_buf;
int first, last, i;
+ if (rqstp->rq_release_snd_buf)
+ rqstp->rq_release_snd_buf(rqstp);
+
if (snd_buf->page_len == 0) {
rqstp->rq_enc_pages_num = 0;
return 0;
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 27/73] SUNRPC: Fix a potential race in xprt_connect()
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (9 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 26/73] SUNRPC: Fix leak of krb5p encode pages Sasha Levin
@ 2018-12-13 4:27 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 42/73] net: phy: don't allow __set_phy_supported to add unsupported modes Sasha Levin
` (15 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:27 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Trond Myklebust, Sasha Levin, linux-nfs, netdev
From: Trond Myklebust <trond.myklebust@hammerspace.com>
[ Upstream commit 0a9a4304f3614e25d9de9b63502ca633c01c0d70 ]
If an asynchronous connection attempt completes while another task is
in xprt_connect(), then the call to rpc_sleep_on() could end up
racing with the call to xprt_wake_pending_tasks().
So add a second test of the connection state after we've put the
task to sleep and set the XPRT_CONNECTING flag, when we know that there
can be no asynchronous connection attempts still in progress.
Fixes: 0b9e79431377d ("SUNRPC: Move the test for XPRT_CONNECTING into...")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/sunrpc/xprt.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index a8db2e3f8904..d066aae3cb6d 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -781,8 +781,15 @@ void xprt_connect(struct rpc_task *task)
return;
if (xprt_test_and_set_connecting(xprt))
return;
- xprt->stat.connect_start = jiffies;
- xprt->ops->connect(xprt, task);
+ /* Race breaker */
+ if (!xprt_connected(xprt)) {
+ xprt->stat.connect_start = jiffies;
+ xprt->ops->connect(xprt, task);
+ } else {
+ xprt_clear_connecting(xprt);
+ task->tk_status = 0;
+ rpc_wake_up_queued_task(&xprt->pending, task);
+ }
}
xprt_release_write(xprt, task);
}
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 42/73] net: phy: don't allow __set_phy_supported to add unsupported modes
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (10 preceding siblings ...)
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 27/73] SUNRPC: Fix a potential race in xprt_connect() Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 43/73] net: 8139cp: fix a BUG triggered by changing mtu with network traffic Sasha Levin
` (14 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Heiner Kallweit, David S . Miller, Sasha Levin, netdev
From: Heiner Kallweit <hkallweit1@gmail.com>
[ Upstream commit d2a36971ef595069b7a600d1144c2e0881a930a1 ]
Currently __set_phy_supported allows to add modes w/o checking whether
the PHY supports them. This is wrong, it should never add modes but
only remove modes we don't want to support.
The commit marked as fixed didn't do anything wrong, it just copied
existing functionality to the helper which is being fixed now.
Fixes: f3a6bd393c2c ("phylib: Add phy_set_max_speed helper")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/phy/phy_device.c | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 733e35b7c4bb..20d1be2b070b 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1738,20 +1738,17 @@ EXPORT_SYMBOL(genphy_loopback);
static int __set_phy_supported(struct phy_device *phydev, u32 max_speed)
{
- phydev->supported &= ~(PHY_1000BT_FEATURES | PHY_100BT_FEATURES |
- PHY_10BT_FEATURES);
-
switch (max_speed) {
- default:
- return -ENOTSUPP;
- case SPEED_1000:
- phydev->supported |= PHY_1000BT_FEATURES;
+ case SPEED_10:
+ phydev->supported &= ~PHY_100BT_FEATURES;
/* fall through */
case SPEED_100:
- phydev->supported |= PHY_100BT_FEATURES;
- /* fall through */
- case SPEED_10:
- phydev->supported |= PHY_10BT_FEATURES;
+ phydev->supported &= ~PHY_1000BT_FEATURES;
+ break;
+ case SPEED_1000:
+ break;
+ default:
+ return -ENOTSUPP;
}
return 0;
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 43/73] net: 8139cp: fix a BUG triggered by changing mtu with network traffic
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (11 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 42/73] net: phy: don't allow __set_phy_supported to add unsupported modes Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 44/73] net: phy: Fix not to call phy_resume() if PHY is not attached Sasha Levin
` (13 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Su Yanjun, David S . Miller, Sasha Levin, netdev
From: Su Yanjun <suyj.fnst@cn.fujitsu.com>
[ Upstream commit a5d4a89245ead1f37ed135213653c5beebea4237 ]
When changing mtu many times with traffic, a bug is triggered:
[ 1035.684037] kernel BUG at lib/dynamic_queue_limits.c:26!
[ 1035.684042] invalid opcode: 0000 [#1] SMP
[ 1035.684049] Modules linked in: loop binfmt_misc 8139cp(OE) macsec
tcp_diag udp_diag inet_diag unix_diag af_packet_diag netlink_diag tcp_lp
fuse uinput xt_CHECKSUM iptable_mangle ipt_MASQUERADE
nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4
nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT nf_reject_ipv4 tun
bridge stp llc ebtable_filter ebtables ip6table_filter devlink
ip6_tables iptable_filter sunrpc snd_hda_codec_generic snd_hda_intel
snd_hda_codec snd_hda_core snd_hwdep ppdev snd_seq iosf_mbi crc32_pclmul
parport_pc snd_seq_device ghash_clmulni_intel parport snd_pcm
aesni_intel joydev lrw snd_timer virtio_balloon sg gf128mul glue_helper
ablk_helper cryptd snd soundcore i2c_piix4 pcspkr ip_tables xfs
libcrc32c sr_mod sd_mod cdrom crc_t10dif crct10dif_generic ata_generic
[ 1035.684102] pata_acpi virtio_console qxl drm_kms_helper syscopyarea
sysfillrect sysimgblt floppy fb_sys_fops crct10dif_pclmul
crct10dif_common ttm crc32c_intel serio_raw ata_piix drm libata 8139too
virtio_pci drm_panel_orientation_quirks virtio_ring virtio mii dm_mirror
dm_region_hash dm_log dm_mod [last unloaded: 8139cp]
[ 1035.684132] CPU: 9 PID: 25140 Comm: if-mtu-change Kdump: loaded
Tainted: G OE ------------ T 3.10.0-957.el7.x86_64 #1
[ 1035.684134] Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
[ 1035.684136] task: ffff8f59b1f5a080 ti: ffff8f5a2e32c000 task.ti:
ffff8f5a2e32c000
[ 1035.684149] RIP: 0010:[<ffffffffba3a40d0>] [<ffffffffba3a40d0>]
dql_completed+0x180/0x190
[ 1035.684162] RSP: 0000:ffff8f5a75483e50 EFLAGS: 00010093
[ 1035.684162] RAX: 00000000000000c2 RBX: ffff8f5a6f91c000 RCX:
0000000000000000
[ 1035.684162] RDX: 0000000000000000 RSI: 0000000000000184 RDI:
ffff8f599fea3ec0
[ 1035.684162] RBP: ffff8f5a75483ea8 R08: 00000000000000c2 R09:
0000000000000000
[ 1035.684162] R10: 00000000000616ef R11: ffff8f5a75483b56 R12:
ffff8f599fea3e00
[ 1035.684162] R13: 0000000000000001 R14: 0000000000000000 R15:
0000000000000184
[ 1035.684162] FS: 00007fa8434de740(0000) GS:ffff8f5a75480000(0000)
knlGS:0000000000000000
[ 1035.684162] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1035.684162] CR2: 00000000004305d0 CR3: 000000024eb66000 CR4:
00000000001406e0
[ 1035.684162] Call Trace:
[ 1035.684162] <IRQ>
[ 1035.684162] [<ffffffffc08cbaf8>] ? cp_interrupt+0x478/0x580 [8139cp]
[ 1035.684162] [<ffffffffba14a294>]
__handle_irq_event_percpu+0x44/0x1c0
[ 1035.684162] [<ffffffffba14a442>] handle_irq_event_percpu+0x32/0x80
[ 1035.684162] [<ffffffffba14a4cc>] handle_irq_event+0x3c/0x60
[ 1035.684162] [<ffffffffba14db29>] handle_fasteoi_irq+0x59/0x110
[ 1035.684162] [<ffffffffba02e554>] handle_irq+0xe4/0x1a0
[ 1035.684162] [<ffffffffba7795dd>] do_IRQ+0x4d/0xf0
[ 1035.684162] [<ffffffffba76b362>] common_interrupt+0x162/0x162
[ 1035.684162] <EOI>
[ 1035.684162] [<ffffffffba0c2ae4>] ? __wake_up_bit+0x24/0x70
[ 1035.684162] [<ffffffffba1e46f5>] ? do_set_pte+0xd5/0x120
[ 1035.684162] [<ffffffffba1b64fb>] unlock_page+0x2b/0x30
[ 1035.684162] [<ffffffffba1e4879>] do_read_fault.isra.61+0x139/0x1b0
[ 1035.684162] [<ffffffffba1e9134>] handle_pte_fault+0x2f4/0xd10
[ 1035.684162] [<ffffffffba1ebc6d>] handle_mm_fault+0x39d/0x9b0
[ 1035.684162] [<ffffffffba76f5e3>] __do_page_fault+0x203/0x500
[ 1035.684162] [<ffffffffba76f9c6>] trace_do_page_fault+0x56/0x150
[ 1035.684162] [<ffffffffba76ef42>] do_async_page_fault+0x22/0xf0
[ 1035.684162] [<ffffffffba76b788>] async_page_fault+0x28/0x30
[ 1035.684162] Code: 54 c7 47 54 ff ff ff ff 44 0f 49 ce 48 8b 35 48 2f
9c 00 48 89 77 58 e9 fe fe ff ff 0f 1f 80 00 00 00 00 41 89 d1 e9 ef fe
ff ff <0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 55 8d 42 ff 48
[ 1035.684162] RIP [<ffffffffba3a40d0>] dql_completed+0x180/0x190
[ 1035.684162] RSP <ffff8f5a75483e50>
It's not the same as in 7fe0ee09 patch described.
As 8139cp uses shared irq mode, other device irq will trigger
cp_interrupt to execute.
cp_change_mtu
-> cp_close
-> cp_open
In cp_close routine just before free_irq(), some interrupt may occur.
In my environment, cp_interrupt exectutes and IntrStatus is 0x4,
exactly TxOk. That will cause cp_tx to wake device queue.
As device queue is started, cp_start_xmit and cp_open will run at same
time which will cause kernel BUG.
For example:
[#] for tx descriptor
At start:
[#][#][#]
num_queued=3
After cp_init_hw->cp_start_hw->netdev_reset_queue:
[#][#][#]
num_queued=0
When 8139cp starts to work then cp_tx will check
num_queued mismatchs the complete_bytes.
The patch will check IntrMask before check IntrStatus in cp_interrupt.
When 8139cp interrupt is disabled, just return.
Signed-off-by: Su Yanjun <suyj.fnst@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/realtek/8139cp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c
index 81045dfa1cd8..44f6e4873aad 100644
--- a/drivers/net/ethernet/realtek/8139cp.c
+++ b/drivers/net/ethernet/realtek/8139cp.c
@@ -571,6 +571,7 @@ static irqreturn_t cp_interrupt (int irq, void *dev_instance)
struct cp_private *cp;
int handled = 0;
u16 status;
+ u16 mask;
if (unlikely(dev == NULL))
return IRQ_NONE;
@@ -578,6 +579,10 @@ static irqreturn_t cp_interrupt (int irq, void *dev_instance)
spin_lock(&cp->lock);
+ mask = cpr16(IntrMask);
+ if (!mask)
+ goto out_unlock;
+
status = cpr16(IntrStatus);
if (!status || (status == 0xFFFF))
goto out_unlock;
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 44/73] net: phy: Fix not to call phy_resume() if PHY is not attached
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (12 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 43/73] net: 8139cp: fix a BUG triggered by changing mtu with network traffic Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:48 ` Yoshihiro Shimoda
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 45/73] net: phy: micrel: add toggling phy reset " Sasha Levin
` (12 subsequent siblings)
26 siblings, 1 reply; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Yoshihiro Shimoda, David S . Miller, Sasha Levin, netdev
From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
[ Upstream commit ef1b5bf506b1f0ee3edc98533e1f3ecb105eb46a ]
This patch fixes an issue that mdio_bus_phy_resume() doesn't call
phy_resume() if the PHY is not attached.
Fixes: 803dd9c77ac3 ("net: phy: avoid suspending twice a PHY")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/phy/phy_device.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 20d1be2b070b..16a94f5b8073 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -76,7 +76,7 @@ static LIST_HEAD(phy_fixup_list);
static DEFINE_MUTEX(phy_fixup_lock);
#ifdef CONFIG_PM
-static bool mdio_bus_phy_may_suspend(struct phy_device *phydev)
+static bool mdio_bus_phy_may_suspend(struct phy_device *phydev, bool suspend)
{
struct device_driver *drv = phydev->mdio.dev.driver;
struct phy_driver *phydrv = to_phy_driver(drv);
@@ -88,10 +88,11 @@ static bool mdio_bus_phy_may_suspend(struct phy_device *phydev)
/* PHY not attached? May suspend if the PHY has not already been
* suspended as part of a prior call to phy_disconnect() ->
* phy_detach() -> phy_suspend() because the parent netdev might be the
- * MDIO bus driver and clock gated at this point.
+ * MDIO bus driver and clock gated at this point. Also may resume if
+ * PHY is not attached.
*/
if (!netdev)
- return !phydev->suspended;
+ return suspend ? !phydev->suspended : phydev->suspended;
if (netdev->wol_enabled)
return false;
@@ -126,7 +127,7 @@ static int mdio_bus_phy_suspend(struct device *dev)
if (phydev->attached_dev && phydev->adjust_link)
phy_stop_machine(phydev);
- if (!mdio_bus_phy_may_suspend(phydev))
+ if (!mdio_bus_phy_may_suspend(phydev, true))
return 0;
return phy_suspend(phydev);
@@ -137,7 +138,7 @@ static int mdio_bus_phy_resume(struct device *dev)
struct phy_device *phydev = to_phy_device(dev);
int ret;
- if (!mdio_bus_phy_may_suspend(phydev))
+ if (!mdio_bus_phy_may_suspend(phydev, false))
goto no_resume;
ret = phy_resume(phydev);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 45/73] net: phy: micrel: add toggling phy reset if PHY is not attached
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (13 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 44/73] net: phy: Fix not to call phy_resume() if PHY is not attached Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:44 ` Yoshihiro Shimoda
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 46/73] macvlan: return correct error value Sasha Levin
` (11 subsequent siblings)
26 siblings, 1 reply; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Yoshihiro Shimoda, David S . Miller, Sasha Levin, netdev
From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
[ Upstream commit 8c85f4b81296a530b8af2796c110fa482ac42d4f ]
This patch adds toggling phy reset if PHY is not attached. Otherwise,
some boards (e.g. R-Car H3 Salvator-XS) cannot link up correctly if
we do the following method:
1) Kernel boots by using initramfs.
--> No open the nic, so phy_device_register() and phy_probe()
deasserts the reset.
2) Kernel enters the suspend.
--> So, keep the reset signal as deassert.
--> On R-Car Salvator-XS board, unfortunately, the board power is
turned off.
3) Kernel returns from suspend.
4) ifconfig eth0 up
--> Then, since edge signal of the reset doesn't happen,
it cannot link up.
5) ifconfig eth0 down
6) ifconfig eth0 up
--> In this case, it can link up.
Reported-by: Hiromitsu Yamasaki <hiromitsu.yamasaki.ym@renesas.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/phy/micrel.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index 3db06b40580d..327f00034d01 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -23,6 +23,7 @@
* ksz9477
*/
+#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/phy.h>
@@ -725,6 +726,13 @@ static int kszphy_resume(struct phy_device *phydev)
{
int ret;
+ if (!phydev->attached_dev) {
+ /* If the PHY is not attached, toggle the reset */
+ phy_device_reset(phydev, 1);
+ udelay(1);
+ phy_device_reset(phydev, 0);
+ }
+
genphy_resume(phydev);
ret = kszphy_config_reset(phydev);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 46/73] macvlan: return correct error value
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (14 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 45/73] net: phy: micrel: add toggling phy reset " Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 47/73] mv88e6060: disable hardware level MAC learning Sasha Levin
` (10 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Matteo Croce, David S . Miller, Sasha Levin, netdev
From: Matteo Croce <mcroce@redhat.com>
[ Upstream commit 59f997b088d26a774958cb7b17b0763cd82de7ec ]
A MAC address must be unique among all the macvlan devices with the same
lower device. The only exception is the passthru [sic] mode,
which shares the lower device address.
When duplicate addresses are detected, EBUSY is returned when bringing
the interface up:
# ip link add macvlan0 link eth0 type macvlan
# read addr </sys/class/net/eth0/address
# ip link set macvlan0 address $addr
# ip link set macvlan0 up
RTNETLINK answers: Device or resource busy
Use correct error code which is EADDRINUSE, and do the check also
earlier, on address change:
# ip link set macvlan0 address $addr
RTNETLINK answers: Address already in use
Signed-off-by: Matteo Croce <mcroce@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/macvlan.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index cfda146f3b3b..6372cdc4a510 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -608,7 +608,7 @@ static int macvlan_open(struct net_device *dev)
goto hash_add;
}
- err = -EBUSY;
+ err = -EADDRINUSE;
if (macvlan_addr_busy(vlan->port, dev->dev_addr))
goto out;
@@ -706,7 +706,7 @@ static int macvlan_sync_address(struct net_device *dev, unsigned char *addr)
} else {
/* Rehash and update the device filters */
if (macvlan_addr_busy(vlan->port, addr))
- return -EBUSY;
+ return -EADDRINUSE;
if (!macvlan_passthru(port)) {
err = dev_uc_add(lowerdev, addr);
@@ -747,6 +747,9 @@ static int macvlan_set_mac_address(struct net_device *dev, void *p)
return dev_set_mac_address(vlan->lowerdev, addr);
}
+ if (macvlan_addr_busy(vlan->port, addr->sa_data))
+ return -EADDRINUSE;
+
return macvlan_sync_address(dev, addr->sa_data);
}
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 47/73] mv88e6060: disable hardware level MAC learning
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (15 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 46/73] macvlan: return correct error value Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 48/73] net/mlx4_en: Change min MTU size to ETH_MIN_MTU Sasha Levin
` (9 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Anderson Luiz Alves, David S . Miller, Sasha Levin, netdev
From: Anderson Luiz Alves <alacn1@gmail.com>
[ Upstream commit a74515604a7b171f2702bdcbd1e231225fb456d0 ]
Disable hardware level MAC learning because it breaks station roaming.
When enabled it drops all frames that arrive from a MAC address
that is on a different port at learning table.
Signed-off-by: Anderson Luiz Alves <alacn1@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/dsa/mv88e6060.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/net/dsa/mv88e6060.c b/drivers/net/dsa/mv88e6060.c
index 65f10fec25b3..0b3e51f248c2 100644
--- a/drivers/net/dsa/mv88e6060.c
+++ b/drivers/net/dsa/mv88e6060.c
@@ -116,8 +116,7 @@ static int mv88e6060_switch_reset(struct dsa_switch *ds)
/* Reset the switch. */
REG_WRITE(REG_GLOBAL, GLOBAL_ATU_CONTROL,
GLOBAL_ATU_CONTROL_SWRESET |
- GLOBAL_ATU_CONTROL_ATUSIZE_1024 |
- GLOBAL_ATU_CONTROL_ATE_AGE_5MIN);
+ GLOBAL_ATU_CONTROL_LEARNDIS);
/* Wait up to one second for reset to complete. */
timeout = jiffies + 1 * HZ;
@@ -142,13 +141,10 @@ static int mv88e6060_setup_global(struct dsa_switch *ds)
*/
REG_WRITE(REG_GLOBAL, GLOBAL_CONTROL, GLOBAL_CONTROL_MAX_FRAME_1536);
- /* Enable automatic address learning, set the address
- * database size to 1024 entries, and set the default aging
- * time to 5 minutes.
+ /* Disable automatic address learning.
*/
REG_WRITE(REG_GLOBAL, GLOBAL_ATU_CONTROL,
- GLOBAL_ATU_CONTROL_ATUSIZE_1024 |
- GLOBAL_ATU_CONTROL_ATE_AGE_5MIN);
+ GLOBAL_ATU_CONTROL_LEARNDIS);
return 0;
}
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 48/73] net/mlx4_en: Change min MTU size to ETH_MIN_MTU
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (16 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 47/73] mv88e6060: disable hardware level MAC learning Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 49/73] net/mlx4_en: Fix build break when CONFIG_INET is off Sasha Levin
` (8 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Eran Ben Elisha, Tariq Toukan, David S . Miller, Sasha Levin,
netdev, linux-rdma
From: Eran Ben Elisha <eranbe@mellanox.com>
[ Upstream commit 24be19e47779d604d1492c114459dca9a92acf78 ]
NIC driver minimal MTU size shall be set to ETH_MIN_MTU, as defined in
the RFC791 and in the network stack. Remove old mlx4_en only define for
it, which was set to wrong value.
Fixes: b80f71f5816f ("ethernet/mellanox: use core min/max MTU checking")
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 ++--
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index fe49384eba48..0d7fd3f043cf 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -3494,8 +3494,8 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
dev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
}
- /* MTU range: 46 - hw-specific max */
- dev->min_mtu = MLX4_EN_MIN_MTU;
+ /* MTU range: 68 - hw-specific max */
+ dev->min_mtu = ETH_MIN_MTU;
dev->max_mtu = priv->max_mtu;
mdev->pndev[port] = dev;
diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
index c3228b89df46..240f9c9ca943 100644
--- a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
+++ b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
@@ -161,7 +161,6 @@
#define MLX4_SELFTEST_LB_MIN_MTU (MLX4_LOOPBACK_TEST_PAYLOAD + NET_IP_ALIGN + \
ETH_HLEN + PREAMBLE_LEN)
-#define MLX4_EN_MIN_MTU 46
/* VLAN_HLEN is added twice,to support skb vlan tagged with multiple
* headers. (For example: ETH_P_8021Q and ETH_P_8021AD).
*/
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 49/73] net/mlx4_en: Fix build break when CONFIG_INET is off
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (17 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 48/73] net/mlx4_en: Change min MTU size to ETH_MIN_MTU Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 50/73] bpf: check pending signals while verifying programs Sasha Levin
` (7 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Saeed Mahameed, Tariq Toukan, David S . Miller, Sasha Levin,
netdev, linux-rdma
From: Saeed Mahameed <saeedm@mellanox.com>
[ Upstream commit 1b603f9e4313348608f256b564ed6e3d9e67f377 ]
MLX4_EN depends on NETDEVICES, ETHERNET and INET Kconfigs.
Make sure they are listed in MLX4_EN Kconfig dependencies.
This fixes the following build break:
drivers/net/ethernet/mellanox/mlx4/en_rx.c:582:18: warning: ‘struct iphdr’ declared inside parameter list [enabled by default]
struct iphdr *iph)
^
drivers/net/ethernet/mellanox/mlx4/en_rx.c:582:18: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
drivers/net/ethernet/mellanox/mlx4/en_rx.c: In function ‘get_fixed_ipv4_csum’:
drivers/net/ethernet/mellanox/mlx4/en_rx.c:586:20: error: dereferencing pointer to incomplete type
_u8 ipproto = iph->protocol;
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/mellanox/mlx4/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/Kconfig b/drivers/net/ethernet/mellanox/mlx4/Kconfig
index 36054e6fb9d3..f200b8c420d5 100644
--- a/drivers/net/ethernet/mellanox/mlx4/Kconfig
+++ b/drivers/net/ethernet/mellanox/mlx4/Kconfig
@@ -5,7 +5,7 @@
config MLX4_EN
tristate "Mellanox Technologies 1/10/40Gbit Ethernet support"
depends on MAY_USE_DEVLINK
- depends on PCI
+ depends on PCI && NETDEVICES && ETHERNET && INET
select MLX4_CORE
imply PTP_1588_CLOCK
---help---
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 50/73] bpf: check pending signals while verifying programs
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (18 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 49/73] net/mlx4_en: Fix build break when CONFIG_INET is off Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 54/73] ethernet: fman: fix wrong of_node_put() in probe function Sasha Levin
` (6 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Alexei Starovoitov, Daniel Borkmann, Sasha Levin, netdev
From: Alexei Starovoitov <ast@kernel.org>
[ Upstream commit c3494801cd1785e2c25f1a5735fa19ddcf9665da ]
Malicious user space may try to force the verifier to use as much cpu
time and memory as possible. Hence check for pending signals
while verifying the program.
Note that suspend of sys_bpf(PROG_LOAD) syscall will lead to EAGAIN,
since the kernel has to release the resources used for program verification.
Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
kernel/bpf/verifier.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 5780876ac81a..a320e6587dd3 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -4792,6 +4792,9 @@ static int do_check(struct bpf_verifier_env *env)
goto process_bpf_exit;
}
+ if (signal_pending(current))
+ return -EAGAIN;
+
if (need_resched())
cond_resched();
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 54/73] ethernet: fman: fix wrong of_node_put() in probe function
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (19 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 50/73] bpf: check pending signals while verifying programs Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 56/73] net: mvpp2: fix detection of 10G SFP modules Sasha Levin
` (5 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Nicolas Saenz Julienne, David S . Miller, Sasha Levin, netdev
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
[ Upstream commit ecb239d96d369c23c33d41708646df646de669f4 ]
After getting a reference to the platform device's of_node the probe
function ends up calling of_find_matching_node() using the node as an
argument. The function takes care of decreasing the refcount on it. We
are then incorrectly decreasing the refcount on that node again.
This patch removes the unwarranted call to of_node_put().
Fixes: 414fd46e7762 ("fsl/fman: Add FMan support")
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/freescale/fman/fman.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c
index c415ac67cb7b..e80fedb27cee 100644
--- a/drivers/net/ethernet/freescale/fman/fman.c
+++ b/drivers/net/ethernet/freescale/fman/fman.c
@@ -2786,7 +2786,7 @@ static struct fman *read_dts_node(struct platform_device *of_dev)
if (!muram_node) {
dev_err(&of_dev->dev, "%s: could not find MURAM node\n",
__func__);
- goto fman_node_put;
+ goto fman_free;
}
err = of_address_to_resource(muram_node, 0,
@@ -2795,11 +2795,10 @@ static struct fman *read_dts_node(struct platform_device *of_dev)
of_node_put(muram_node);
dev_err(&of_dev->dev, "%s: of_address_to_resource() = %d\n",
__func__, err);
- goto fman_node_put;
+ goto fman_free;
}
of_node_put(muram_node);
- of_node_put(fm_node);
err = devm_request_irq(&of_dev->dev, irq, fman_irq, IRQF_SHARED,
"fman", fman);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 56/73] net: mvpp2: fix detection of 10G SFP modules
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (20 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 54/73] ethernet: fman: fix wrong of_node_put() in probe function Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 57/73] net: mvpp2: fix phylink handling of invalid PHY modes Sasha Levin
` (4 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Baruch Siach, Maxime Chevallier, Antoine Tenart, David S . Miller,
Sasha Levin, netdev
From: Baruch Siach <baruch@tkos.co.il>
[ Upstream commit 01b3fd5ac97caffb8e5d5bd85086da33db3b361f ]
The mvpp2_phylink_validate() relies on the interface field of
phylink_link_state to determine valid link modes. However, when called
from phylink_sfp_module_insert() this field in not initialized. The
default switch case then excludes 10G link modes. This allows 10G SFP
modules that are detected correctly to be configured at max rate of
2.5G.
Catch the uninitialized PHY mode case, and allow 10G rates.
Fixes: d97c9f4ab000b ("net: mvpp2: 1000baseX support")
Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>
Cc: Antoine Tenart <antoine.tenart@bootlin.com>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
index a74002b43b51..1b3b64fea038 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -4271,6 +4271,7 @@ static void mvpp2_phylink_validate(struct net_device *dev,
switch (state->interface) {
case PHY_INTERFACE_MODE_10GKR:
+ case PHY_INTERFACE_MODE_NA:
phylink_set(mask, 10000baseCR_Full);
phylink_set(mask, 10000baseSR_Full);
phylink_set(mask, 10000baseLR_Full);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 57/73] net: mvpp2: fix phylink handling of invalid PHY modes
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (21 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 56/73] net: mvpp2: fix detection of 10G SFP modules Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 64/73] vhost/vsock: fix reset orphans race with close timeout Sasha Levin
` (3 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Baruch Siach, Maxime Chevallier, Antoine Tenart, David S . Miller,
Sasha Levin, netdev
From: Baruch Siach <baruch@tkos.co.il>
[ Upstream commit 0fb628f0f250c74b1023edd0ca4a57c8b35b9b2c ]
The .validate phylink callback should empty the supported bitmap when
the interface mode is invalid.
Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>
Cc: Antoine Tenart <antoine.tenart@bootlin.com>
Reported-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
.../net/ethernet/marvell/mvpp2/mvpp2_main.c | 33 ++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
index 1b3b64fea038..6320e080b831 100644
--- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
+++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
@@ -4262,8 +4262,27 @@ static void mvpp2_phylink_validate(struct net_device *dev,
unsigned long *supported,
struct phylink_link_state *state)
{
+ struct mvpp2_port *port = netdev_priv(dev);
__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
+ /* Invalid combinations */
+ switch (state->interface) {
+ case PHY_INTERFACE_MODE_10GKR:
+ case PHY_INTERFACE_MODE_XAUI:
+ if (port->gop_id != 0)
+ goto empty_set;
+ break;
+ case PHY_INTERFACE_MODE_RGMII:
+ case PHY_INTERFACE_MODE_RGMII_ID:
+ case PHY_INTERFACE_MODE_RGMII_RXID:
+ case PHY_INTERFACE_MODE_RGMII_TXID:
+ if (port->gop_id == 0)
+ goto empty_set;
+ break;
+ default:
+ break;
+ }
+
phylink_set(mask, Autoneg);
phylink_set_port_modes(mask);
phylink_set(mask, Pause);
@@ -4271,6 +4290,7 @@ static void mvpp2_phylink_validate(struct net_device *dev,
switch (state->interface) {
case PHY_INTERFACE_MODE_10GKR:
+ case PHY_INTERFACE_MODE_XAUI:
case PHY_INTERFACE_MODE_NA:
phylink_set(mask, 10000baseCR_Full);
phylink_set(mask, 10000baseSR_Full);
@@ -4279,7 +4299,11 @@ static void mvpp2_phylink_validate(struct net_device *dev,
phylink_set(mask, 10000baseER_Full);
phylink_set(mask, 10000baseKR_Full);
/* Fall-through */
- default:
+ case PHY_INTERFACE_MODE_RGMII:
+ case PHY_INTERFACE_MODE_RGMII_ID:
+ case PHY_INTERFACE_MODE_RGMII_RXID:
+ case PHY_INTERFACE_MODE_RGMII_TXID:
+ case PHY_INTERFACE_MODE_SGMII:
phylink_set(mask, 10baseT_Half);
phylink_set(mask, 10baseT_Full);
phylink_set(mask, 100baseT_Half);
@@ -4291,11 +4315,18 @@ static void mvpp2_phylink_validate(struct net_device *dev,
phylink_set(mask, 1000baseT_Full);
phylink_set(mask, 1000baseX_Full);
phylink_set(mask, 2500baseX_Full);
+ break;
+ default:
+ goto empty_set;
}
bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
bitmap_and(state->advertising, state->advertising, mask,
__ETHTOOL_LINK_MODE_MASK_NBITS);
+ return;
+
+empty_set:
+ bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
}
static void mvpp22_xlg_link_state(struct mvpp2_port *port,
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 64/73] vhost/vsock: fix reset orphans race with close timeout
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (22 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 57/73] net: mvpp2: fix phylink handling of invalid PHY modes Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 65/73] mlxsw: spectrum_switchdev: Fix VLAN device deletion via ioctl Sasha Levin
` (2 subsequent siblings)
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Stefan Hajnoczi, Graham Whaley, Michael S . Tsirkin, Sasha Levin,
kvm, virtualization, netdev
From: Stefan Hajnoczi <stefanha@redhat.com>
[ Upstream commit c38f57da428b033f2721b611d84b1f40bde674a8 ]
If a local process has closed a connected socket and hasn't received a
RST packet yet, then the socket remains in the table until a timeout
expires.
When a vhost_vsock instance is released with the timeout still pending,
the socket is never freed because vhost_vsock has already set the
SOCK_DONE flag.
Check if the close timer is pending and let it close the socket. This
prevents the race which can leak sockets.
Reported-by: Maximilian Riemensberger <riemensberger@cadami.net>
Cc: Graham Whaley <graham.whaley@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/vhost/vsock.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
index 34bc3ab40c6d..731e2ea2aeca 100644
--- a/drivers/vhost/vsock.c
+++ b/drivers/vhost/vsock.c
@@ -563,13 +563,21 @@ static void vhost_vsock_reset_orphans(struct sock *sk)
* executing.
*/
- if (!vhost_vsock_get(vsk->remote_addr.svm_cid)) {
- sock_set_flag(sk, SOCK_DONE);
- vsk->peer_shutdown = SHUTDOWN_MASK;
- sk->sk_state = SS_UNCONNECTED;
- sk->sk_err = ECONNRESET;
- sk->sk_error_report(sk);
- }
+ /* If the peer is still valid, no need to reset connection */
+ if (vhost_vsock_get(vsk->remote_addr.svm_cid))
+ return;
+
+ /* If the close timeout is pending, let it expire. This avoids races
+ * with the timeout callback.
+ */
+ if (vsk->close_work_scheduled)
+ return;
+
+ sock_set_flag(sk, SOCK_DONE);
+ vsk->peer_shutdown = SHUTDOWN_MASK;
+ sk->sk_state = SS_UNCONNECTED;
+ sk->sk_err = ECONNRESET;
+ sk->sk_error_report(sk);
}
static int vhost_vsock_dev_release(struct inode *inode, struct file *file)
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 65/73] mlxsw: spectrum_switchdev: Fix VLAN device deletion via ioctl
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (23 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 64/73] vhost/vsock: fix reset orphans race with close timeout Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 72/73] Revert "net/ibm/emac: wrong bit is used for STA control" Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 73/73] net/mlx4_core: Correctly set PFC param if global pause is turned off Sasha Levin
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Ido Schimmel, David S . Miller, Sasha Levin, netdev
From: Ido Schimmel <idosch@mellanox.com>
[ Upstream commit 993107fea5eefdfdfde1ca38d3f01f0bebf76e77 ]
When deleting a VLAN device using an ioctl the netdev is unregistered
before the VLAN filter is updated via ndo_vlan_rx_kill_vid(). It can
lead to a use-after-free in mlxsw in case the VLAN device is deleted
while being enslaved to a bridge.
The reason for the above is that when mlxsw receives the CHANGEUPPER
event, it wrongly assumes that the VLAN device is no longer its upper
and thus destroys the internal representation of the bridge port despite
the reference count being non-zero.
Fix this by checking if the VLAN device is our upper using its real
device. In net-next I'm going to remove this trick and instead make
mlxsw completely agnostic to the order of the events.
Fixes: c57529e1d5d8 ("mlxsw: spectrum: Replace vPorts with Port-VLAN")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
.../net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
index 7715f1ed2bcb..4eb64cb0d9a1 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
@@ -286,7 +286,13 @@ static bool
mlxsw_sp_bridge_port_should_destroy(const struct mlxsw_sp_bridge_port *
bridge_port)
{
- struct mlxsw_sp *mlxsw_sp = mlxsw_sp_lower_get(bridge_port->dev);
+ struct net_device *dev = bridge_port->dev;
+ struct mlxsw_sp *mlxsw_sp;
+
+ if (is_vlan_dev(dev))
+ mlxsw_sp = mlxsw_sp_lower_get(vlan_dev_real_dev(dev));
+ else
+ mlxsw_sp = mlxsw_sp_lower_get(dev);
/* In case ports were pulled from out of a bridged LAG, then
* it's possible the reference count isn't zero, yet the bridge
@@ -2020,7 +2026,7 @@ mlxsw_sp_bridge_8021d_port_leave(struct mlxsw_sp_bridge_device *bridge_device,
vid = is_vlan_dev(dev) ? vlan_dev_vlan_id(dev) : 1;
mlxsw_sp_port_vlan = mlxsw_sp_port_vlan_find_by_vid(mlxsw_sp_port, vid);
- if (WARN_ON(!mlxsw_sp_port_vlan))
+ if (!mlxsw_sp_port_vlan)
return;
mlxsw_sp_port_vlan_bridge_leave(mlxsw_sp_port_vlan);
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 72/73] Revert "net/ibm/emac: wrong bit is used for STA control"
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (24 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 65/73] mlxsw: spectrum_switchdev: Fix VLAN device deletion via ioctl Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 73/73] net/mlx4_core: Correctly set PFC param if global pause is turned off Sasha Levin
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Benjamin Herrenschmidt, David S . Miller, Sasha Levin, netdev
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[ Upstream commit 5b3279e2cba2238b37f6c18adfdea8bddb32715a ]
This reverts commit 624ca9c33c8a853a4a589836e310d776620f4ab9.
This commit is completely bogus. The STACR register has two formats, old
and new, depending on the version of the IP block used. There's a pair of
device-tree properties that can be used to specify the format used:
has-inverted-stacr-oc
has-new-stacr-staopc
What this commit did was to change the bit definition used with the old
parts to match the new parts. This of course breaks the driver on all
the old ones.
Instead, the author should have set the appropriate properties in the
device-tree for the variant used on his board.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/ibm/emac/emac.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/ibm/emac/emac.h b/drivers/net/ethernet/ibm/emac/emac.h
index e2f80cca9bed..0d2de6f67676 100644
--- a/drivers/net/ethernet/ibm/emac/emac.h
+++ b/drivers/net/ethernet/ibm/emac/emac.h
@@ -231,7 +231,7 @@ struct emac_regs {
#define EMAC_STACR_PHYE 0x00004000
#define EMAC_STACR_STAC_MASK 0x00003000
#define EMAC_STACR_STAC_READ 0x00001000
-#define EMAC_STACR_STAC_WRITE 0x00000800
+#define EMAC_STACR_STAC_WRITE 0x00002000
#define EMAC_STACR_OPBC_MASK 0x00000C00
#define EMAC_STACR_OPBC_50 0x00000000
#define EMAC_STACR_OPBC_66 0x00000400
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [PATCH AUTOSEL 4.19 73/73] net/mlx4_core: Correctly set PFC param if global pause is turned off.
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
` (25 preceding siblings ...)
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 72/73] Revert "net/ibm/emac: wrong bit is used for STA control" Sasha Levin
@ 2018-12-13 4:28 ` Sasha Levin
26 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-13 4:28 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Tarick Bedeir, David S . Miller, Sasha Levin, netdev, linux-rdma
From: Tarick Bedeir <tarick@google.com>
[ Upstream commit bd5122cd1e0644d8bd8dd84517c932773e999766 ]
rx_ppp and tx_ppp can be set between 0 and 255, so don't clamp to 1.
Fixes: 6e8814ceb7e8 ("net/mlx4_en: Fix mixed PFC and Global pause user control requests")
Signed-off-by: Tarick Bedeir <tarick@google.com>
Reviewed-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index f11b45001cad..d290f0787dfb 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -1084,8 +1084,8 @@ static int mlx4_en_set_pauseparam(struct net_device *dev,
tx_pause = !!(pause->tx_pause);
rx_pause = !!(pause->rx_pause);
- rx_ppp = priv->prof->rx_ppp && !(tx_pause || rx_pause);
- tx_ppp = priv->prof->tx_ppp && !(tx_pause || rx_pause);
+ rx_ppp = (tx_pause || rx_pause) ? 0 : priv->prof->rx_ppp;
+ tx_ppp = (tx_pause || rx_pause) ? 0 : priv->prof->tx_ppp;
err = mlx4_SET_PORT_general(mdev->dev, priv->port,
priv->rx_skb_size + ETH_FCS_LEN,
--
2.19.1
^ permalink raw reply related [flat|nested] 32+ messages in thread
* RE: [PATCH AUTOSEL 4.19 45/73] net: phy: micrel: add toggling phy reset if PHY is not attached
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 45/73] net: phy: micrel: add toggling phy reset " Sasha Levin
@ 2018-12-13 4:44 ` Yoshihiro Shimoda
2018-12-19 13:43 ` Sasha Levin
0 siblings, 1 reply; 32+ messages in thread
From: Yoshihiro Shimoda @ 2018-12-13 4:44 UTC (permalink / raw)
To: Sasha Levin, linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: David S . Miller, netdev@vger.kernel.org
Hi,
> From: Sasha Levin <sashal@kernel.org>, Sent: Thursday, December 13, 2018 1:28 PM
>
> From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
>
> [ Upstream commit 8c85f4b81296a530b8af2796c110fa482ac42d4f ]
Since this upstream commit are reverted by the following commit,
we should not backport it.
---
commit 7b566f70e1bf65b189b66eb3de6f431c30f7dff2
Author: David S. Miller <davem@davemloft.net>
Date: Tue Dec 4 08:47:44 2018 -0800
phy: Revert toggling reset changes.
This reverts:
ef1b5bf506b1 ("net: phy: Fix not to call phy_resume() if PHY is not attached
8c85f4b81296 ("net: phy: micrel: add toggling phy reset if PHY is not attac
Andrew Lunn informs me that there are alternative efforts
underway to fix this more properly.
Signed-off-by: David S. Miller <davem@davemloft.net>
---
Best regards,
Yoshihiro Shimoda
> This patch adds toggling phy reset if PHY is not attached. Otherwise,
> some boards (e.g. R-Car H3 Salvator-XS) cannot link up correctly if
> we do the following method:
>
> 1) Kernel boots by using initramfs.
> --> No open the nic, so phy_device_register() and phy_probe()
> deasserts the reset.
> 2) Kernel enters the suspend.
> --> So, keep the reset signal as deassert.
> --> On R-Car Salvator-XS board, unfortunately, the board power is
> turned off.
> 3) Kernel returns from suspend.
> 4) ifconfig eth0 up
> --> Then, since edge signal of the reset doesn't happen,
> it cannot link up.
> 5) ifconfig eth0 down
> 6) ifconfig eth0 up
> --> In this case, it can link up.
>
> Reported-by: Hiromitsu Yamasaki <hiromitsu.yamasaki.ym@renesas.com>
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
> drivers/net/phy/micrel.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
> index 3db06b40580d..327f00034d01 100644
> --- a/drivers/net/phy/micrel.c
> +++ b/drivers/net/phy/micrel.c
> @@ -23,6 +23,7 @@
> * ksz9477
> */
>
> +#include <linux/delay.h>
> #include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/phy.h>
> @@ -725,6 +726,13 @@ static int kszphy_resume(struct phy_device *phydev)
> {
> int ret;
>
> + if (!phydev->attached_dev) {
> + /* If the PHY is not attached, toggle the reset */
> + phy_device_reset(phydev, 1);
> + udelay(1);
> + phy_device_reset(phydev, 0);
> + }
> +
> genphy_resume(phydev);
>
> ret = kszphy_config_reset(phydev);
> --
> 2.19.1
^ permalink raw reply [flat|nested] 32+ messages in thread
* RE: [PATCH AUTOSEL 4.19 44/73] net: phy: Fix not to call phy_resume() if PHY is not attached
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 44/73] net: phy: Fix not to call phy_resume() if PHY is not attached Sasha Levin
@ 2018-12-13 4:48 ` Yoshihiro Shimoda
2018-12-19 13:43 ` Sasha Levin
0 siblings, 1 reply; 32+ messages in thread
From: Yoshihiro Shimoda @ 2018-12-13 4:48 UTC (permalink / raw)
To: Sasha Levin, linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: David S . Miller, netdev@vger.kernel.org
Hi,
> From: Sasha Levin, Sent: Thursday, December 13, 2018 1:28 PM
>
> From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
>
> [ Upstream commit ef1b5bf506b1f0ee3edc98533e1f3ecb105eb46a ]
This upstream commit is also reverted on mainline
as I mentioned other email thread[1]
[1]
https://lore.kernel.org/lkml/OSAPR01MB2290FE36AF50B2F29170383DD8A00@OSAPR01MB2290.jpnprd01.prod.outlook.com/T/#u
Best regards,
Yoshihiro Shimoda
> This patch fixes an issue that mdio_bus_phy_resume() doesn't call
> phy_resume() if the PHY is not attached.
>
> Fixes: 803dd9c77ac3 ("net: phy: avoid suspending twice a PHY")
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
> drivers/net/phy/phy_device.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
> index 20d1be2b070b..16a94f5b8073 100644
> --- a/drivers/net/phy/phy_device.c
> +++ b/drivers/net/phy/phy_device.c
> @@ -76,7 +76,7 @@ static LIST_HEAD(phy_fixup_list);
> static DEFINE_MUTEX(phy_fixup_lock);
>
> #ifdef CONFIG_PM
> -static bool mdio_bus_phy_may_suspend(struct phy_device *phydev)
> +static bool mdio_bus_phy_may_suspend(struct phy_device *phydev, bool suspend)
> {
> struct device_driver *drv = phydev->mdio.dev.driver;
> struct phy_driver *phydrv = to_phy_driver(drv);
> @@ -88,10 +88,11 @@ static bool mdio_bus_phy_may_suspend(struct phy_device *phydev)
> /* PHY not attached? May suspend if the PHY has not already been
> * suspended as part of a prior call to phy_disconnect() ->
> * phy_detach() -> phy_suspend() because the parent netdev might be the
> - * MDIO bus driver and clock gated at this point.
> + * MDIO bus driver and clock gated at this point. Also may resume if
> + * PHY is not attached.
> */
> if (!netdev)
> - return !phydev->suspended;
> + return suspend ? !phydev->suspended : phydev->suspended;
>
> if (netdev->wol_enabled)
> return false;
> @@ -126,7 +127,7 @@ static int mdio_bus_phy_suspend(struct device *dev)
> if (phydev->attached_dev && phydev->adjust_link)
> phy_stop_machine(phydev);
>
> - if (!mdio_bus_phy_may_suspend(phydev))
> + if (!mdio_bus_phy_may_suspend(phydev, true))
> return 0;
>
> return phy_suspend(phydev);
> @@ -137,7 +138,7 @@ static int mdio_bus_phy_resume(struct device *dev)
> struct phy_device *phydev = to_phy_device(dev);
> int ret;
>
> - if (!mdio_bus_phy_may_suspend(phydev))
> + if (!mdio_bus_phy_may_suspend(phydev, false))
> goto no_resume;
>
> ret = phy_resume(phydev);
> --
> 2.19.1
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH AUTOSEL 4.19 44/73] net: phy: Fix not to call phy_resume() if PHY is not attached
2018-12-13 4:48 ` Yoshihiro Shimoda
@ 2018-12-19 13:43 ` Sasha Levin
0 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-19 13:43 UTC (permalink / raw)
To: Yoshihiro Shimoda
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
David S . Miller, netdev@vger.kernel.org
On Thu, Dec 13, 2018 at 04:48:07AM +0000, Yoshihiro Shimoda wrote:
>Hi,
>
>> From: Sasha Levin, Sent: Thursday, December 13, 2018 1:28 PM
>>
>> From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
>>
>> [ Upstream commit ef1b5bf506b1f0ee3edc98533e1f3ecb105eb46a ]
>
>This upstream commit is also reverted on mainline
>as I mentioned other email thread[1]
>
>[1]
>https://lore.kernel.org/lkml/OSAPR01MB2290FE36AF50B2F29170383DD8A00@OSAPR01MB2290.jpnprd01.prod.outlook.com/T/#u
I've dropped this commit, thank you!
^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: [PATCH AUTOSEL 4.19 45/73] net: phy: micrel: add toggling phy reset if PHY is not attached
2018-12-13 4:44 ` Yoshihiro Shimoda
@ 2018-12-19 13:43 ` Sasha Levin
0 siblings, 0 replies; 32+ messages in thread
From: Sasha Levin @ 2018-12-19 13:43 UTC (permalink / raw)
To: Yoshihiro Shimoda
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
David S . Miller, netdev@vger.kernel.org
On Thu, Dec 13, 2018 at 04:44:41AM +0000, Yoshihiro Shimoda wrote:
>Hi,
>
>> From: Sasha Levin <sashal@kernel.org>, Sent: Thursday, December 13, 2018 1:28 PM
>>
>> From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
>>
>> [ Upstream commit 8c85f4b81296a530b8af2796c110fa482ac42d4f ]
>
>Since this upstream commit are reverted by the following commit,
>we should not backport it.
>
>---
>commit 7b566f70e1bf65b189b66eb3de6f431c30f7dff2
>Author: David S. Miller <davem@davemloft.net>
>Date: Tue Dec 4 08:47:44 2018 -0800
>
> phy: Revert toggling reset changes.
>
> This reverts:
>
> ef1b5bf506b1 ("net: phy: Fix not to call phy_resume() if PHY is not attached
> 8c85f4b81296 ("net: phy: micrel: add toggling phy reset if PHY is not attac
>
> Andrew Lunn informs me that there are alternative efforts
> underway to fix this more properly.
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>---
I've dropped this commit, thank you!
^ permalink raw reply [flat|nested] 32+ messages in thread
end of thread, other threads:[~2018-12-19 13:43 UTC | newest]
Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-13 4:27 [PATCH AUTOSEL 4.19 01/73] mac80211_hwsim: fix module init error paths for netlink Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 06/73] tools/bpf: fix two test_btf unit test cases Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 07/73] tools/bpf: add addition type tests to test_btf Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 08/73] net: ethernet: ave: Replace NET_IP_ALIGN with AVE_FRAME_HEADROOM Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 09/73] net: phy: sfp: correct store of detected link modes Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 20/73] net: stmmac: Move debugfs init/exit to ->probe()/->remove() Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 21/73] net: aquantia: fix rx checksum offload bits Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 22/73] bonding: fix 802.3ad state sent to partner when unbinding slave Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 23/73] bpf: Fix verifier log string check for bad alignment Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 24/73] liquidio: read sc->iq_no before release sc Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 26/73] SUNRPC: Fix leak of krb5p encode pages Sasha Levin
2018-12-13 4:27 ` [PATCH AUTOSEL 4.19 27/73] SUNRPC: Fix a potential race in xprt_connect() Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 42/73] net: phy: don't allow __set_phy_supported to add unsupported modes Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 43/73] net: 8139cp: fix a BUG triggered by changing mtu with network traffic Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 44/73] net: phy: Fix not to call phy_resume() if PHY is not attached Sasha Levin
2018-12-13 4:48 ` Yoshihiro Shimoda
2018-12-19 13:43 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 45/73] net: phy: micrel: add toggling phy reset " Sasha Levin
2018-12-13 4:44 ` Yoshihiro Shimoda
2018-12-19 13:43 ` Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 46/73] macvlan: return correct error value Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 47/73] mv88e6060: disable hardware level MAC learning Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 48/73] net/mlx4_en: Change min MTU size to ETH_MIN_MTU Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 49/73] net/mlx4_en: Fix build break when CONFIG_INET is off Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 50/73] bpf: check pending signals while verifying programs Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 54/73] ethernet: fman: fix wrong of_node_put() in probe function Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 56/73] net: mvpp2: fix detection of 10G SFP modules Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 57/73] net: mvpp2: fix phylink handling of invalid PHY modes Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 64/73] vhost/vsock: fix reset orphans race with close timeout Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 65/73] mlxsw: spectrum_switchdev: Fix VLAN device deletion via ioctl Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 72/73] Revert "net/ibm/emac: wrong bit is used for STA control" Sasha Levin
2018-12-13 4:28 ` [PATCH AUTOSEL 4.19 73/73] net/mlx4_core: Correctly set PFC param if global pause is turned off Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).