rebase patches on top of Ubuntu-5.4.0-55.61
(generated with debian/scripts/import-upstream-tag) + manually dropped the now hopefully superfluous. 0006-Revert-scsi-lpfc-Fix-broken-Credit-Recovery-after-dr.patch Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
74eaf7a3f8
commit
11ed605e92
5 changed files with 6 additions and 135 deletions
|
@ -55,7 +55,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
2 files changed, 111 insertions(+)
|
2 files changed, 111 insertions(+)
|
||||||
|
|
||||||
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
|
||||||
index 9c05c1fd8ed2..3fe28e536a56 100644
|
index 6175a7138e32..8543cec6a920 100644
|
||||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||||
@@ -3434,6 +3434,15 @@
|
@@ -3434,6 +3434,15 @@
|
||||||
|
@ -75,7 +75,7 @@ index 9c05c1fd8ed2..3fe28e536a56 100644
|
||||||
Safety option to keep boot IRQs enabled. This
|
Safety option to keep boot IRQs enabled. This
|
||||||
should never be necessary.
|
should never be necessary.
|
||||||
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
||||||
index a9e94df74b4e..88f623caa2dd 100644
|
index 706f27a86a8e..c3eac7a5426e 100644
|
||||||
--- a/drivers/pci/quirks.c
|
--- a/drivers/pci/quirks.c
|
||||||
+++ b/drivers/pci/quirks.c
|
+++ b/drivers/pci/quirks.c
|
||||||
@@ -192,6 +192,106 @@ static int __init pci_apply_final_quirks(void)
|
@@ -192,6 +192,106 @@ static int __init pci_apply_final_quirks(void)
|
||||||
|
@ -185,7 +185,7 @@ index a9e94df74b4e..88f623caa2dd 100644
|
||||||
/*
|
/*
|
||||||
* Decoding should be disabled for a PCI device during BAR sizing to avoid
|
* Decoding should be disabled for a PCI device during BAR sizing to avoid
|
||||||
* conflict. But doing so may cause problems on host bridge and perhaps other
|
* conflict. But doing so may cause problems on host bridge and perhaps other
|
||||||
@@ -4827,6 +4927,8 @@ static const struct pci_dev_acs_enabled {
|
@@ -4825,6 +4925,8 @@ static const struct pci_dev_acs_enabled {
|
||||||
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
|
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
|
||||||
/* APM X-Gene */
|
/* APM X-Gene */
|
||||||
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
|
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
|
||||||
|
|
|
@ -13,7 +13,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
|
||||||
index e21dd82babf7..d77e312ba5cc 100644
|
index 8769538a3d1d..d540a7d7f85c 100644
|
||||||
--- a/virt/kvm/kvm_main.c
|
--- a/virt/kvm/kvm_main.c
|
||||||
+++ b/virt/kvm/kvm_main.c
|
+++ b/virt/kvm/kvm_main.c
|
||||||
@@ -76,7 +76,7 @@ module_param(halt_poll_ns, uint, 0644);
|
@@ -76,7 +76,7 @@ module_param(halt_poll_ns, uint, 0644);
|
||||||
|
|
|
@ -18,7 +18,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
|
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
|
||||||
index 3be65495aeb8..8a600e93450f 100644
|
index 2a1ed3aae100..c5dd076e8e61 100644
|
||||||
--- a/arch/x86/kvm/vmx/vmx.c
|
--- a/arch/x86/kvm/vmx/vmx.c
|
||||||
+++ b/arch/x86/kvm/vmx/vmx.c
|
+++ b/arch/x86/kvm/vmx/vmx.c
|
||||||
@@ -103,7 +103,7 @@ module_param(enable_apicv, bool, S_IRUGO);
|
@@ -103,7 +103,7 @@ module_param(enable_apicv, bool, S_IRUGO);
|
||||||
|
|
|
@ -1,129 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
||||||
Date: Fri, 15 May 2020 14:43:37 +0200
|
|
||||||
Subject: [PATCH] Revert "scsi: lpfc: Fix broken Credit Recovery after driver
|
|
||||||
load"
|
|
||||||
|
|
||||||
This reverts commit 77d5805eafdb5c42bdfe78f058ad9c40ee1278b4.
|
|
||||||
We got some reports that this causes some lpfcs to report FLOGI
|
|
||||||
errors[0][1] and while the real fix is naturally something else, it
|
|
||||||
is nonexistent for now, so workaround with this revert.
|
|
||||||
|
|
||||||
[0]: https://forum.proxmox.com/threads/proxmox-6-2-lpfc-error-port-type-wrong.69680/#post-312491
|
|
||||||
[1]: https://lore.kernel.org/linux-scsi/20200512212855.36q2ut2io2cdtagn@zeha.at/
|
|
||||||
---
|
|
||||||
drivers/scsi/lpfc/lpfc.h | 1 -
|
|
||||||
drivers/scsi/lpfc/lpfc_hbadisc.c | 59 +++++++++++---------------------
|
|
||||||
2 files changed, 20 insertions(+), 40 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
|
|
||||||
index 357fdec06bae..cd5525f28556 100644
|
|
||||||
--- a/drivers/scsi/lpfc/lpfc.h
|
|
||||||
+++ b/drivers/scsi/lpfc/lpfc.h
|
|
||||||
@@ -748,7 +748,6 @@ struct lpfc_hba {
|
|
||||||
* capability
|
|
||||||
*/
|
|
||||||
#define HBA_FLOGI_ISSUED 0x100000 /* FLOGI was issued */
|
|
||||||
-#define HBA_DEFER_FLOGI 0x800000 /* Defer FLOGI till read_sparm cmpl */
|
|
||||||
|
|
||||||
uint32_t fcp_ring_in_use; /* When polling test if intr-hndlr active*/
|
|
||||||
struct lpfc_dmabuf slim2p;
|
|
||||||
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
|
|
||||||
index 789eecbf32eb..95566e382b48 100644
|
|
||||||
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
|
|
||||||
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
|
|
||||||
@@ -1163,16 +1163,13 @@ lpfc_mbx_cmpl_local_config_link(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Start discovery by sending a FLOGI. port_state is identically
|
|
||||||
- * LPFC_FLOGI while waiting for FLOGI cmpl. Check if sending
|
|
||||||
- * the FLOGI is being deferred till after MBX_READ_SPARAM completes.
|
|
||||||
+ * LPFC_FLOGI while waiting for FLOGI cmpl
|
|
||||||
*/
|
|
||||||
- if (vport->port_state != LPFC_FLOGI) {
|
|
||||||
- if (!(phba->hba_flag & HBA_DEFER_FLOGI))
|
|
||||||
- lpfc_initial_flogi(vport);
|
|
||||||
- } else {
|
|
||||||
- if (vport->fc_flag & FC_PT2PT)
|
|
||||||
- lpfc_disc_start(vport);
|
|
||||||
- }
|
|
||||||
+ if (vport->port_state != LPFC_FLOGI)
|
|
||||||
+ lpfc_initial_flogi(vport);
|
|
||||||
+ else if (vport->fc_flag & FC_PT2PT)
|
|
||||||
+ lpfc_disc_start(vport);
|
|
||||||
+
|
|
||||||
return;
|
|
||||||
|
|
||||||
out:
|
|
||||||
@@ -3097,14 +3094,6 @@ lpfc_mbx_cmpl_read_sparam(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
|
|
||||||
lpfc_mbuf_free(phba, mp->virt, mp->phys);
|
|
||||||
kfree(mp);
|
|
||||||
mempool_free(pmb, phba->mbox_mem_pool);
|
|
||||||
-
|
|
||||||
- /* Check if sending the FLOGI is being deferred to after we get
|
|
||||||
- * up to date CSPs from MBX_READ_SPARAM.
|
|
||||||
- */
|
|
||||||
- if (phba->hba_flag & HBA_DEFER_FLOGI) {
|
|
||||||
- lpfc_initial_flogi(vport);
|
|
||||||
- phba->hba_flag &= ~HBA_DEFER_FLOGI;
|
|
||||||
- }
|
|
||||||
return;
|
|
||||||
|
|
||||||
out:
|
|
||||||
@@ -3235,23 +3224,6 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, struct lpfc_mbx_read_top *la)
|
|
||||||
}
|
|
||||||
|
|
||||||
lpfc_linkup(phba);
|
|
||||||
- sparam_mbox = NULL;
|
|
||||||
-
|
|
||||||
- if (!(phba->hba_flag & HBA_FCOE_MODE)) {
|
|
||||||
- cfglink_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
|
|
||||||
- if (!cfglink_mbox)
|
|
||||||
- goto out;
|
|
||||||
- vport->port_state = LPFC_LOCAL_CFG_LINK;
|
|
||||||
- lpfc_config_link(phba, cfglink_mbox);
|
|
||||||
- cfglink_mbox->vport = vport;
|
|
||||||
- cfglink_mbox->mbox_cmpl = lpfc_mbx_cmpl_local_config_link;
|
|
||||||
- rc = lpfc_sli_issue_mbox(phba, cfglink_mbox, MBX_NOWAIT);
|
|
||||||
- if (rc == MBX_NOT_FINISHED) {
|
|
||||||
- mempool_free(cfglink_mbox, phba->mbox_mem_pool);
|
|
||||||
- goto out;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
sparam_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
|
|
||||||
if (!sparam_mbox)
|
|
||||||
goto out;
|
|
||||||
@@ -3272,7 +3244,20 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, struct lpfc_mbx_read_top *la)
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (phba->hba_flag & HBA_FCOE_MODE) {
|
|
||||||
+ if (!(phba->hba_flag & HBA_FCOE_MODE)) {
|
|
||||||
+ cfglink_mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
|
|
||||||
+ if (!cfglink_mbox)
|
|
||||||
+ goto out;
|
|
||||||
+ vport->port_state = LPFC_LOCAL_CFG_LINK;
|
|
||||||
+ lpfc_config_link(phba, cfglink_mbox);
|
|
||||||
+ cfglink_mbox->vport = vport;
|
|
||||||
+ cfglink_mbox->mbox_cmpl = lpfc_mbx_cmpl_local_config_link;
|
|
||||||
+ rc = lpfc_sli_issue_mbox(phba, cfglink_mbox, MBX_NOWAIT);
|
|
||||||
+ if (rc == MBX_NOT_FINISHED) {
|
|
||||||
+ mempool_free(cfglink_mbox, phba->mbox_mem_pool);
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
vport->port_state = LPFC_VPORT_UNKNOWN;
|
|
||||||
/*
|
|
||||||
* Add the driver's default FCF record at FCF index 0 now. This
|
|
||||||
@@ -3329,10 +3314,6 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, struct lpfc_mbx_read_top *la)
|
|
||||||
}
|
|
||||||
/* Reset FCF roundrobin bmask for new discovery */
|
|
||||||
lpfc_sli4_clear_fcf_rr_bmask(phba);
|
|
||||||
- } else {
|
|
||||||
- if (phba->bbcredit_support && phba->cfg_enable_bbcr &&
|
|
||||||
- !(phba->link_flag & LS_LOOPBACK_MODE))
|
|
||||||
- phba->hba_flag |= HBA_DEFER_FLOGI;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Prepare for LINK up registrations */
|
|
|
@ -10,7 +10,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/net/core/dev.c b/net/core/dev.c
|
diff --git a/net/core/dev.c b/net/core/dev.c
|
||||||
index e1aeceb96cdd..06879dd34d8f 100644
|
index 134add2cc8da..5be8d3b4cf68 100644
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -9279,7 +9279,7 @@ static void netdev_wait_allrefs(struct net_device *dev)
|
@@ -9279,7 +9279,7 @@ static void netdev_wait_allrefs(struct net_device *dev)
|
Loading…
Reference in a new issue