diff --git a/patches.suse/ipv6-fix-IPV6_ADDRFORM-operation-logic.patch b/patches.suse/ipv6-fix-IPV6_ADDRFORM-operation-logic.patch new file mode 100644 index 0000000..1864f84 --- /dev/null +++ b/patches.suse/ipv6-fix-IPV6_ADDRFORM-operation-logic.patch @@ -0,0 +1,75 @@ +From: Hangbin Liu +Date: Mon, 1 Jun 2020 11:55:03 +0800 +Subject: ipv6: fix IPV6_ADDRFORM operation logic +Patch-mainline: v5.8-rc1 +Git-commit: 79a1f0ccdbb4ad700590f61b00525b390cb53905 +References: bsc#1171662 + +Socket option IPV6_ADDRFORM supports UDP/UDPLITE and TCP at present. +Previously the checking logic looks like: +if (sk->sk_protocol == IPPROTO_UDP || sk->sk_protocol == IPPROTO_UDPLITE) + do_some_check; +else if (sk->sk_protocol != IPPROTO_TCP) + break; + +After commit b6f6118901d1 ("ipv6: restrict IPV6_ADDRFORM operation"), TCP +was blocked as the logic changed to: +if (sk->sk_protocol == IPPROTO_UDP || sk->sk_protocol == IPPROTO_UDPLITE) + do_some_check; +else if (sk->sk_protocol == IPPROTO_TCP) + do_some_check; + break; +else + break; + +Then after commit 82c9ae440857 ("ipv6: fix restrict IPV6_ADDRFORM operation") +UDP/UDPLITE were blocked as the logic changed to: +if (sk->sk_protocol == IPPROTO_UDP || sk->sk_protocol == IPPROTO_UDPLITE) + do_some_check; +if (sk->sk_protocol == IPPROTO_TCP) + do_some_check; + +if (sk->sk_protocol != IPPROTO_TCP) + break; + +Fix it by using Eric's code and simply remove the break in TCP check, which +looks like: +if (sk->sk_protocol == IPPROTO_UDP || sk->sk_protocol == IPPROTO_UDPLITE) + do_some_check; +else if (sk->sk_protocol == IPPROTO_TCP) + do_some_check; +else + break; + +Fixes: 82c9ae440857 ("ipv6: fix restrict IPV6_ADDRFORM operation") +Signed-off-by: Hangbin Liu +Signed-off-by: David S. Miller +Acked-by: Thomas Bogendoerfer +--- + net/ipv6/ipv6_sockglue.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +--- a/net/ipv6/ipv6_sockglue.c ++++ b/net/ipv6/ipv6_sockglue.c +@@ -185,14 +185,15 @@ static int do_ipv6_setsockopt(struct soc + retv = -EBUSY; + break; + } +- } +- if (sk->sk_protocol == IPPROTO_TCP && +- sk->sk_prot != &tcpv6_prot) { +- retv = -EBUSY; ++ } else if (sk->sk_protocol == IPPROTO_TCP) { ++ if (sk->sk_prot != &tcpv6_prot) { ++ retv = -EBUSY; ++ break; ++ } ++ } else { + break; + } +- if (sk->sk_protocol != IPPROTO_TCP) +- break; ++ + if (sk->sk_state != TCP_ESTABLISHED) { + retv = -ENOTCONN; + break; diff --git a/patches.suse/nvme-fc-print-proper-nvme-fc-devloss_tmo-value.patch b/patches.suse/nvme-fc-print-proper-nvme-fc-devloss_tmo-value.patch new file mode 100644 index 0000000..5aae1c6 --- /dev/null +++ b/patches.suse/nvme-fc-print-proper-nvme-fc-devloss_tmo-value.patch @@ -0,0 +1,34 @@ +From: Martin George +Date: Tue, 12 May 2020 22:17:04 +0530 +Subject: nvme-fc: print proper nvme-fc devloss_tmo value +Patch-mainline: v5.8-rc1 +Git-commit: 614fc1c0d980423a131bfb5c93d8d53e5272f587 +References: bsc#1172391 + +The nvme-fc devloss_tmo is computed as the min of either the +ctrl_loss_tmo (max_retries * reconnect_delay) or the remote port's +devloss_tmo. But what gets printed as the nvme-fc devloss_tmo in +nvme_fc_reconnect_or_delete() is always the remote port's devloss_tmo +value. So correct this by printing the min value instead. + +Signed-off-by: Martin George +Reviewed-by: James Smart +Signed-off-by: Christoph Hellwig +Acked-by: Daniel Wagner +--- + drivers/nvme/host/fc.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/nvme/host/fc.c ++++ b/drivers/nvme/host/fc.c +@@ -2902,7 +2902,9 @@ nvme_fc_reconnect_or_delete(struct nvme_ + dev_warn(ctrl->ctrl.device, + "NVME-FC{%d}: dev_loss_tmo (%d) expired " + "while waiting for remoteport connectivity.\n", +- ctrl->cnum, portptr->dev_loss_tmo); ++ ctrl->cnum, min_t(int, portptr->dev_loss_tmo, ++ (ctrl->ctrl.opts->max_reconnects * ++ ctrl->ctrl.opts->reconnect_delay))); + WARN_ON(nvme_delete_ctrl(&ctrl->ctrl)); + } + } diff --git a/patches.suse/spi-spi-s3c64xx-fix-system-resume-support.patch b/patches.suse/spi-spi-s3c64xx-fix-system-resume-support.patch index 5de60fd..c61afa6 100644 --- a/patches.suse/spi-spi-s3c64xx-fix-system-resume-support.patch +++ b/patches.suse/spi-spi-s3c64xx-fix-system-resume-support.patch @@ -40,7 +40,7 @@ Acked-by: Nicolas Saenz Julienne if (ret != 0) goto err_disable_src_clk; -+ s3c64xx_spi_hwinit(sdd); ++ s3c64xx_spi_hwinit(sdd, sdd->port_id); + return 0; diff --git a/series.conf b/series.conf index e7e64ff..ad9028f 100644 --- a/series.conf +++ b/series.conf @@ -53890,6 +53890,7 @@ patches.suse/agp-intel-Reinforce-the-barrier-after-GTT-updates.patch patches.suse/drm-dp_mst-Reformat-drm_dp_check_act_status-a-bit.patch patches.suse/video-fbdev-w100fb-Fix-a-potential-double-free.patch + patches.suse/nvme-fc-print-proper-nvme-fc-devloss_tmo-value.patch patches.suse/0001-btrfs-reloc-fix-reloc-root-leak-and-NULL-pointer-der.patch patches.suse/0002-btrfs-reloc-clear-DEAD_RELOC_TREE-bit-for-orphan-roo.patch patches.suse/clocksource-dw_apb_timer_of-Fix-missing-clockevent-t.patch @@ -53898,6 +53899,7 @@ patches.suse/rtlwifi-Fix-a-double-free-in-_rtl_usb_tx_urb_setup.patch patches.suse/mwifiex-Fix-memory-corruption-in-dump_station.patch patches.suse/wcn36xx-Fix-error-handling-path-in-wcn36xx_probe.patch + patches.suse/ipv6-fix-IPV6_ADDRFORM-operation-logic.patch patches.suse/media-dvb-return-EREMOTEIO-on-i2c-transfer-failure.patch patches.suse/media-platform-fcp-Set-appropriate-DMA-parameters.patch