]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fixes for 4.4
authorSasha Levin <sashal@kernel.org>
Thu, 19 Sep 2019 18:08:17 +0000 (14:08 -0400)
committerSasha Levin <sashal@kernel.org>
Thu, 19 Sep 2019 18:08:17 +0000 (14:08 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
21 files changed:
queue-4.4/arm-8874-1-mm-only-adjust-sections-of-valid-mm-struc.patch [new file with mode: 0644]
queue-4.4/arm-omap2-fix-omap4-errata-warning-on-other-socs.patch [new file with mode: 0644]
queue-4.4/cifs-set-domainname-when-a-domain-key-is-used-in-mul.patch [new file with mode: 0644]
queue-4.4/cifs-use-kzfree-to-zero-out-the-password.patch [new file with mode: 0644]
queue-4.4/dmaengine-ti-omap-dma-add-cleanup-in-omap_dma_probe.patch [new file with mode: 0644]
queue-4.4/kconfig-fix-the-reference-to-the-idt77105-phy-driver.patch [new file with mode: 0644]
queue-4.4/keys-fix-missing-null-pointer-check-in-request_key_a.patch [new file with mode: 0644]
queue-4.4/net-seeq-fix-the-function-used-to-release-some-memor.patch [new file with mode: 0644]
queue-4.4/netfilter-nf_conntrack_ftp-fix-debug-output.patch [new file with mode: 0644]
queue-4.4/nfs-fix-initialisation-of-i-o-result-struct-in-nfs_p.patch [new file with mode: 0644]
queue-4.4/nfsv2-fix-eof-handling.patch [new file with mode: 0644]
queue-4.4/nfsv2-fix-write-regression.patch [new file with mode: 0644]
queue-4.4/nfsv4-fix-return-values-for-nfs4_file_open.patch [new file with mode: 0644]
queue-4.4/perf-x86-intel-restrict-period-on-nehalem.patch [new file with mode: 0644]
queue-4.4/r8152-set-memory-to-all-0xffs-on-failed-reg-reads.patch [new file with mode: 0644]
queue-4.4/s390-bpf-fix-lcgr-instruction-encoding.patch [new file with mode: 0644]
queue-4.4/s390-bpf-use-32-bit-index-for-tail-calls.patch [new file with mode: 0644]
queue-4.4/series
queue-4.4/sky2-disable-msi-on-yet-another-asus-boards-p6xxxx.patch [new file with mode: 0644]
queue-4.4/tools-power-turbostat-fix-buffer-overrun.patch [new file with mode: 0644]
queue-4.4/x86-apic-fix-arch_dynirq_lower_bound-bug-for-dt-enab.patch [new file with mode: 0644]

diff --git a/queue-4.4/arm-8874-1-mm-only-adjust-sections-of-valid-mm-struc.patch b/queue-4.4/arm-8874-1-mm-only-adjust-sections-of-valid-mm-struc.patch
new file mode 100644 (file)
index 0000000..5e93c97
--- /dev/null
@@ -0,0 +1,52 @@
+From e80f44114e3ddd4480f233f50c54285d94acd5f1 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 1 Jul 2019 18:50:11 +0100
+Subject: ARM: 8874/1: mm: only adjust sections of valid mm structures
+
+From: Doug Berger <opendmb@gmail.com>
+
+[ Upstream commit c51bc12d06b3a5494fbfcbd788a8e307932a06e9 ]
+
+A timing hazard exists when an early fork/exec thread begins
+exiting and sets its mm pointer to NULL while a separate core
+tries to update the section information.
+
+This commit ensures that the mm pointer is not NULL before
+setting its section parameters. The arguments provided by
+commit 11ce4b33aedc ("ARM: 8672/1: mm: remove tasklist locking
+from update_sections_early()") are equally valid for not
+requiring grabbing the task_lock around this check.
+
+Fixes: 08925c2f124f ("ARM: 8464/1: Update all mm structures with section adjustments")
+Signed-off-by: Doug Berger <opendmb@gmail.com>
+Acked-by: Laura Abbott <labbott@redhat.com>
+Cc: Mike Rapoport <rppt@linux.ibm.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Cc: Florian Fainelli <f.fainelli@gmail.com>
+Cc: Rob Herring <robh@kernel.org>
+Cc: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Cc: Peng Fan <peng.fan@nxp.com>
+Cc: Geert Uytterhoeven <geert@linux-m68k.org>
+Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/mm/init.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
+index a9f6705aea238..731b7e64715b9 100644
+--- a/arch/arm/mm/init.c
++++ b/arch/arm/mm/init.c
+@@ -691,7 +691,8 @@ static void update_sections_early(struct section_perm perms[], int n)
+               if (t->flags & PF_KTHREAD)
+                       continue;
+               for_each_thread(t, s)
+-                      set_section_perms(perms, n, true, s->mm);
++                      if (s->mm)
++                              set_section_perms(perms, n, true, s->mm);
+       }
+       read_unlock(&tasklist_lock);
+       set_section_perms(perms, n, true, current->active_mm);
+-- 
+2.20.1
+
diff --git a/queue-4.4/arm-omap2-fix-omap4-errata-warning-on-other-socs.patch b/queue-4.4/arm-omap2-fix-omap4-errata-warning-on-other-socs.patch
new file mode 100644 (file)
index 0000000..20b5cfe
--- /dev/null
@@ -0,0 +1,45 @@
+From 77a91b20fc7cf5478c44e53c11cd86182b9afb30 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 23 Jul 2019 04:37:45 -0700
+Subject: ARM: OMAP2+: Fix omap4 errata warning on other SoCs
+
+From: Tony Lindgren <tony@atomide.com>
+
+[ Upstream commit 45da5e09dd32fa98c32eaafe2513db6bd75e2f4f ]
+
+We have errata i688 workaround produce warnings on SoCs other than
+omap4 and omap5:
+
+omap4_sram_init:Unable to allocate sram needed to handle errata I688
+omap4_sram_init:Unable to get sram pool needed to handle errata I688
+
+This is happening because there is no ti,omap4-mpu node, or no SRAM
+to configure for the other SoCs, so let's remove the warning based
+on the SoC revision checks.
+
+As nobody has complained it seems that the other SoC variants do not
+need this workaround.
+
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/mach-omap2/omap4-common.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
+index 949696b6f17b6..511fd08c784ba 100644
+--- a/arch/arm/mach-omap2/omap4-common.c
++++ b/arch/arm/mach-omap2/omap4-common.c
+@@ -131,6 +131,9 @@ static int __init omap4_sram_init(void)
+       struct device_node *np;
+       struct gen_pool *sram_pool;
++      if (!soc_is_omap44xx() && !soc_is_omap54xx())
++              return 0;
++
+       np = of_find_compatible_node(NULL, NULL, "ti,omap4-mpu");
+       if (!np)
+               pr_warn("%s:Unable to allocate sram needed to handle errata I688\n",
+-- 
+2.20.1
+
diff --git a/queue-4.4/cifs-set-domainname-when-a-domain-key-is-used-in-mul.patch b/queue-4.4/cifs-set-domainname-when-a-domain-key-is-used-in-mul.patch
new file mode 100644 (file)
index 0000000..6aee369
--- /dev/null
@@ -0,0 +1,72 @@
+From 8170f955939c604a42d07a092465b7c2bcdf0935 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 22 Aug 2019 08:09:50 +1000
+Subject: cifs: set domainName when a domain-key is used in multiuser
+
+From: Ronnie Sahlberg <lsahlber@redhat.com>
+
+[ Upstream commit f2aee329a68f5a907bcff11a109dfe17c0b41aeb ]
+
+RHBZ: 1710429
+
+When we use a domain-key to authenticate using multiuser we must also set
+the domainnmame for the new volume as it will be used and passed to the server
+in the NTLMSSP Domain-name.
+
+Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/cifs/connect.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
+index 9cb72fd40eff3..90e0c51ac0450 100644
+--- a/fs/cifs/connect.c
++++ b/fs/cifs/connect.c
+@@ -2466,6 +2466,7 @@ static int
+ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
+ {
+       int rc = 0;
++      int is_domain = 0;
+       const char *delim, *payload;
+       char *desc;
+       ssize_t len;
+@@ -2513,6 +2514,7 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
+                       rc = PTR_ERR(key);
+                       goto out_err;
+               }
++              is_domain = 1;
+       }
+       down_read(&key->sem);
+@@ -2570,6 +2572,26 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
+               goto out_key_put;
+       }
++      /*
++       * If we have a domain key then we must set the domainName in the
++       * for the request.
++       */
++      if (is_domain && ses->domainName) {
++              vol->domainname = kstrndup(ses->domainName,
++                                         strlen(ses->domainName),
++                                         GFP_KERNEL);
++              if (!vol->domainname) {
++                      cifs_dbg(FYI, "Unable to allocate %zd bytes for "
++                               "domain\n", len);
++                      rc = -ENOMEM;
++                      kfree(vol->username);
++                      vol->username = NULL;
++                      kfree(vol->password);
++                      vol->password = NULL;
++                      goto out_key_put;
++              }
++      }
++
+ out_key_put:
+       up_read(&key->sem);
+       key_put(key);
+-- 
+2.20.1
+
diff --git a/queue-4.4/cifs-use-kzfree-to-zero-out-the-password.patch b/queue-4.4/cifs-use-kzfree-to-zero-out-the-password.patch
new file mode 100644 (file)
index 0000000..b51b8f7
--- /dev/null
@@ -0,0 +1,35 @@
+From b99f5b25d1e199621d53efc620dddc90f3287769 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 27 Aug 2019 13:59:17 +0300
+Subject: cifs: Use kzfree() to zero out the password
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+[ Upstream commit 478228e57f81f6cb60798d54fc02a74ea7dd267e ]
+
+It's safer to zero out the password so that it can never be disclosed.
+
+Fixes: 0c219f5799c7 ("cifs: set domainName when a domain-key is used in multiuser")
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Steve French <stfrench@microsoft.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/cifs/connect.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
+index 90e0c51ac0450..63108343124af 100644
+--- a/fs/cifs/connect.c
++++ b/fs/cifs/connect.c
+@@ -2586,7 +2586,7 @@ cifs_set_cifscreds(struct smb_vol *vol, struct cifs_ses *ses)
+                       rc = -ENOMEM;
+                       kfree(vol->username);
+                       vol->username = NULL;
+-                      kfree(vol->password);
++                      kzfree(vol->password);
+                       vol->password = NULL;
+                       goto out_key_put;
+               }
+-- 
+2.20.1
+
diff --git a/queue-4.4/dmaengine-ti-omap-dma-add-cleanup-in-omap_dma_probe.patch b/queue-4.4/dmaengine-ti-omap-dma-add-cleanup-in-omap_dma_probe.patch
new file mode 100644 (file)
index 0000000..3c025da
--- /dev/null
@@ -0,0 +1,41 @@
+From d353001a931817ad2931cfa2a5499974732644be Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 16 Aug 2019 01:56:08 -0500
+Subject: dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
+
+From: Wenwen Wang <wenwen@cs.uga.edu>
+
+[ Upstream commit 962411b05a6d3342aa649e39cda1704c1fc042c6 ]
+
+If devm_request_irq() fails to disable all interrupts, no cleanup is
+performed before retuning the error. To fix this issue, invoke
+omap_dma_free() to do the cleanup.
+
+Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
+Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Link: https://lore.kernel.org/r/1565938570-7528-1-git-send-email-wenwen@cs.uga.edu
+Signed-off-by: Vinod Koul <vkoul@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/dma/omap-dma.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c
+index 1dfc71c90123f..57b6e6ca14a88 100644
+--- a/drivers/dma/omap-dma.c
++++ b/drivers/dma/omap-dma.c
+@@ -1199,8 +1199,10 @@ static int omap_dma_probe(struct platform_device *pdev)
+               rc = devm_request_irq(&pdev->dev, irq, omap_dma_irq,
+                                     IRQF_SHARED, "omap-dma-engine", od);
+-              if (rc)
++              if (rc) {
++                      omap_dma_free(od);
+                       return rc;
++              }
+       }
+       rc = dma_async_device_register(&od->ddev);
+-- 
+2.20.1
+
diff --git a/queue-4.4/kconfig-fix-the-reference-to-the-idt77105-phy-driver.patch b/queue-4.4/kconfig-fix-the-reference-to-the-idt77105-phy-driver.patch
new file mode 100644 (file)
index 0000000..e0fdf29
--- /dev/null
@@ -0,0 +1,35 @@
+From a18acb98087fe85a7b176885f671f6ab40cf7a7d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 19 Aug 2019 07:04:25 +0200
+Subject: Kconfig: Fix the reference to the IDT77105 Phy driver in the
+ description of ATM_NICSTAR_USE_IDT77105
+
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+
+[ Upstream commit cd9d4ff9b78fcd0fc4708900ba3e52e71e1a7690 ]
+
+This should be IDT77105, not IDT77015.
+
+Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/atm/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/atm/Kconfig b/drivers/atm/Kconfig
+index 31c60101a69a4..7fa840170151b 100644
+--- a/drivers/atm/Kconfig
++++ b/drivers/atm/Kconfig
+@@ -199,7 +199,7 @@ config ATM_NICSTAR_USE_SUNI
+         make the card work).
+ config ATM_NICSTAR_USE_IDT77105
+-      bool "Use IDT77015 PHY driver (25Mbps)"
++      bool "Use IDT77105 PHY driver (25Mbps)"
+       depends on ATM_NICSTAR
+       help
+         Support for the PHYsical layer chip in ForeRunner LE25 cards. In
+-- 
+2.20.1
+
diff --git a/queue-4.4/keys-fix-missing-null-pointer-check-in-request_key_a.patch b/queue-4.4/keys-fix-missing-null-pointer-check-in-request_key_a.patch
new file mode 100644 (file)
index 0000000..52768cd
--- /dev/null
@@ -0,0 +1,74 @@
+From 1f353be95a5f00cf82f3cd2d2decf6c893a76ea5 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 2 Sep 2019 13:37:29 +0100
+Subject: keys: Fix missing null pointer check in request_key_auth_describe()
+
+From: Hillf Danton <hdanton@sina.com>
+
+[ Upstream commit d41a3effbb53b1bcea41e328d16a4d046a508381 ]
+
+If a request_key authentication token key gets revoked, there's a window in
+which request_key_auth_describe() can see it with a NULL payload - but it
+makes no check for this and something like the following oops may occur:
+
+       BUG: Kernel NULL pointer dereference at 0x00000038
+       Faulting instruction address: 0xc0000000004ddf30
+       Oops: Kernel access of bad area, sig: 11 [#1]
+       ...
+       NIP [...] request_key_auth_describe+0x90/0xd0
+       LR [...] request_key_auth_describe+0x54/0xd0
+       Call Trace:
+       [...] request_key_auth_describe+0x54/0xd0 (unreliable)
+       [...] proc_keys_show+0x308/0x4c0
+       [...] seq_read+0x3d0/0x540
+       [...] proc_reg_read+0x90/0x110
+       [...] __vfs_read+0x3c/0x70
+       [...] vfs_read+0xb4/0x1b0
+       [...] ksys_read+0x7c/0x130
+       [...] system_call+0x5c/0x70
+
+Fix this by checking for a NULL pointer when describing such a key.
+
+Also make the read routine check for a NULL pointer to be on the safe side.
+
+[DH: Modified to not take already-held rcu lock and modified to also check
+ in the read routine]
+
+Fixes: 04c567d9313e ("[PATCH] Keys: Fix race between two instantiators of a key")
+Reported-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
+Signed-off-by: Hillf Danton <hdanton@sina.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ security/keys/request_key_auth.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/security/keys/request_key_auth.c b/security/keys/request_key_auth.c
+index 8882b729924dd..976deea0569e3 100644
+--- a/security/keys/request_key_auth.c
++++ b/security/keys/request_key_auth.c
+@@ -71,6 +71,9 @@ static void request_key_auth_describe(const struct key *key,
+ {
+       struct request_key_auth *rka = key->payload.data[0];
++      if (!rka)
++              return;
++
+       seq_puts(m, "key:");
+       seq_puts(m, key->description);
+       if (key_is_positive(key))
+@@ -88,6 +91,9 @@ static long request_key_auth_read(const struct key *key,
+       size_t datalen;
+       long ret;
++      if (!rka)
++              return -EKEYREVOKED;
++
+       datalen = rka->callout_len;
+       ret = datalen;
+-- 
+2.20.1
+
diff --git a/queue-4.4/net-seeq-fix-the-function-used-to-release-some-memor.patch b/queue-4.4/net-seeq-fix-the-function-used-to-release-some-memor.patch
new file mode 100644 (file)
index 0000000..921bcda
--- /dev/null
@@ -0,0 +1,56 @@
+From 1f832f8c5ff060a62669ef13d92860d11f175627 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 31 Aug 2019 09:17:51 +0200
+Subject: net: seeq: Fix the function used to release some memory in an error
+ handling path
+
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+
+[ Upstream commit e1e54ec7fb55501c33b117c111cb0a045b8eded2 ]
+
+In commit 99cd149efe82 ("sgiseeq: replace use of dma_cache_wback_inv"),
+a call to 'get_zeroed_page()' has been turned into a call to
+'dma_alloc_coherent()'. Only the remove function has been updated to turn
+the corresponding 'free_page()' into 'dma_free_attrs()'.
+The error hndling path of the probe function has not been updated.
+
+Fix it now.
+
+Rename the corresponding label to something more in line.
+
+Fixes: 99cd149efe82 ("sgiseeq: replace use of dma_cache_wback_inv")
+Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Reviewed-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/seeq/sgiseeq.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/ethernet/seeq/sgiseeq.c b/drivers/net/ethernet/seeq/sgiseeq.c
+index ca73366057486..2e5f7bbd30bfa 100644
+--- a/drivers/net/ethernet/seeq/sgiseeq.c
++++ b/drivers/net/ethernet/seeq/sgiseeq.c
+@@ -792,15 +792,16 @@ static int sgiseeq_probe(struct platform_device *pdev)
+               printk(KERN_ERR "Sgiseeq: Cannot register net device, "
+                      "aborting.\n");
+               err = -ENODEV;
+-              goto err_out_free_page;
++              goto err_out_free_attrs;
+       }
+       printk(KERN_INFO "%s: %s %pM\n", dev->name, sgiseeqstr, dev->dev_addr);
+       return 0;
+-err_out_free_page:
+-      free_page((unsigned long) sp->srings);
++err_out_free_attrs:
++      dma_free_attrs(&pdev->dev, sizeof(*sp->srings), sp->srings,
++                     sp->srings_dma, DMA_ATTR_NON_CONSISTENT);
+ err_out_free_dev:
+       free_netdev(dev);
+-- 
+2.20.1
+
diff --git a/queue-4.4/netfilter-nf_conntrack_ftp-fix-debug-output.patch b/queue-4.4/netfilter-nf_conntrack_ftp-fix-debug-output.patch
new file mode 100644 (file)
index 0000000..04d0d3e
--- /dev/null
@@ -0,0 +1,47 @@
+From e87ef240d40f076921bd143b958927985856b8d6 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 21 Aug 2019 16:14:28 +0200
+Subject: netfilter: nf_conntrack_ftp: Fix debug output
+
+From: Thomas Jarosch <thomas.jarosch@intra2net.com>
+
+[ Upstream commit 3a069024d371125227de3ac8fa74223fcf473520 ]
+
+The find_pattern() debug output was printing the 'skip' character.
+This can be a NULL-byte and messes up further pr_debug() output.
+
+Output without the fix:
+kernel: nf_conntrack_ftp: Pattern matches!
+kernel: nf_conntrack_ftp: Skipped up to `<7>nf_conntrack_ftp: find_pattern `PORT': dlen = 8
+kernel: nf_conntrack_ftp: find_pattern `EPRT': dlen = 8
+
+Output with the fix:
+kernel: nf_conntrack_ftp: Pattern matches!
+kernel: nf_conntrack_ftp: Skipped up to 0x0 delimiter!
+kernel: nf_conntrack_ftp: Match succeeded!
+kernel: nf_conntrack_ftp: conntrack_ftp: match `172,17,0,100,200,207' (20 bytes at 4150681645)
+kernel: nf_conntrack_ftp: find_pattern `PORT': dlen = 8
+
+Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/netfilter/nf_conntrack_ftp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/netfilter/nf_conntrack_ftp.c b/net/netfilter/nf_conntrack_ftp.c
+index b666959f17c08..b7c13179fa40a 100644
+--- a/net/netfilter/nf_conntrack_ftp.c
++++ b/net/netfilter/nf_conntrack_ftp.c
+@@ -334,7 +334,7 @@ static int find_pattern(const char *data, size_t dlen,
+               i++;
+       }
+-      pr_debug("Skipped up to `%c'!\n", skip);
++      pr_debug("Skipped up to 0x%hhx delimiter!\n", skip);
+       *numoff = i;
+       *numlen = getnum(data + i, dlen - i, cmd, term, numoff);
+-- 
+2.20.1
+
diff --git a/queue-4.4/nfs-fix-initialisation-of-i-o-result-struct-in-nfs_p.patch b/queue-4.4/nfs-fix-initialisation-of-i-o-result-struct-in-nfs_p.patch
new file mode 100644 (file)
index 0000000..2b39352
--- /dev/null
@@ -0,0 +1,36 @@
+From d5ad1d21641d2c7250547e1469b136841a94ace9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 14 Aug 2019 14:19:09 -0400
+Subject: NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup
+
+From: Trond Myklebust <trond.myklebust@hammerspace.com>
+
+[ Upstream commit 17d8c5d145000070c581f2a8aa01edc7998582ab ]
+
+Initialise the result count to 0 rather than initialising it to the
+argument count. The reason is that we want to ensure we record the
+I/O stats correctly in the case where an error is returned (for
+instance in the layoutstats).
+
+Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/pagelist.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
+index 8a2077408ab06..af1bb7353792c 100644
+--- a/fs/nfs/pagelist.c
++++ b/fs/nfs/pagelist.c
+@@ -593,7 +593,7 @@ static void nfs_pgio_rpcsetup(struct nfs_pgio_header *hdr,
+       }
+       hdr->res.fattr   = &hdr->fattr;
+-      hdr->res.count   = count;
++      hdr->res.count   = 0;
+       hdr->res.eof     = 0;
+       hdr->res.verf    = &hdr->verf;
+       nfs_fattr_init(&hdr->fattr);
+-- 
+2.20.1
+
diff --git a/queue-4.4/nfsv2-fix-eof-handling.patch b/queue-4.4/nfsv2-fix-eof-handling.patch
new file mode 100644 (file)
index 0000000..ad42ccb
--- /dev/null
@@ -0,0 +1,35 @@
+From 7d1e9a3e9904101deaa4b0b29c166d32938610b3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 26 Aug 2019 20:41:16 -0400
+Subject: NFSv2: Fix eof handling
+
+From: Trond Myklebust <trond.myklebust@hammerspace.com>
+
+[ Upstream commit 71affe9be45a5c60b9772e1b2701710712637274 ]
+
+If we received a reply from the server with a zero length read and
+no error, then that implies we are at eof.
+
+Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/proc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c
+index b417bbcd97046..80ecdf2ec8b6a 100644
+--- a/fs/nfs/proc.c
++++ b/fs/nfs/proc.c
+@@ -588,7 +588,8 @@ static int nfs_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
+               /* Emulate the eof flag, which isn't normally needed in NFSv2
+                * as it is guaranteed to always return the file attributes
+                */
+-              if (hdr->args.offset + hdr->res.count >= hdr->res.fattr->size)
++              if ((hdr->res.count == 0 && hdr->args.count > 0) ||
++                  hdr->args.offset + hdr->res.count >= hdr->res.fattr->size)
+                       hdr->res.eof = 1;
+       }
+       return 0;
+-- 
+2.20.1
+
diff --git a/queue-4.4/nfsv2-fix-write-regression.patch b/queue-4.4/nfsv2-fix-write-regression.patch
new file mode 100644 (file)
index 0000000..42cddc2
--- /dev/null
@@ -0,0 +1,40 @@
+From f1827f83ee15bab6a8a340851d1583a62f34cadc Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 27 Aug 2019 07:03:28 -0400
+Subject: NFSv2: Fix write regression
+
+From: Trond Myklebust <trond.myklebust@hammerspace.com>
+
+[ Upstream commit d33d4beb522987d1c305c12500796f9be3687dee ]
+
+Ensure we update the write result count on success, since the
+RPC call itself does not do so.
+
+Reported-by: Jan Stancek <jstancek@redhat.com>
+Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
+Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
+Tested-by: Jan Stancek <jstancek@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/proc.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c
+index 80ecdf2ec8b6a..b83e14ad13c45 100644
+--- a/fs/nfs/proc.c
++++ b/fs/nfs/proc.c
+@@ -610,8 +610,10 @@ static int nfs_proc_pgio_rpc_prepare(struct rpc_task *task,
+ static int nfs_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr)
+ {
+-      if (task->tk_status >= 0)
++      if (task->tk_status >= 0) {
++              hdr->res.count = hdr->args.count;
+               nfs_writeback_update_inode(hdr);
++      }
+       return 0;
+ }
+-- 
+2.20.1
+
diff --git a/queue-4.4/nfsv4-fix-return-values-for-nfs4_file_open.patch b/queue-4.4/nfsv4-fix-return-values-for-nfs4_file_open.patch
new file mode 100644 (file)
index 0000000..b2e0d1e
--- /dev/null
@@ -0,0 +1,51 @@
+From 08a9b510b6513cea16f8c951a3b75bd1747e715b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 9 Aug 2019 15:03:11 -0400
+Subject: NFSv4: Fix return values for nfs4_file_open()
+
+From: Trond Myklebust <trond.myklebust@hammerspace.com>
+
+[ Upstream commit 90cf500e338ab3f3c0f126ba37e36fb6a9058441 ]
+
+Currently, we are translating RPC level errors such as timeouts,
+as well as interrupts etc into EOPENSTALE, which forces a single
+replay of the open attempt. What we actually want to do is
+force the replay only in the cases where the returned error
+indicates that the file may have changed on the server.
+
+So the fix is to spell out the exact set of errors where we want
+to return EOPENSTALE.
+
+Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/nfs4file.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/fs/nfs/nfs4file.c b/fs/nfs/nfs4file.c
+index d3e3761eacfa2..c5e884585c23a 100644
+--- a/fs/nfs/nfs4file.c
++++ b/fs/nfs/nfs4file.c
+@@ -73,13 +73,13 @@ nfs4_file_open(struct inode *inode, struct file *filp)
+       if (IS_ERR(inode)) {
+               err = PTR_ERR(inode);
+               switch (err) {
+-              case -EPERM:
+-              case -EACCES:
+-              case -EDQUOT:
+-              case -ENOSPC:
+-              case -EROFS:
+-                      goto out_put_ctx;
+               default:
++                      goto out_put_ctx;
++              case -ENOENT:
++              case -ESTALE:
++              case -EISDIR:
++              case -ENOTDIR:
++              case -ELOOP:
+                       goto out_drop;
+               }
+       }
+-- 
+2.20.1
+
diff --git a/queue-4.4/perf-x86-intel-restrict-period-on-nehalem.patch b/queue-4.4/perf-x86-intel-restrict-period-on-nehalem.patch
new file mode 100644 (file)
index 0000000..4bd8fc2
--- /dev/null
@@ -0,0 +1,94 @@
+From bfa8b866e3bce1f3c80a52fdd3a38431692e0fab Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 19 Aug 2019 19:13:31 -0400
+Subject: perf/x86/intel: Restrict period on Nehalem
+
+From: Josh Hunt <johunt@akamai.com>
+
+[ Upstream commit 44d3bbb6f5e501b873218142fe08cdf62a4ac1f3 ]
+
+We see our Nehalem machines reporting 'perfevents: irq loop stuck!' in
+some cases when using perf:
+
+perfevents: irq loop stuck!
+WARNING: CPU: 0 PID: 3485 at arch/x86/events/intel/core.c:2282 intel_pmu_handle_irq+0x37b/0x530
+...
+RIP: 0010:intel_pmu_handle_irq+0x37b/0x530
+...
+Call Trace:
+<NMI>
+? perf_event_nmi_handler+0x2e/0x50
+? intel_pmu_save_and_restart+0x50/0x50
+perf_event_nmi_handler+0x2e/0x50
+nmi_handle+0x6e/0x120
+default_do_nmi+0x3e/0x100
+do_nmi+0x102/0x160
+end_repeat_nmi+0x16/0x50
+...
+? native_write_msr+0x6/0x20
+? native_write_msr+0x6/0x20
+</NMI>
+intel_pmu_enable_event+0x1ce/0x1f0
+x86_pmu_start+0x78/0xa0
+x86_pmu_enable+0x252/0x310
+__perf_event_task_sched_in+0x181/0x190
+? __switch_to_asm+0x41/0x70
+? __switch_to_asm+0x35/0x70
+? __switch_to_asm+0x41/0x70
+? __switch_to_asm+0x35/0x70
+finish_task_switch+0x158/0x260
+__schedule+0x2f6/0x840
+? hrtimer_start_range_ns+0x153/0x210
+schedule+0x32/0x80
+schedule_hrtimeout_range_clock+0x8a/0x100
+? hrtimer_init+0x120/0x120
+ep_poll+0x2f7/0x3a0
+? wake_up_q+0x60/0x60
+do_epoll_wait+0xa9/0xc0
+__x64_sys_epoll_wait+0x1a/0x20
+do_syscall_64+0x4e/0x110
+entry_SYSCALL_64_after_hwframe+0x44/0xa9
+RIP: 0033:0x7fdeb1e96c03
+...
+Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+Cc: acme@kernel.org
+Cc: Josh Hunt <johunt@akamai.com>
+Cc: bpuranda@akamai.com
+Cc: mingo@redhat.com
+Cc: jolsa@redhat.com
+Cc: tglx@linutronix.de
+Cc: namhyung@kernel.org
+Cc: alexander.shishkin@linux.intel.com
+Link: https://lkml.kernel.org/r/1566256411-18820-1-git-send-email-johunt@akamai.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/x86/kernel/cpu/perf_event_intel.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
+index 3572434a73cb7..c26c3e3357834 100644
+--- a/arch/x86/kernel/cpu/perf_event_intel.c
++++ b/arch/x86/kernel/cpu/perf_event_intel.c
+@@ -2721,6 +2721,11 @@ static unsigned bdw_limit_period(struct perf_event *event, unsigned left)
+       return left;
+ }
++static u64 nhm_limit_period(struct perf_event *event, u64 left)
++{
++      return max(left, 32ULL);
++}
++
+ PMU_FORMAT_ATTR(event,        "config:0-7"    );
+ PMU_FORMAT_ATTR(umask,        "config:8-15"   );
+ PMU_FORMAT_ATTR(edge, "config:18"     );
+@@ -3326,6 +3331,7 @@ __init int intel_pmu_init(void)
+               x86_pmu.pebs_constraints = intel_nehalem_pebs_event_constraints;
+               x86_pmu.enable_all = intel_pmu_nhm_enable_all;
+               x86_pmu.extra_regs = intel_nehalem_extra_regs;
++              x86_pmu.limit_period = nhm_limit_period;
+               x86_pmu.cpu_events = nhm_events_attrs;
+-- 
+2.20.1
+
diff --git a/queue-4.4/r8152-set-memory-to-all-0xffs-on-failed-reg-reads.patch b/queue-4.4/r8152-set-memory-to-all-0xffs-on-failed-reg-reads.patch
new file mode 100644 (file)
index 0000000..17c990d
--- /dev/null
@@ -0,0 +1,52 @@
+From b750523116847aaddb43ccb0e1706fb3b07e650c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 24 Aug 2019 01:36:19 -0700
+Subject: r8152: Set memory to all 0xFFs on failed reg reads
+
+From: Prashant Malani <pmalani@chromium.org>
+
+[ Upstream commit f53a7ad189594a112167efaf17ea8d0242b5ac00 ]
+
+get_registers() blindly copies the memory written to by the
+usb_control_msg() call even if the underlying urb failed.
+
+This could lead to junk register values being read by the driver, since
+some indirect callers of get_registers() ignore the return values. One
+example is:
+  ocp_read_dword() ignores the return value of generic_ocp_read(), which
+  calls get_registers().
+
+So, emulate PCI "Master Abort" behavior by setting the buffer to all
+0xFFs when usb_control_msg() fails.
+
+This patch is copied from the r8152 driver (v2.12.0) published by
+Realtek (www.realtek.com).
+
+Signed-off-by: Prashant Malani <pmalani@chromium.org>
+Acked-by: Hayes Wang <hayeswang@realtek.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/usb/r8152.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
+index 2d83689374bbb..10dd307593e89 100644
+--- a/drivers/net/usb/r8152.c
++++ b/drivers/net/usb/r8152.c
+@@ -671,8 +671,11 @@ int get_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data)
+       ret = usb_control_msg(tp->udev, usb_rcvctrlpipe(tp->udev, 0),
+                             RTL8152_REQ_GET_REGS, RTL8152_REQT_READ,
+                             value, index, tmp, size, 500);
++      if (ret < 0)
++              memset(data, 0xff, size);
++      else
++              memcpy(data, tmp, size);
+-      memcpy(data, tmp, size);
+       kfree(tmp);
+       return ret;
+-- 
+2.20.1
+
diff --git a/queue-4.4/s390-bpf-fix-lcgr-instruction-encoding.patch b/queue-4.4/s390-bpf-fix-lcgr-instruction-encoding.patch
new file mode 100644 (file)
index 0000000..0595ee9
--- /dev/null
@@ -0,0 +1,43 @@
+From 6e3374e8250d79561b580c6f4f031b4ab18f810d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 12 Aug 2019 17:03:32 +0200
+Subject: s390/bpf: fix lcgr instruction encoding
+
+From: Ilya Leoshkevich <iii@linux.ibm.com>
+
+[ Upstream commit bb2d267c448f4bc3a3389d97c56391cb779178ae ]
+
+"masking, test in bounds 3" fails on s390, because
+BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0) ignores the top 32 bits of
+BPF_REG_2. The reason is that JIT emits lcgfr instead of lcgr.
+The associated comment indicates that the code was intended to
+emit lcgr in the first place, it's just that the wrong opcode
+was used.
+
+Fix by using the correct opcode.
+
+Fixes: 054623105728 ("s390/bpf: Add s390x eBPF JIT compiler backend")
+Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
+Acked-by: Vasily Gorbik <gor@linux.ibm.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/s390/net/bpf_jit_comp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
+index 727693e283da2..e53d410e88703 100644
+--- a/arch/s390/net/bpf_jit_comp.c
++++ b/arch/s390/net/bpf_jit_comp.c
+@@ -886,7 +886,7 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i
+               break;
+       case BPF_ALU64 | BPF_NEG: /* dst = -dst */
+               /* lcgr %dst,%dst */
+-              EMIT4(0xb9130000, dst_reg, dst_reg);
++              EMIT4(0xb9030000, dst_reg, dst_reg);
+               break;
+       /*
+        * BPF_FROM_BE/LE
+-- 
+2.20.1
+
diff --git a/queue-4.4/s390-bpf-use-32-bit-index-for-tail-calls.patch b/queue-4.4/s390-bpf-use-32-bit-index-for-tail-calls.patch
new file mode 100644 (file)
index 0000000..5220f95
--- /dev/null
@@ -0,0 +1,62 @@
+From 545c6169e0fac557ecd4d0125def7521116e6079 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 12 Aug 2019 18:18:07 +0200
+Subject: s390/bpf: use 32-bit index for tail calls
+
+From: Ilya Leoshkevich <iii@linux.ibm.com>
+
+[ Upstream commit 91b4db5313a2c793aabc2143efb8ed0cf0fdd097 ]
+
+"p runtime/jit: pass > 32bit index to tail_call" fails when
+bpf_jit_enable=1, because the tail call is not executed.
+
+This in turn is because the generated code assumes index is 64-bit,
+while it must be 32-bit, and as a result prog array bounds check fails,
+while it should pass. Even if bounds check would have passed, the code
+that follows uses 64-bit index to compute prog array offset.
+
+Fix by using clrj instead of clgrj for comparing index with array size,
+and also by using llgfr for truncating index to 32 bits before using it
+to compute prog array offset.
+
+Fixes: 6651ee070b31 ("s390/bpf: implement bpf_tail_call() helper")
+Reported-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
+Acked-by: Vasily Gorbik <gor@linux.ibm.com>
+Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
+Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/s390/net/bpf_jit_comp.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
+index e53d410e88703..bcf409997d6dc 100644
+--- a/arch/s390/net/bpf_jit_comp.c
++++ b/arch/s390/net/bpf_jit_comp.c
+@@ -1067,8 +1067,8 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i
+               /* llgf %w1,map.max_entries(%b2) */
+               EMIT6_DISP_LH(0xe3000000, 0x0016, REG_W1, REG_0, BPF_REG_2,
+                             offsetof(struct bpf_array, map.max_entries));
+-              /* clgrj %b3,%w1,0xa,label0: if %b3 >= %w1 goto out */
+-              EMIT6_PCREL_LABEL(0xec000000, 0x0065, BPF_REG_3,
++              /* clrj %b3,%w1,0xa,label0: if (u32)%b3 >= (u32)%w1 goto out */
++              EMIT6_PCREL_LABEL(0xec000000, 0x0077, BPF_REG_3,
+                                 REG_W1, 0, 0xa);
+               /*
+@@ -1094,8 +1094,10 @@ static noinline int bpf_jit_insn(struct bpf_jit *jit, struct bpf_prog *fp, int i
+                *         goto out;
+                */
+-              /* sllg %r1,%b3,3: %r1 = index * 8 */
+-              EMIT6_DISP_LH(0xeb000000, 0x000d, REG_1, BPF_REG_3, REG_0, 3);
++              /* llgfr %r1,%b3: %r1 = (u32) index */
++              EMIT4(0xb9160000, REG_1, BPF_REG_3);
++              /* sllg %r1,%r1,3: %r1 *= 8 */
++              EMIT6_DISP_LH(0xeb000000, 0x000d, REG_1, REG_1, REG_0, 3);
+               /* lg %r1,prog(%b2,%r1) */
+               EMIT6_DISP_LH(0xe3000000, 0x0004, REG_1, BPF_REG_2,
+                             REG_1, offsetof(struct bpf_array, ptrs));
+-- 
+2.20.1
+
index 7a1147c9ebbed1da40a01438065ab89539d606e4..62fabb307aecc8da23d901c3e237a0bc669f5a55 100644 (file)
@@ -32,3 +32,23 @@ kvm-coalesced_mmio-add-bounds-checking.patch
 serial-sprd-correct-the-wrong-sequence-of-arguments.patch
 tty-serial-atmel-reschedule-tx-after-rx-was-started.patch
 mwifiex-fix-three-heap-overflow-at-parsing-element-in-cfg80211_ap_settings.patch
+s390-bpf-fix-lcgr-instruction-encoding.patch
+arm-omap2-fix-omap4-errata-warning-on-other-socs.patch
+s390-bpf-use-32-bit-index-for-tail-calls.patch
+nfsv4-fix-return-values-for-nfs4_file_open.patch
+nfs-fix-initialisation-of-i-o-result-struct-in-nfs_p.patch
+kconfig-fix-the-reference-to-the-idt77105-phy-driver.patch
+arm-8874-1-mm-only-adjust-sections-of-valid-mm-struc.patch
+r8152-set-memory-to-all-0xffs-on-failed-reg-reads.patch
+x86-apic-fix-arch_dynirq_lower_bound-bug-for-dt-enab.patch
+netfilter-nf_conntrack_ftp-fix-debug-output.patch
+nfsv2-fix-eof-handling.patch
+nfsv2-fix-write-regression.patch
+cifs-set-domainname-when-a-domain-key-is-used-in-mul.patch
+cifs-use-kzfree-to-zero-out-the-password.patch
+sky2-disable-msi-on-yet-another-asus-boards-p6xxxx.patch
+perf-x86-intel-restrict-period-on-nehalem.patch
+tools-power-turbostat-fix-buffer-overrun.patch
+net-seeq-fix-the-function-used-to-release-some-memor.patch
+dmaengine-ti-omap-dma-add-cleanup-in-omap_dma_probe.patch
+keys-fix-missing-null-pointer-check-in-request_key_a.patch
diff --git a/queue-4.4/sky2-disable-msi-on-yet-another-asus-boards-p6xxxx.patch b/queue-4.4/sky2-disable-msi-on-yet-another-asus-boards-p6xxxx.patch
new file mode 100644 (file)
index 0000000..3cb9279
--- /dev/null
@@ -0,0 +1,43 @@
+From d83fafc98cf7b73f3a66f302f79fecf397b62359 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 28 Aug 2019 08:31:19 +0200
+Subject: sky2: Disable MSI on yet another ASUS boards (P6Xxxx)
+
+From: Takashi Iwai <tiwai@suse.de>
+
+[ Upstream commit 189308d5823a089b56e2299cd96589507dac7319 ]
+
+A similar workaround for the suspend/resume problem is needed for yet
+another ASUS machines, P6X models.  Like the previous fix, the BIOS
+doesn't provide the standard DMI_SYS_* entry, so again DMI_BOARD_*
+entries are used instead.
+
+Reported-and-tested-by: SteveM <swm@swm1.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/marvell/sky2.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
+index dcd72b2a37150..8ba9eadc20791 100644
+--- a/drivers/net/ethernet/marvell/sky2.c
++++ b/drivers/net/ethernet/marvell/sky2.c
+@@ -4946,6 +4946,13 @@ static const struct dmi_system_id msi_blacklist[] = {
+                       DMI_MATCH(DMI_BOARD_NAME, "P6T"),
+               },
+       },
++      {
++              .ident = "ASUS P6X",
++              .matches = {
++                      DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
++                      DMI_MATCH(DMI_BOARD_NAME, "P6X"),
++              },
++      },
+       {}
+ };
+-- 
+2.20.1
+
diff --git a/queue-4.4/tools-power-turbostat-fix-buffer-overrun.patch b/queue-4.4/tools-power-turbostat-fix-buffer-overrun.patch
new file mode 100644 (file)
index 0000000..4d1d04b
--- /dev/null
@@ -0,0 +1,37 @@
+From 8fe1230d9a00a6a4d01a22d1d63c567408cc28ff Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 3 Apr 2019 16:02:14 +0900
+Subject: tools/power turbostat: fix buffer overrun
+
+From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
+
+[ Upstream commit eeb71c950bc6eee460f2070643ce137e067b234c ]
+
+turbostat could be terminated by general protection fault on some latest
+hardwares which (for example) support 9 levels of C-states and show 18
+"tADDED" lines. That bloats the total output and finally causes buffer
+overrun.  So let's extend the buffer to avoid this.
+
+Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/power/x86/turbostat/turbostat.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
+index 532e7bf068689..58cf161887225 100644
+--- a/tools/power/x86/turbostat/turbostat.c
++++ b/tools/power/x86/turbostat/turbostat.c
+@@ -3014,7 +3014,7 @@ int initialize_counters(int cpu_id)
+ void allocate_output_buffer()
+ {
+-      output_buffer = calloc(1, (1 + topo.num_cpus) * 1024);
++      output_buffer = calloc(1, (1 + topo.num_cpus) * 2048);
+       outp = output_buffer;
+       if (outp == NULL)
+               err(-1, "calloc output buffer");
+-- 
+2.20.1
+
diff --git a/queue-4.4/x86-apic-fix-arch_dynirq_lower_bound-bug-for-dt-enab.patch b/queue-4.4/x86-apic-fix-arch_dynirq_lower_bound-bug-for-dt-enab.patch
new file mode 100644 (file)
index 0000000..cc68975
--- /dev/null
@@ -0,0 +1,71 @@
+From 69306cc1ebc2f5cfec95fae67353a35fa3a59e2b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 21 Aug 2019 15:16:31 +0200
+Subject: x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
+
+From: Thomas Gleixner <tglx@linutronix.de>
+
+[ Upstream commit 3e5bedc2c258341702ddffbd7688c5e6eb01eafa ]
+
+Rahul Tanwar reported the following bug on DT systems:
+
+> 'ioapic_dynirq_base' contains the virtual IRQ base number. Presently, it is
+> updated to the end of hardware IRQ numbers but this is done only when IOAPIC
+> configuration type is IOAPIC_DOMAIN_LEGACY or IOAPIC_DOMAIN_STRICT. There is
+> a third type IOAPIC_DOMAIN_DYNAMIC which applies when IOAPIC configuration
+> comes from devicetree.
+>
+> See dtb_add_ioapic() in arch/x86/kernel/devicetree.c
+>
+> In case of IOAPIC_DOMAIN_DYNAMIC (DT/OF based system), 'ioapic_dynirq_base'
+> remains to zero initialized value. This means that for OF based systems,
+> virtual IRQ base will get set to zero.
+
+Such systems will very likely not even boot.
+
+For DT enabled machines ioapic_dynirq_base is irrelevant and not
+updated, so simply map the IRQ base 1:1 instead.
+
+Reported-by: Rahul Tanwar <rahul.tanwar@linux.intel.com>
+Tested-by: Rahul Tanwar <rahul.tanwar@linux.intel.com>
+Tested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: alan@linux.intel.com
+Cc: bp@alien8.de
+Cc: cheol.yong.kim@intel.com
+Cc: qi-ming.wu@intel.com
+Cc: rahul.tanwar@intel.com
+Cc: rppt@linux.ibm.com
+Cc: tony.luck@intel.com
+Link: http://lkml.kernel.org/r/20190821081330.1187-1-rahul.tanwar@linux.intel.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/x86/kernel/apic/io_apic.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
+index fd945099fc958..4d5e8ff3b5e5c 100644
+--- a/arch/x86/kernel/apic/io_apic.c
++++ b/arch/x86/kernel/apic/io_apic.c
+@@ -2344,7 +2344,13 @@ unsigned int arch_dynirq_lower_bound(unsigned int from)
+        * dmar_alloc_hwirq() may be called before setup_IO_APIC(), so use
+        * gsi_top if ioapic_dynirq_base hasn't been initialized yet.
+        */
+-      return ioapic_initialized ? ioapic_dynirq_base : gsi_top;
++      if (!ioapic_initialized)
++              return gsi_top;
++      /*
++       * For DT enabled machines ioapic_dynirq_base is irrelevant and not
++       * updated. So simply return @from if ioapic_dynirq_base == 0.
++       */
++      return ioapic_dynirq_base ? : from;
+ }
+ #ifdef CONFIG_X86_32
+-- 
+2.20.1
+