--- /dev/null
+From c8328f6baa9596cc15bec1f832a97dccd2d14f0d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 18 May 2020 19:41:11 +0100
+Subject: ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
+
+From: Fredrik Strupe <fredrik@strupe.net>
+
+[ Upstream commit 3866f217aaa81bf7165c7f27362eee5d7919c496 ]
+
+call_undef_hook() in traps.c applies the same instr_mask for both 16-bit
+and 32-bit thumb instructions. If instr_mask then is only 16 bits wide
+(0xffff as opposed to 0xffffffff), the first half-word of 32-bit thumb
+instructions will be masked out. This makes the function match 32-bit
+thumb instructions where the second half-word is equal to instr_val,
+regardless of the first half-word.
+
+The result in this case is that all undefined 32-bit thumb instructions
+with the second half-word equal to 0xde01 (udf #1) work as breakpoints
+and will raise a SIGTRAP instead of a SIGILL, instead of just the one
+intended 16-bit instruction. An example of such an instruction is
+0xeaa0de01, which is unallocated according to Arm ARM and should raise a
+SIGILL, but instead raises a SIGTRAP.
+
+This patch fixes the issue by setting all the bits in instr_mask, which
+will still match the intended 16-bit thumb instruction (where the
+upper half is always 0), but not any 32-bit thumb instructions.
+
+Cc: Oleg Nesterov <oleg@redhat.com>
+Signed-off-by: Fredrik Strupe <fredrik@strupe.net>
+Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm/kernel/ptrace.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
+index 324352787aea..db9401581cd2 100644
+--- a/arch/arm/kernel/ptrace.c
++++ b/arch/arm/kernel/ptrace.c
+@@ -219,8 +219,8 @@ static struct undef_hook arm_break_hook = {
+ };
+
+ static struct undef_hook thumb_break_hook = {
+- .instr_mask = 0xffff,
+- .instr_val = 0xde01,
++ .instr_mask = 0xffffffff,
++ .instr_val = 0x0000de01,
+ .cpsr_mask = PSR_T_BIT,
+ .cpsr_val = PSR_T_BIT,
+ .fn = break_trap,
+--
+2.25.1
+
--- /dev/null
+From f32e68f9e6b109f2cf9e8643cd5107e950c3ff68 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 24 May 2020 10:44:38 +0000
+Subject: csky: Fixup abiv2 syscall_trace break a4 & a5
+
+From: Guo Ren <guoren@linux.alibaba.com>
+
+[ Upstream commit e0bbb53843b5fdfe464b099217e3b9d97e8a75d7 ]
+
+Current implementation could destory a4 & a5 when strace, so we need to get them
+from pt_regs by SAVE_ALL.
+
+Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/csky/abiv2/inc/abi/entry.h | 2 ++
+ arch/csky/kernel/entry.S | 6 ++++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/arch/csky/abiv2/inc/abi/entry.h b/arch/csky/abiv2/inc/abi/entry.h
+index 9023828ede97..ac8f65a3e75a 100644
+--- a/arch/csky/abiv2/inc/abi/entry.h
++++ b/arch/csky/abiv2/inc/abi/entry.h
+@@ -13,6 +13,8 @@
+ #define LSAVE_A1 28
+ #define LSAVE_A2 32
+ #define LSAVE_A3 36
++#define LSAVE_A4 40
++#define LSAVE_A5 44
+
+ #define KSPTOUSP
+ #define USPTOKSP
+diff --git a/arch/csky/kernel/entry.S b/arch/csky/kernel/entry.S
+index 65c55f22532a..4349528fbf38 100644
+--- a/arch/csky/kernel/entry.S
++++ b/arch/csky/kernel/entry.S
+@@ -170,8 +170,10 @@ csky_syscall_trace:
+ ldw a3, (sp, LSAVE_A3)
+ #if defined(__CSKYABIV2__)
+ subi sp, 8
+- stw r5, (sp, 0x4)
+- stw r4, (sp, 0x0)
++ ldw r9, (sp, LSAVE_A4)
++ stw r9, (sp, 0x0)
++ ldw r9, (sp, LSAVE_A5)
++ stw r9, (sp, 0x4)
+ #else
+ ldw r6, (sp, LSAVE_A4)
+ ldw r7, (sp, LSAVE_A5)
+--
+2.25.1
+
--- /dev/null
+From fd6e406653934e780611f3a8ec8a16e49f7fa58a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 28 May 2020 11:19:17 -0500
+Subject: drivers/net/ibmvnic: Update VNIC protocol version reporting
+
+From: Thomas Falcon <tlfalcon@linux.ibm.com>
+
+[ Upstream commit 784688993ebac34dffe44a9f2fabbe126ebfd4db ]
+
+VNIC protocol version is reported in big-endian format, but it
+is not byteswapped before logging. Fix that, and remove version
+comparison as only one protocol version exists at this time.
+
+Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/ibm/ibmvnic.c | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
+index aaa03ce5796f..5a42ddeecfe5 100644
+--- a/drivers/net/ethernet/ibm/ibmvnic.c
++++ b/drivers/net/ethernet/ibm/ibmvnic.c
+@@ -4536,12 +4536,10 @@ static void ibmvnic_handle_crq(union ibmvnic_crq *crq,
+ dev_err(dev, "Error %ld in VERSION_EXCHG_RSP\n", rc);
+ break;
+ }
+- dev_info(dev, "Partner protocol version is %d\n",
+- crq->version_exchange_rsp.version);
+- if (be16_to_cpu(crq->version_exchange_rsp.version) <
+- ibmvnic_version)
+- ibmvnic_version =
++ ibmvnic_version =
+ be16_to_cpu(crq->version_exchange_rsp.version);
++ dev_info(dev, "Partner protocol version is %d\n",
++ ibmvnic_version);
+ send_cap_queries(adapter);
+ break;
+ case QUERY_CAPABILITY_RSP:
+--
+2.25.1
+
--- /dev/null
+From 817d8f8a0afec17c4b21393d435e0df36be52d40 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 May 2020 20:11:51 +0200
+Subject: gfs2: Even more gfs2_find_jhead fixes
+
+From: Andreas Gruenbacher <agruenba@redhat.com>
+
+[ Upstream commit 20be493b787cd581c9fffad7fcd6bfbe6af1050c ]
+
+Fix several issues in the previous gfs2_find_jhead fix:
+* When updating @blocks_submitted, @block refers to the first block block not
+ submitted yet, not the last block submitted, so fix an off-by-one error.
+* We want to ensure that @blocks_submitted is far enough ahead of @blocks_read
+ to guarantee that there is in-flight I/O. Otherwise, we'll eventually end up
+ waiting for pages that haven't been submitted, yet.
+* It's much easier to compare the number of blocks added with the number of
+ blocks submitted to limit the maximum bio size.
+* Even with bio chaining, we can keep adding blocks until we reach the maximum
+ bio size, as long as we stop at a page boundary. This simplifies the logic.
+
+Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
+Reviewed-by: Bob Peterson <rpeterso@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/gfs2/lops.c | 15 +++++----------
+ 1 file changed, 5 insertions(+), 10 deletions(-)
+
+diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
+index 8303b44a5068..d2ed4dc4434c 100644
+--- a/fs/gfs2/lops.c
++++ b/fs/gfs2/lops.c
+@@ -504,12 +504,12 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head,
+ unsigned int bsize = sdp->sd_sb.sb_bsize, off;
+ unsigned int bsize_shift = sdp->sd_sb.sb_bsize_shift;
+ unsigned int shift = PAGE_SHIFT - bsize_shift;
+- unsigned int max_bio_size = 2 * 1024 * 1024;
++ unsigned int max_blocks = 2 * 1024 * 1024 >> bsize_shift;
+ struct gfs2_journal_extent *je;
+ int sz, ret = 0;
+ struct bio *bio = NULL;
+ struct page *page = NULL;
+- bool bio_chained = false, done = false;
++ bool done = false;
+ errseq_t since;
+
+ memset(head, 0, sizeof(*head));
+@@ -532,10 +532,7 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head,
+ off = 0;
+ }
+
+- if (!bio || (bio_chained && !off) ||
+- bio->bi_iter.bi_size >= max_bio_size) {
+- /* start new bio */
+- } else {
++ if (bio && (off || block < blocks_submitted + max_blocks)) {
+ sector_t sector = dblock << sdp->sd_fsb2bb_shift;
+
+ if (bio_end_sector(bio) == sector) {
+@@ -548,19 +545,17 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head,
+ (PAGE_SIZE - off) >> bsize_shift;
+
+ bio = gfs2_chain_bio(bio, blocks);
+- bio_chained = true;
+ goto add_block_to_new_bio;
+ }
+ }
+
+ if (bio) {
+- blocks_submitted = block + 1;
++ blocks_submitted = block;
+ submit_bio(bio);
+ }
+
+ bio = gfs2_log_alloc_bio(sdp, dblock, gfs2_end_log_read);
+ bio->bi_opf = REQ_OP_READ;
+- bio_chained = false;
+ add_block_to_new_bio:
+ sz = bio_add_page(bio, page, bsize, off);
+ BUG_ON(sz != bsize);
+@@ -568,7 +563,7 @@ block_added:
+ off += bsize;
+ if (off == PAGE_SIZE)
+ page = NULL;
+- if (blocks_submitted < 2 * max_bio_size >> bsize_shift) {
++ if (blocks_submitted <= blocks_read + max_blocks) {
+ /* Keep at least one bio in flight */
+ continue;
+ }
+--
+2.25.1
+
--- /dev/null
+From 523419024262f4f46b3fe9eaa6f139b0fb406011 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 9 Apr 2020 13:49:03 -0700
+Subject: Input: mms114 - fix handling of mms345l
+
+From: Stephan Gerhold <stephan@gerhold.net>
+
+[ Upstream commit 3f8f770575d911c989043d8f0fb8dec96360c41c ]
+
+MMS345L is another first generation touch screen from Melfas,
+which uses the same registers as MMS152.
+
+However, using I2C_M_NOSTART for it causes errors when reading:
+
+ i2c i2c-0: sendbytes: NAK bailout.
+ mms114 0-0048: __mms114_read_reg: i2c transfer failed (-5)
+
+The driver works fine as soon as I2C_M_NOSTART is removed.
+
+Reviewed-by: Andi Shyti <andi@etezian.org>
+Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
+Link: https://lore.kernel.org/r/20200405170904.61512-1-stephan@gerhold.net
+[dtor: removed separate mms345l handling, made everyone use standard
+transfer mode, propagated the 10bit addressing flag to the read part of the
+transfer as well.]
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/input/touchscreen/mms114.c | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscreen/mms114.c
+index a5ab774da4cc..fca908ba4841 100644
+--- a/drivers/input/touchscreen/mms114.c
++++ b/drivers/input/touchscreen/mms114.c
+@@ -91,15 +91,15 @@ static int __mms114_read_reg(struct mms114_data *data, unsigned int reg,
+ if (reg <= MMS114_MODE_CONTROL && reg + len > MMS114_MODE_CONTROL)
+ BUG();
+
+- /* Write register: use repeated start */
++ /* Write register */
+ xfer[0].addr = client->addr;
+- xfer[0].flags = I2C_M_TEN | I2C_M_NOSTART;
++ xfer[0].flags = client->flags & I2C_M_TEN;
+ xfer[0].len = 1;
+ xfer[0].buf = &buf;
+
+ /* Read data */
+ xfer[1].addr = client->addr;
+- xfer[1].flags = I2C_M_RD;
++ xfer[1].flags = (client->flags & I2C_M_TEN) | I2C_M_RD;
+ xfer[1].len = len;
+ xfer[1].buf = val;
+
+@@ -428,10 +428,8 @@ static int mms114_probe(struct i2c_client *client,
+ const void *match_data;
+ int error;
+
+- if (!i2c_check_functionality(client->adapter,
+- I2C_FUNC_PROTOCOL_MANGLING)) {
+- dev_err(&client->dev,
+- "Need i2c bus that supports protocol mangling\n");
++ if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
++ dev_err(&client->dev, "Not supported I2C adapter\n");
+ return -ENODEV;
+ }
+
+--
+2.25.1
+
--- /dev/null
+From 9c1100f01d97c7945ad48dfcff0518806fb01230 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 May 2020 23:03:13 -0700
+Subject: Input: synaptics - add a second working PNP_ID for Lenovo T470s
+
+From: Dennis Kadioglu <denk@eclipso.email>
+
+[ Upstream commit 642aa86eaf8f1e6fe894f20fd7f12f0db52ee03c ]
+
+The Lenovo Thinkpad T470s I own has a different touchpad with "LEN007a"
+instead of the already included PNP ID "LEN006c". However, my touchpad
+seems to work well without any problems using RMI. So this patch adds the
+other PNP ID.
+
+Signed-off-by: Dennis Kadioglu <denk@eclipso.email>
+Link: https://lore.kernel.org/r/ff770543cd53ae818363c0fe86477965@mail.eclipso.de
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/input/mouse/synaptics.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
+index 4d2036209b45..758dae8d6500 100644
+--- a/drivers/input/mouse/synaptics.c
++++ b/drivers/input/mouse/synaptics.c
+@@ -170,6 +170,7 @@ static const char * const smbus_pnp_ids[] = {
+ "LEN005b", /* P50 */
+ "LEN005e", /* T560 */
+ "LEN006c", /* T470s */
++ "LEN007a", /* T470s */
+ "LEN0071", /* T480 */
+ "LEN0072", /* X1 Carbon Gen 5 (2017) - Elan/ALPS trackpoint */
+ "LEN0073", /* X1 Carbon G5 (Elantech) */
+--
+2.25.1
+
--- /dev/null
+From 99e10114a3604de868419e7fa0961de0b4079a8d Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 May 2020 09:38:31 -0600
+Subject: sched/fair: Don't NUMA balance for kthreads
+
+From: Jens Axboe <axboe@kernel.dk>
+
+[ Upstream commit 18f855e574d9799a0e7489f8ae6fd8447d0dd74a ]
+
+Stefano reported a crash with using SQPOLL with io_uring:
+
+ BUG: kernel NULL pointer dereference, address: 00000000000003b0
+ CPU: 2 PID: 1307 Comm: io_uring-sq Not tainted 5.7.0-rc7 #11
+ RIP: 0010:task_numa_work+0x4f/0x2c0
+ Call Trace:
+ task_work_run+0x68/0xa0
+ io_sq_thread+0x252/0x3d0
+ kthread+0xf9/0x130
+ ret_from_fork+0x35/0x40
+
+which is task_numa_work() oopsing on current->mm being NULL.
+
+The task work is queued by task_tick_numa(), which checks if current->mm is
+NULL at the time of the call. But this state isn't necessarily persistent,
+if the kthread is using use_mm() to temporarily adopt the mm of a task.
+
+Change the task_tick_numa() check to exclude kernel threads in general,
+as it doesn't make sense to attempt ot balance for kthreads anyway.
+
+Reported-by: Stefano Garzarella <sgarzare@redhat.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Acked-by: Peter Zijlstra <peterz@infradead.org>
+Link: https://lore.kernel.org/r/865de121-8190-5d30-ece5-3b097dc74431@kernel.dk
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ kernel/sched/fair.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
+index 193b6ab74d7f..8a0e6bdba50d 100644
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -2678,7 +2678,7 @@ static void task_tick_numa(struct rq *rq, struct task_struct *curr)
+ /*
+ * We don't care about NUMA placement if we don't have memory.
+ */
+- if (!curr->mm || (curr->flags & PF_EXITING) || work->next != work)
++ if ((curr->flags & (PF_EXITING | PF_KTHREAD)) || work->next != work)
+ return;
+
+ /*
+--
+2.25.1
+
vxlan-avoid-infinite-loop-when-suppressing-ns-messages-with-invalid-options.patch
bpf-support-llvm-objcopy-for-vmlinux-btf.patch
elfnote-mark-all-.note-sections-shf_alloc.patch
+input-mms114-fix-handling-of-mms345l.patch
+arm-8977-1-ptrace-fix-mask-for-thumb-breakpoint-hook.patch
+sched-fair-don-t-numa-balance-for-kthreads.patch
+input-synaptics-add-a-second-working-pnp_id-for-leno.patch
+csky-fixup-abiv2-syscall_trace-break-a4-a5.patch
+gfs2-even-more-gfs2_find_jhead-fixes.patch
+drivers-net-ibmvnic-update-vnic-protocol-version-rep.patch