From f240f5a851627158744d3bacde88cb2bda7a79d3 Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Mon, 19 Aug 2024 18:14:29 +0200 Subject: [PATCH] 0004-scsi-hpsa-Ignore-HBA-flag-from-NVRAM-if-logical-devi.patch Signed-off-by: AuxXxilium --- src/5.x/drivers/scsi/hpsa.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/5.x/drivers/scsi/hpsa.c b/src/5.x/drivers/scsi/hpsa.c index 82194d65..2669d6df 100644 --- a/src/5.x/drivers/scsi/hpsa.c +++ b/src/5.x/drivers/scsi/hpsa.c @@ -4415,10 +4415,11 @@ out: return rc; } -static int hpsa_update_nvram_hba_mode(struct ctlr_info *h) +static int hpsa_update_nvram_hba_mode(struct ctlr_info *h, u32 nlogicals) { int rc; bool flag_enabled; + bool ignore; if (!hpsa_use_nvram_hba_flag) return 0; @@ -4429,10 +4430,13 @@ static int hpsa_update_nvram_hba_mode(struct ctlr_info *h) if (rc) return rc; - dev_info(&h->pdev->dev, "NVRAM HBA flag: %s\n", - flag_enabled ? "enabled" : "disabled"); + ignore = flag_enabled && nlogicals; - h->nvram_hba_mode_enabled = flag_enabled; + dev_info(&h->pdev->dev, "NVRAM HBA flag: %s%s\n", + flag_enabled ? "enabled" : "disabled", + ignore ? " (ignored because of existing logical devices)" : ""); + + h->nvram_hba_mode_enabled = flag_enabled && !ignore; return 0; } @@ -4493,7 +4497,7 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h) __func__); } - if (hpsa_update_nvram_hba_mode(h)) { + if (hpsa_update_nvram_hba_mode(h, nlogicals)) { h->drv_req_rescan = 1; goto out; }