--- /dev/null
+From 3c6ed961c2bde67a34fb4803549eadbc059b0a02 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 18 Dec 2020 19:47:17 +0100
+Subject: mac80211: fix fast-rx encryption check
+
+From: Felix Fietkau <nbd@nbd.name>
+
+[ Upstream commit 622d3b4e39381262da7b18ca1ed1311df227de86 ]
+
+When using WEP, the default unicast key needs to be selected, instead of
+the STA PTK.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+Link: https://lore.kernel.org/r/20201218184718.93650-5-nbd@nbd.name
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/mac80211/rx.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
+index 9be82ed02e0e5..c38d68131d02e 100644
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -3802,6 +3802,8 @@ void ieee80211_check_fast_rx(struct sta_info *sta)
+
+ rcu_read_lock();
+ key = rcu_dereference(sta->ptk[sta->ptk_idx]);
++ if (!key)
++ key = rcu_dereference(sdata->default_unicast_key);
+ if (key) {
+ switch (key->conf.cipher) {
+ case WLAN_CIPHER_SUITE_TKIP:
+--
+2.27.0
+
--- /dev/null
+From 60b22c32c611b0143a47ffaecaa36af138f5cdc4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 14 Jan 2021 16:14:01 -0600
+Subject: objtool: Don't fail on missing symbol table
+
+From: Josh Poimboeuf <jpoimboe@redhat.com>
+
+[ Upstream commit 1d489151e9f9d1647110277ff77282fe4d96d09b ]
+
+Thanks to a recent binutils change which doesn't generate unused
+symbols, it's now possible for thunk_64.o be completely empty without
+CONFIG_PREEMPTION: no text, no data, no symbols.
+
+We could edit the Makefile to only build that file when
+CONFIG_PREEMPTION is enabled, but that will likely create confusion
+if/when the thunks end up getting used by some other code again.
+
+Just ignore it and move on.
+
+Reported-by: Nathan Chancellor <natechancellor@gmail.com>
+Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
+Reviewed-by: Miroslav Benes <mbenes@suse.cz>
+Tested-by: Nathan Chancellor <natechancellor@gmail.com>
+Link: https://github.com/ClangBuiltLinux/linux/issues/1254
+Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/objtool/elf.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c
+index d84c28eac262d..0ba5bb51bd93c 100644
+--- a/tools/objtool/elf.c
++++ b/tools/objtool/elf.c
+@@ -226,8 +226,11 @@ static int read_symbols(struct elf *elf)
+
+ symtab = find_section_by_name(elf, ".symtab");
+ if (!symtab) {
+- WARN("missing symbol table");
+- return -1;
++ /*
++ * A missing symbol table is actually possible if it's an empty
++ * .o file. This can happen for thunk_64.o.
++ */
++ return 0;
+ }
+
+ symbols_nr = symtab->sh.sh_size / symtab->sh.sh_entsize;
+--
+2.27.0
+
--- /dev/null
+From d3e26d2cc1c6ea713a18455673f1cb17dcda20f8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 12 Jan 2021 09:06:38 -0600
+Subject: scsi: ibmvfc: Set default timeout to avoid crash during migration
+
+From: Brian King <brking@linux.vnet.ibm.com>
+
+[ Upstream commit 764907293edc1af7ac857389af9dc858944f53dc ]
+
+While testing live partition mobility, we have observed occasional crashes
+of the Linux partition. What we've seen is that during the live migration,
+for specific configurations with large amounts of memory, slow network
+links, and workloads that are changing memory a lot, the partition can end
+up being suspended for 30 seconds or longer. This resulted in the following
+scenario:
+
+CPU 0 CPU 1
+------------------------------- ----------------------------------
+scsi_queue_rq migration_store
+ -> blk_mq_start_request -> rtas_ibm_suspend_me
+ -> blk_add_timer -> on_each_cpu(rtas_percpu_suspend_me
+ _______________________________________V
+ |
+ V
+ -> IPI from CPU 1
+ -> rtas_percpu_suspend_me
+ -> __rtas_suspend_last_cpu
+
+-- Linux partition suspended for > 30 seconds --
+ -> for_each_online_cpu(cpu)
+ plpar_hcall_norets(H_PROD
+ -> scsi_dispatch_cmd
+ -> scsi_times_out
+ -> scsi_abort_command
+ -> queue_delayed_work
+ -> ibmvfc_queuecommand_lck
+ -> ibmvfc_send_event
+ -> ibmvfc_send_crq
+ - returns H_CLOSED
+ <- returns SCSI_MLQUEUE_HOST_BUSY
+-> __blk_mq_requeue_request
+
+ -> scmd_eh_abort_handler
+ -> scsi_try_to_abort_cmd
+ - returns SUCCESS
+ -> scsi_queue_insert
+
+Normally, the SCMD_STATE_COMPLETE bit would protect against the command
+completion and the timeout, but that doesn't work here, since we don't
+check that at all in the SCSI_MLQUEUE_HOST_BUSY path.
+
+In this case we end up calling scsi_queue_insert on a request that has
+already been queued, or possibly even freed, and we crash.
+
+The patch below simply increases the default I/O timeout to avoid this race
+condition. This is also the timeout value that nearly all IBM SAN storage
+recommends setting as the default value.
+
+Link: https://lore.kernel.org/r/1610463998-19791-1-git-send-email-brking@linux.vnet.ibm.com
+Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/ibmvscsi/ibmvfc.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
+index 04b3ac17531db..7865feb8e5e83 100644
+--- a/drivers/scsi/ibmvscsi/ibmvfc.c
++++ b/drivers/scsi/ibmvscsi/ibmvfc.c
+@@ -2891,8 +2891,10 @@ static int ibmvfc_slave_configure(struct scsi_device *sdev)
+ unsigned long flags = 0;
+
+ spin_lock_irqsave(shost->host_lock, flags);
+- if (sdev->type == TYPE_DISK)
++ if (sdev->type == TYPE_DISK) {
+ sdev->allow_restart = 1;
++ blk_queue_rq_timeout(sdev->request_queue, 120 * HZ);
++ }
+ spin_unlock_irqrestore(shost->host_lock, flags);
+ return 0;
+ }
+--
+2.27.0
+
--- /dev/null
+From d0d00c30b359602d9625b649fdf3c63ca593d2ad Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 15 Dec 2020 11:47:31 -0800
+Subject: scsi: libfc: Avoid invoking response handler twice if ep is already
+ completed
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Javed Hasan <jhasan@marvell.com>
+
+[ Upstream commit b2b0f16fa65e910a3ec8771206bb49ee87a54ac5 ]
+
+A race condition exists between the response handler getting called because
+of exchange_mgr_reset() (which clears out all the active XIDs) and the
+response we get via an interrupt.
+
+Sequence of events:
+
+ rport ba0200: Port timeout, state PLOGI
+ rport ba0200: Port entered PLOGI state from PLOGI state
+ xid 1052: Exchange timer armed : 20000 msecs xid timer armed here
+ rport ba0200: Received LOGO request while in state PLOGI
+ rport ba0200: Delete port
+ rport ba0200: work event 3
+ rport ba0200: lld callback ev 3
+ bnx2fc: rport_event_hdlr: event = 3, port_id = 0xba0200
+ bnx2fc: ba0200 - rport not created Yet!!
+ /* Here we reset any outstanding exchanges before
+ freeing rport using the exch_mgr_reset() */
+ xid 1052: Exchange timer canceled
+ /* Here we got two responses for one xid */
+ xid 1052: invoking resp(), esb 20000000 state 3
+ xid 1052: invoking resp(), esb 20000000 state 3
+ xid 1052: fc_rport_plogi_resp() : ep->resp_active 2
+ xid 1052: fc_rport_plogi_resp() : ep->resp_active 2
+
+Skip the response if the exchange is already completed.
+
+Link: https://lore.kernel.org/r/20201215194731.2326-1-jhasan@marvell.com
+Signed-off-by: Javed Hasan <jhasan@marvell.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/scsi/libfc/fc_exch.c | 16 ++++++++++++++--
+ 1 file changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
+index d0a86ef806522..59fd6101f188b 100644
+--- a/drivers/scsi/libfc/fc_exch.c
++++ b/drivers/scsi/libfc/fc_exch.c
+@@ -1585,8 +1585,13 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
+ rc = fc_exch_done_locked(ep);
+ WARN_ON(fc_seq_exch(sp) != ep);
+ spin_unlock_bh(&ep->ex_lock);
+- if (!rc)
++ if (!rc) {
+ fc_exch_delete(ep);
++ } else {
++ FC_EXCH_DBG(ep, "ep is completed already,"
++ "hence skip calling the resp\n");
++ goto skip_resp;
++ }
+ }
+
+ /*
+@@ -1605,6 +1610,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
+ if (!fc_invoke_resp(ep, sp, fp))
+ fc_frame_free(fp);
+
++skip_resp:
+ fc_exch_release(ep);
+ return;
+ rel:
+@@ -1848,10 +1854,16 @@ static void fc_exch_reset(struct fc_exch *ep)
+
+ fc_exch_hold(ep);
+
+- if (!rc)
++ if (!rc) {
+ fc_exch_delete(ep);
++ } else {
++ FC_EXCH_DBG(ep, "ep is completed already,"
++ "hence skip calling the resp\n");
++ goto skip_resp;
++ }
+
+ fc_invoke_resp(ep, sp, ERR_PTR(-FC_EX_CLOSED));
++skip_resp:
+ fc_seq_set_resp(sp, NULL, ep->arg);
+ fc_exch_release(ep);
+ }
+--
+2.27.0
+
futex-use-pi_state_update_owner-in-put_pi_state.patch
futex-simplify-fixup_pi_state_owner.patch
futex-handle-faults-correctly-for-pi-futexes.patch
+scsi-libfc-avoid-invoking-response-handler-twice-if-.patch
+mac80211-fix-fast-rx-encryption-check.patch
+scsi-ibmvfc-set-default-timeout-to-avoid-crash-durin.patch
+objtool-don-t-fail-on-missing-symbol-table.patch