···1202512025 iounmap(phba->sli4_hba.conf_regs_memmap_p);1202612026 if (phba->sli4_hba.dpp_regs_memmap_p)1202712027 iounmap(phba->sli4_hba.dpp_regs_memmap_p);1202812028+ if (phba->sli4_hba.dpp_regs_memmap_wc_p)1202912029+ iounmap(phba->sli4_hba.dpp_regs_memmap_wc_p);1202812030 break;1202912031 case LPFC_SLI_INTF_IF_TYPE_1:1203012032 break;
+30-6
drivers/scsi/lpfc/lpfc_sli.c
···1597715977 return NULL;1597815978}15979159791598015980+static __maybe_unused void __iomem *1598115981+lpfc_dpp_wc_map(struct lpfc_hba *phba, uint8_t dpp_barset)1598215982+{1598315983+1598415984+ /* DPP region is supposed to cover 64-bit BAR2 */1598515985+ if (dpp_barset != WQ_PCI_BAR_4_AND_5) {1598615986+ lpfc_log_msg(phba, KERN_WARNING, LOG_INIT,1598715987+ "3273 dpp_barset x%x != WQ_PCI_BAR_4_AND_5\n",1598815988+ dpp_barset);1598915989+ return NULL;1599015990+ }1599115991+1599215992+ if (!phba->sli4_hba.dpp_regs_memmap_wc_p) {1599315993+ void __iomem *dpp_map;1599415994+1599515995+ dpp_map = ioremap_wc(phba->pci_bar2_map,1599615996+ pci_resource_len(phba->pcidev,1599715997+ PCI_64BIT_BAR4));1599815998+1599915999+ if (dpp_map)1600016000+ phba->sli4_hba.dpp_regs_memmap_wc_p = dpp_map;1600116001+ }1600216002+1600316003+ return phba->sli4_hba.dpp_regs_memmap_wc_p;1600416004+}1600516005+1598016006/**1598116007 * lpfc_modify_hba_eq_delay - Modify Delay Multiplier on EQs1598216008 * @phba: HBA structure that EQs are on.···1696616940 uint8_t dpp_barset;1696716941 uint32_t dpp_offset;1696816942 uint8_t wq_create_version;1696916969-#ifdef CONFIG_X861697016970- unsigned long pg_addr;1697116971-#endif16972169431697316944 /* sanity check on queue memory */1697416945 if (!wq || !cq)···17151171281715217129#ifdef CONFIG_X861715317130 /* Enable combined writes for DPP aperture */1715417154- pg_addr = (unsigned long)(wq->dpp_regaddr) & PAGE_MASK;1715517155- rc = set_memory_wc(pg_addr, 1);1715617156- if (rc) {1713117131+ bar_memmap_p = lpfc_dpp_wc_map(phba, dpp_barset);1713217132+ if (!bar_memmap_p) {1715717133 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,1715817134 "3272 Cannot setup Combined "1715917135 "Write on WQ[%d] - disable DPP\n",1716017136 wq->queue_id);1716117137 phba->cfg_enable_dpp = 0;1713817138+ } else {1713917139+ wq->dpp_regaddr = bar_memmap_p + dpp_offset;1716217140 }1716317141#else1716417142 phba->cfg_enable_dpp = 0;
+3
drivers/scsi/lpfc/lpfc_sli4.h
···785785 void __iomem *dpp_regs_memmap_p; /* Kernel memory mapped address for786786 * dpp registers787787 */788788+ void __iomem *dpp_regs_memmap_wc_p;/* Kernel memory mapped address for789789+ * dpp registers with write combining790790+ */788791 union {789792 struct {790793 /* IF Type 0, BAR 0 PCI cfg space reg mem map */
···18561856 cmd_request->payload_sz = payload_sz;1857185718581858 /* Invokes the vsc to start an IO */18591859- ret = storvsc_do_io(dev, cmd_request, get_cpu());18601860- put_cpu();18591859+ migrate_disable();18601860+ ret = storvsc_do_io(dev, cmd_request, smp_processor_id());18611861+ migrate_enable();1861186218621863 if (ret)18631864 scsi_dma_unmap(scmnd);
+22-1
drivers/ufs/core/ufshcd.c
···2424#include <linux/pm_opp.h>2525#include <linux/regulator/consumer.h>2626#include <linux/sched/clock.h>2727+#include <linux/sizes.h>2728#include <linux/iopoll.h>2829#include <scsi/scsi_cmnd.h>2930#include <scsi/scsi_dbg.h>···52505249 hba->dev_info.rpmb_region_size[1] = desc_buf[RPMB_UNIT_DESC_PARAM_REGION1_SIZE];52515250 hba->dev_info.rpmb_region_size[2] = desc_buf[RPMB_UNIT_DESC_PARAM_REGION2_SIZE];52525251 hba->dev_info.rpmb_region_size[3] = desc_buf[RPMB_UNIT_DESC_PARAM_REGION3_SIZE];52525252+52535253+ if (hba->dev_info.wspecversion <= 0x0220) {52545254+ /*52555255+ * These older spec chips have only one RPMB region,52565256+ * sized between 128 kB minimum and 16 MB maximum.52575257+ * No per region size fields are provided (respective52585258+ * REGIONX_SIZE fields always contain zeros), so get52595259+ * it from the logical block count and size fields for52605260+ * compatibility52615261+ *52625262+ * (See JESD220C-2_2 Section 14.1.4.652635263+ * RPMB Unit Descriptor,* offset 13h, 4 bytes)52645264+ */52655265+ hba->dev_info.rpmb_region_size[0] =52665266+ (get_unaligned_be64(desc_buf52675267+ + RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_COUNT)52685268+ << desc_buf[RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_SIZE])52695269+ / SZ_128K;52705270+ }52535271 }5254527252555273···5983596359845964 hba->auto_bkops_enabled = false;59855965 trace_ufshcd_auto_bkops_state(hba, "Disabled");59665966+ hba->urgent_bkops_lvl = BKOPS_STATUS_PERF_IMPACT;59865967 hba->is_urgent_bkops_lvl_checked = false;59875968out:59885969 return err;···60876066 * impacted or critical. Handle these device by determining their urgent60886067 * bkops status at runtime.60896068 */60906090- if (curr_status < BKOPS_STATUS_PERF_IMPACT) {60696069+ if ((curr_status > BKOPS_STATUS_NO_OP) && (curr_status < BKOPS_STATUS_PERF_IMPACT)) {60916070 dev_err(hba->dev, "%s: device raised urgent BKOPS exception for bkops status %d\n",60926071 __func__, curr_status);60936072 /* update the current status as the urgent bkops level */