From: Greg Kroah-Hartman Date: Mon, 18 Jun 2018 13:47:00 +0000 (+0200) Subject: drop some qeth driver patches X-Git-Tag: v4.16.17~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=955a20ea956a496a69b643d4e069f95c447bd123;p=thirdparty%2Fkernel%2Fstable-queue.git drop some qeth driver patches --- diff --git a/queue-4.14/s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch b/queue-4.14/s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch deleted file mode 100644 index c09fa0a2264..00000000000 --- a/queue-4.14/s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch +++ /dev/null @@ -1,42 +0,0 @@ -From foo@baz Sun Jun 17 12:13:49 CEST 2018 -From: Julian Wiedmann -Date: Thu, 19 Apr 2018 12:52:11 +0200 -Subject: s390/qeth: use Read device to query hypervisor for MAC - -From: Julian Wiedmann - -[ Upstream commit b7493e91c11a757cf0f8ab26989642ee4bb2c642 ] - -For z/VM NICs, qeth needs to consider which of the three CCW devices in -an MPC group it uses for requesting a managed MAC address. - -On the Base device, the hypervisor returns a default MAC which is -pre-assigned when creating the NIC (this MAC is also returned by the -READ MAC primitive). Querying any other device results in the allocation -of an additional MAC address. - -For consistency with READ MAC and to avoid using up more addresses than -necessary, it is preferable to use the NIC's default MAC. So switch the -the diag26c over to using a NIC's Read device, which should always be -identical to the Base device. - -Fixes: ec61bd2fd2a2 ("s390/qeth: use diag26c to get MAC address on L2") -Signed-off-by: Julian Wiedmann -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/s390/net/qeth_core_main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/s390/net/qeth_core_main.c -+++ b/drivers/s390/net/qeth_core_main.c -@@ -4837,7 +4837,7 @@ int qeth_vm_request_mac(struct qeth_card - goto out; - } - -- ccw_device_get_id(CARD_DDEV(card), &id); -+ ccw_device_get_id(CARD_RDEV(card), &id); - request->resp_buf_len = sizeof(*response); - request->resp_version = DIAG26C_VERSION2; - request->op_code = DIAG26C_GET_MAC; diff --git a/queue-4.14/series b/queue-4.14/series index 9078dbd090b..58e2ed6702b 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -47,7 +47,6 @@ proc-revalidate-kernel-thread-inodes-to-root-root.patch kexec_file-do-not-add-extra-alignment-to-efi-memmap.patch mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create.patch usb-typec-ucsi-fix-tracepoint-related-build-error.patch -s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch acpi-pm-blacklist-low-power-s0-idle-_dsm-for-thinkpad-x1-tablet-2016.patch dt-bindings-meson-uart-dt-fix-s-clocks-names-clock-names.patch powerpc-powernv-memtrace-let-the-arch-hotunplug-code-flush-cache.patch diff --git a/queue-4.16/s390-qeth-fix-mac-address-update-sequence.patch b/queue-4.16/s390-qeth-fix-mac-address-update-sequence.patch deleted file mode 100644 index 8aaa6aa6b2c..00000000000 --- a/queue-4.16/s390-qeth-fix-mac-address-update-sequence.patch +++ /dev/null @@ -1,124 +0,0 @@ -From foo@baz Sun Jun 17 12:07:33 CEST 2018 -From: Julian Wiedmann -Date: Thu, 19 Apr 2018 12:52:09 +0200 -Subject: s390/qeth: fix MAC address update sequence - -From: Julian Wiedmann - -[ Upstream commit bcacfcbc82b4235d280ed9b067aa4567f4a0c756 ] - -When changing the MAC address on a L2 qeth device, current code first -unregisters the old address, then registers the new one. -If HW rejects the new address (or the IO fails), the device ends up with -no operable address at all. - -Re-order the code flow so that the old address only gets dropped if the -new address was registered successfully. While at it, add logic to catch -some corner-cases. - -Signed-off-by: Julian Wiedmann -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/s390/net/qeth_l2_main.c | 55 ++++++++++++++++++++++------------------ - 1 file changed, 31 insertions(+), 24 deletions(-) - ---- a/drivers/s390/net/qeth_l2_main.c -+++ b/drivers/s390/net/qeth_l2_main.c -@@ -122,13 +122,10 @@ static int qeth_l2_send_setmac(struct qe - QETH_CARD_TEXT(card, 2, "L2Setmac"); - rc = qeth_l2_send_setdelmac(card, mac, IPA_CMD_SETVMAC); - if (rc == 0) { -- card->info.mac_bits |= QETH_LAYER2_MAC_REGISTERED; -- ether_addr_copy(card->dev->dev_addr, mac); - dev_info(&card->gdev->dev, -- "MAC address %pM successfully registered on device %s\n", -- card->dev->dev_addr, card->dev->name); -+ "MAC address %pM successfully registered on device %s\n", -+ mac, card->dev->name); - } else { -- card->info.mac_bits &= ~QETH_LAYER2_MAC_REGISTERED; - switch (rc) { - case -EEXIST: - dev_warn(&card->gdev->dev, -@@ -143,19 +140,6 @@ static int qeth_l2_send_setmac(struct qe - return rc; - } - --static int qeth_l2_send_delmac(struct qeth_card *card, __u8 *mac) --{ -- int rc; -- -- QETH_CARD_TEXT(card, 2, "L2Delmac"); -- if (!(card->info.mac_bits & QETH_LAYER2_MAC_REGISTERED)) -- return 0; -- rc = qeth_l2_send_setdelmac(card, mac, IPA_CMD_DELVMAC); -- if (rc == 0) -- card->info.mac_bits &= ~QETH_LAYER2_MAC_REGISTERED; -- return rc; --} -- - static int qeth_l2_write_mac(struct qeth_card *card, u8 *mac) - { - enum qeth_ipa_cmds cmd = is_multicast_ether_addr_64bits(mac) ? -@@ -522,6 +506,7 @@ static int qeth_l2_set_mac_address(struc - { - struct sockaddr *addr = p; - struct qeth_card *card = dev->ml_priv; -+ u8 old_addr[ETH_ALEN]; - int rc = 0; - - QETH_CARD_TEXT(card, 3, "setmac"); -@@ -533,14 +518,35 @@ static int qeth_l2_set_mac_address(struc - return -EOPNOTSUPP; - } - QETH_CARD_HEX(card, 3, addr->sa_data, ETH_ALEN); -+ if (!is_valid_ether_addr(addr->sa_data)) -+ return -EADDRNOTAVAIL; -+ - if (qeth_wait_for_threads(card, QETH_RECOVER_THREAD)) { - QETH_CARD_TEXT(card, 3, "setmcREC"); - return -ERESTARTSYS; - } -- rc = qeth_l2_send_delmac(card, &card->dev->dev_addr[0]); -- if (!rc || (rc == -ENOENT)) -- rc = qeth_l2_send_setmac(card, addr->sa_data); -- return rc ? -EINVAL : 0; -+ -+ if (!qeth_card_hw_is_reachable(card)) { -+ ether_addr_copy(dev->dev_addr, addr->sa_data); -+ return 0; -+ } -+ -+ /* don't register the same address twice */ -+ if (ether_addr_equal_64bits(dev->dev_addr, addr->sa_data) && -+ (card->info.mac_bits & QETH_LAYER2_MAC_REGISTERED)) -+ return 0; -+ -+ /* add the new address, switch over, drop the old */ -+ rc = qeth_l2_send_setmac(card, addr->sa_data); -+ if (rc) -+ return rc; -+ ether_addr_copy(old_addr, dev->dev_addr); -+ ether_addr_copy(dev->dev_addr, addr->sa_data); -+ -+ if (card->info.mac_bits & QETH_LAYER2_MAC_REGISTERED) -+ qeth_l2_remove_mac(card, old_addr); -+ card->info.mac_bits |= QETH_LAYER2_MAC_REGISTERED; -+ return 0; - } - - static void qeth_promisc_to_bridge(struct qeth_card *card) -@@ -1067,8 +1073,9 @@ static int __qeth_l2_set_online(struct c - goto out_remove; - } - -- if (card->info.type != QETH_CARD_TYPE_OSN) -- qeth_l2_send_setmac(card, &card->dev->dev_addr[0]); -+ if (card->info.type != QETH_CARD_TYPE_OSN && -+ !qeth_l2_send_setmac(card, card->dev->dev_addr)) -+ card->info.mac_bits |= QETH_LAYER2_MAC_REGISTERED; - - if (qeth_is_diagass_supported(card, QETH_DIAGS_CMD_TRAP)) { - if (card->info.hwtrap && diff --git a/queue-4.16/s390-qeth-fix-request-side-race-during-cmd-io-timeout.patch b/queue-4.16/s390-qeth-fix-request-side-race-during-cmd-io-timeout.patch index 2acf345701a..06067ed5295 100644 --- a/queue-4.16/s390-qeth-fix-request-side-race-during-cmd-io-timeout.patch +++ b/queue-4.16/s390-qeth-fix-request-side-race-during-cmd-io-timeout.patch @@ -196,7 +196,7 @@ Signed-off-by: Greg Kroah-Hartman /*****************************************************************************/ --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c -@@ -1346,8 +1346,8 @@ static int qeth_osn_send_control_data(st +@@ -1339,8 +1339,8 @@ static int qeth_osn_send_control_data(st qeth_prepare_control_data(card, len, iob); QETH_CARD_TEXT(card, 6, "osnoirqp"); spin_lock_irqsave(get_ccwdev_lock(card->write.ccwdev), flags); diff --git a/queue-4.16/s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch b/queue-4.16/s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch deleted file mode 100644 index 86b4d1a916f..00000000000 --- a/queue-4.16/s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch +++ /dev/null @@ -1,42 +0,0 @@ -From foo@baz Sun Jun 17 12:07:33 CEST 2018 -From: Julian Wiedmann -Date: Thu, 19 Apr 2018 12:52:11 +0200 -Subject: s390/qeth: use Read device to query hypervisor for MAC - -From: Julian Wiedmann - -[ Upstream commit b7493e91c11a757cf0f8ab26989642ee4bb2c642 ] - -For z/VM NICs, qeth needs to consider which of the three CCW devices in -an MPC group it uses for requesting a managed MAC address. - -On the Base device, the hypervisor returns a default MAC which is -pre-assigned when creating the NIC (this MAC is also returned by the -READ MAC primitive). Querying any other device results in the allocation -of an additional MAC address. - -For consistency with READ MAC and to avoid using up more addresses than -necessary, it is preferable to use the NIC's default MAC. So switch the -the diag26c over to using a NIC's Read device, which should always be -identical to the Base device. - -Fixes: ec61bd2fd2a2 ("s390/qeth: use diag26c to get MAC address on L2") -Signed-off-by: Julian Wiedmann -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin -Signed-off-by: Greg Kroah-Hartman ---- - drivers/s390/net/qeth_core_main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/s390/net/qeth_core_main.c -+++ b/drivers/s390/net/qeth_core_main.c -@@ -4839,7 +4839,7 @@ int qeth_vm_request_mac(struct qeth_card - goto out; - } - -- ccw_device_get_id(CARD_DDEV(card), &id); -+ ccw_device_get_id(CARD_RDEV(card), &id); - request->resp_buf_len = sizeof(*response); - request->resp_version = DIAG26C_VERSION2; - request->op_code = DIAG26C_GET_MAC; diff --git a/queue-4.16/series b/queue-4.16/series index 7aead6f15c6..feab77a68fe 100644 --- a/queue-4.16/series +++ b/queue-4.16/series @@ -70,9 +70,7 @@ proc-fix-proc-loadavg-regression.patch kexec_file-do-not-add-extra-alignment-to-efi-memmap.patch mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create.patch usb-typec-ucsi-fix-tracepoint-related-build-error.patch -s390-qeth-fix-mac-address-update-sequence.patch s390-qeth-fix-request-side-race-during-cmd-io-timeout.patch -s390-qeth-use-read-device-to-query-hypervisor-for-mac.patch acpi-pm-blacklist-low-power-s0-idle-_dsm-for-thinkpad-x1-tablet-2016.patch acpi-scan-initialize-watchdog-before-pnp.patch dt-bindings-meson-uart-dt-fix-s-clocks-names-clock-names.patch