From: Greg Kroah-Hartman Date: Thu, 15 Jun 2017 07:29:29 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v4.9.33~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f80b80d1deea7ba7b9408b066ee0f57c8f380647;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: arm-dts-imx6dl-fix-the-vdd_arm_cap-voltage-for-396mhz-operation.patch call-echo-service-immediately-after-socket-reconnect.patch partitions-msdos-freebsd-ufs2-file-systems-are-not-recognized.patch s390-vmem-fix-identity-mapping.patch staging-rtl8192e-rtl92e_fill_tx_desc-fix-write-to-mapped-out-memory.patch --- diff --git a/queue-4.4/arm-dts-imx6dl-fix-the-vdd_arm_cap-voltage-for-396mhz-operation.patch b/queue-4.4/arm-dts-imx6dl-fix-the-vdd_arm_cap-voltage-for-396mhz-operation.patch new file mode 100644 index 00000000000..779e28e7682 --- /dev/null +++ b/queue-4.4/arm-dts-imx6dl-fix-the-vdd_arm_cap-voltage-for-396mhz-operation.patch @@ -0,0 +1,40 @@ +From 46350b71a09ccf3573649e03db55d4b61d5da231 Mon Sep 17 00:00:00 2001 +From: Fabio Estevam +Date: Mon, 25 Apr 2016 17:37:17 -0300 +Subject: ARM: dts: imx6dl: Fix the VDD_ARM_CAP voltage for 396MHz operation + +From: Fabio Estevam + +commit 46350b71a09ccf3573649e03db55d4b61d5da231 upstream. + +Table 8 from MX6DL datasheet (IMX6SDLCEC Rev. 5, 06/2015): +http://cache.nxp.com/files/32bit/doc/data_sheet/IMX6SDLCEC.pdf + +states the following: + +"LDO Output Set Point (VDD_ARM_CAP) = 1.125 V minimum for operation +up to 396 MHz." + +So fix the entry by adding the 25mV margin value as done in the other +entries of the table, which results in 1.15V for 396MHz operation. + +Signed-off-by: Fabio Estevam +Signed-off-by: Shawn Guo +Cc: Stephane Fillod +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/boot/dts/imx6dl.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/imx6dl.dtsi ++++ b/arch/arm/boot/dts/imx6dl.dtsi +@@ -30,7 +30,7 @@ + /* kHz uV */ + 996000 1250000 + 792000 1175000 +- 396000 1075000 ++ 396000 1150000 + >; + fsl,soc-operating-points = < + /* ARM kHz SOC-PU uV */ diff --git a/queue-4.4/call-echo-service-immediately-after-socket-reconnect.patch b/queue-4.4/call-echo-service-immediately-after-socket-reconnect.patch new file mode 100644 index 00000000000..a4624706c06 --- /dev/null +++ b/queue-4.4/call-echo-service-immediately-after-socket-reconnect.patch @@ -0,0 +1,74 @@ +From b8c600120fc87d53642476f48c8055b38d6e14c7 Mon Sep 17 00:00:00 2001 +From: Sachin Prabhu +Date: Thu, 20 Oct 2016 19:52:24 -0400 +Subject: Call echo service immediately after socket reconnect + +From: Sachin Prabhu + +commit b8c600120fc87d53642476f48c8055b38d6e14c7 upstream. + +Commit 4fcd1813e640 ("Fix reconnect to not defer smb3 session reconnect +long after socket reconnect") changes the behaviour of the SMB2 echo +service and causes it to renegotiate after a socket reconnect. However +under default settings, the echo service could take up to 120 seconds to +be scheduled. + +The patch forces the echo service to be called immediately resulting a +negotiate call being made immediately on reconnect. + +Signed-off-by: Sachin Prabhu +Reviewed-by: Pavel Shilovsky +Signed-off-by: Steve French +Acked-by: Sachin Prabhu +Signed-off-by: Pavel Shilovsky +Signed-off-by: Greg Kroah-Hartman +--- + fs/cifs/connect.c | 24 ++++++++++++++++++------ + 1 file changed, 18 insertions(+), 6 deletions(-) + +--- a/fs/cifs/connect.c ++++ b/fs/cifs/connect.c +@@ -412,6 +412,9 @@ cifs_reconnect(struct TCP_Server_Info *s + } + } while (server->tcpStatus == CifsNeedReconnect); + ++ if (server->tcpStatus == CifsNeedNegotiate) ++ mod_delayed_work(cifsiod_wq, &server->echo, 0); ++ + return rc; + } + +@@ -421,18 +424,27 @@ cifs_echo_request(struct work_struct *wo + int rc; + struct TCP_Server_Info *server = container_of(work, + struct TCP_Server_Info, echo.work); ++ unsigned long echo_interval; ++ ++ /* ++ * If we need to renegotiate, set echo interval to zero to ++ * immediately call echo service where we can renegotiate. ++ */ ++ if (server->tcpStatus == CifsNeedNegotiate) ++ echo_interval = 0; ++ else ++ echo_interval = SMB_ECHO_INTERVAL; + + /* +- * We cannot send an echo if it is disabled or until the +- * NEGOTIATE_PROTOCOL request is done, which is indicated by +- * server->ops->need_neg() == true. Also, no need to ping if +- * we got a response recently. ++ * We cannot send an echo if it is disabled. ++ * Also, no need to ping if we got a response recently. + */ + + if (server->tcpStatus == CifsNeedReconnect || +- server->tcpStatus == CifsExiting || server->tcpStatus == CifsNew || ++ server->tcpStatus == CifsExiting || ++ server->tcpStatus == CifsNew || + (server->ops->can_echo && !server->ops->can_echo(server)) || +- time_before(jiffies, server->lstrp + SMB_ECHO_INTERVAL - HZ)) ++ time_before(jiffies, server->lstrp + echo_interval - HZ)) + goto requeue_echo; + + rc = server->ops->echo ? server->ops->echo(server) : -ENOSYS; diff --git a/queue-4.4/partitions-msdos-freebsd-ufs2-file-systems-are-not-recognized.patch b/queue-4.4/partitions-msdos-freebsd-ufs2-file-systems-are-not-recognized.patch new file mode 100644 index 00000000000..be51bc1cff0 --- /dev/null +++ b/queue-4.4/partitions-msdos-freebsd-ufs2-file-systems-are-not-recognized.patch @@ -0,0 +1,44 @@ +From 223220356d5ebc05ead9a8d697abb0c0a906fc81 Mon Sep 17 00:00:00 2001 +From: Richard +Date: Sun, 21 May 2017 12:27:00 -0700 +Subject: partitions/msdos: FreeBSD UFS2 file systems are not recognized + +From: Richard + +commit 223220356d5ebc05ead9a8d697abb0c0a906fc81 upstream. + +The code in block/partitions/msdos.c recognizes FreeBSD, OpenBSD +and NetBSD partitions and does a reasonable job picking out OpenBSD +and NetBSD UFS subpartitions. + +But for FreeBSD the subpartitions are always "bad". + + Kernel: +Reviewed-by: Christoph Hellwig +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman + +--- + block/partitions/msdos.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/block/partitions/msdos.c ++++ b/block/partitions/msdos.c +@@ -300,6 +300,8 @@ static void parse_bsd(struct parsed_part + continue; + bsd_start = le32_to_cpu(p->p_offset); + bsd_size = le32_to_cpu(p->p_size); ++ if (memcmp(flavour, "bsd\0", 4) == 0) ++ bsd_start += offset; + if (offset == bsd_start && size == bsd_size) + /* full parent partition, we have it already */ + continue; diff --git a/queue-4.4/s390-vmem-fix-identity-mapping.patch b/queue-4.4/s390-vmem-fix-identity-mapping.patch new file mode 100644 index 00000000000..d749804fbdd --- /dev/null +++ b/queue-4.4/s390-vmem-fix-identity-mapping.patch @@ -0,0 +1,47 @@ +From c34a69059d7876e0793eb410deedfb08ccb22b02 Mon Sep 17 00:00:00 2001 +From: Heiko Carstens +Date: Tue, 10 May 2016 12:10:22 +0200 +Subject: s390/vmem: fix identity mapping + +From: Heiko Carstens + +commit c34a69059d7876e0793eb410deedfb08ccb22b02 upstream. + +The identity mapping is suboptimal for the last 2GB frame. The mapping +will be established with a mix of 4KB and 1MB mappings instead of a +single 2GB mapping. + +This happens because of a off-by-one bug introduced with +commit 50be63450728 ("s390/mm: Convert bootmem to memblock"). + +Currently the identity mapping looks like this: + +0x0000000080000000-0x0000000180000000 4G PUD RW +0x0000000180000000-0x00000001fff00000 2047M PMD RW +0x00000001fff00000-0x0000000200000000 1M PTE RW + +With the bug fixed it looks like this: + +0x0000000080000000-0x0000000200000000 6G PUD RW + +Fixes: 50be63450728 ("s390/mm: Convert bootmem to memblock") +Signed-off-by: Heiko Carstens +Signed-off-by: Martin Schwidefsky +Cc: Jean Delvare +Signed-off-by: Greg Kroah-Hartman + +--- + arch/s390/mm/vmem.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/s390/mm/vmem.c ++++ b/arch/s390/mm/vmem.c +@@ -372,7 +372,7 @@ void __init vmem_map_init(void) + ro_end = (unsigned long)&_eshared & PAGE_MASK; + for_each_memblock(memory, reg) { + start = reg->base; +- end = reg->base + reg->size - 1; ++ end = reg->base + reg->size; + if (start >= ro_end || end <= ro_start) + vmem_add_mem(start, end - start, 0); + else if (start >= ro_start && end <= ro_end) diff --git a/queue-4.4/series b/queue-4.4/series index 92a611005ba..d6aa30c539c 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -1 +1,5 @@ s390-vmem-fix-identity-mapping.patch +partitions-msdos-freebsd-ufs2-file-systems-are-not-recognized.patch +arm-dts-imx6dl-fix-the-vdd_arm_cap-voltage-for-396mhz-operation.patch +staging-rtl8192e-rtl92e_fill_tx_desc-fix-write-to-mapped-out-memory.patch +call-echo-service-immediately-after-socket-reconnect.patch diff --git a/queue-4.4/staging-rtl8192e-rtl92e_fill_tx_desc-fix-write-to-mapped-out-memory.patch b/queue-4.4/staging-rtl8192e-rtl92e_fill_tx_desc-fix-write-to-mapped-out-memory.patch new file mode 100644 index 00000000000..aa582d4cf23 --- /dev/null +++ b/queue-4.4/staging-rtl8192e-rtl92e_fill_tx_desc-fix-write-to-mapped-out-memory.patch @@ -0,0 +1,59 @@ +From baabd567f87be05330faa5140f72a91960e7405a Mon Sep 17 00:00:00 2001 +From: Malcolm Priestley +Date: Thu, 11 May 2017 18:57:43 +0100 +Subject: staging: rtl8192e: rtl92e_fill_tx_desc fix write to mapped out memory. + +From: Malcolm Priestley + +commit baabd567f87be05330faa5140f72a91960e7405a upstream. + +The driver attempts to alter memory that is mapped to PCI device. + +This is because tx_fwinfo_8190pci points to skb->data + +Move the pci_map_single to when completed buffer is ready to be mapped with +psdec is empty to drop on mapping error. + +Signed-off-by: Malcolm Priestley +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +--- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c ++++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +@@ -1185,8 +1185,7 @@ void rtl92e_fill_tx_desc(struct net_dev + struct cb_desc *cb_desc, struct sk_buff *skb) + { + struct r8192_priv *priv = rtllib_priv(dev); +- dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len, +- PCI_DMA_TODEVICE); ++ dma_addr_t mapping; + struct tx_fwinfo_8190pci *pTxFwInfo = NULL; + + pTxFwInfo = (struct tx_fwinfo_8190pci *)skb->data; +@@ -1197,8 +1196,6 @@ void rtl92e_fill_tx_desc(struct net_dev + pTxFwInfo->Short = _rtl92e_query_is_short(pTxFwInfo->TxHT, + pTxFwInfo->TxRate, cb_desc); + +- if (pci_dma_mapping_error(priv->pdev, mapping)) +- netdev_err(dev, "%s(): DMA Mapping error\n", __func__); + if (cb_desc->bAMPDUEnable) { + pTxFwInfo->AllowAggregation = 1; + pTxFwInfo->RxMF = cb_desc->ampdu_factor; +@@ -1233,6 +1230,14 @@ void rtl92e_fill_tx_desc(struct net_dev + } + + memset((u8 *)pdesc, 0, 12); ++ ++ mapping = pci_map_single(priv->pdev, skb->data, skb->len, ++ PCI_DMA_TODEVICE); ++ if (pci_dma_mapping_error(priv->pdev, mapping)) { ++ netdev_err(dev, "%s(): DMA Mapping error\n", __func__); ++ return; ++ } ++ + pdesc->LINIP = 0; + pdesc->CmdInit = 1; + pdesc->Offset = sizeof(struct tx_fwinfo_8190pci) + 8;