Merge branch 'fixes' into next
There's a few important fixes in our fixes branch, in particular the pgd/pud_present() one, so merge it now.
This commit is contained in:
@@ -237,12 +237,12 @@ static int ocm_debugfs_show(struct seq_file *m, void *v)
|
||||
continue;
|
||||
|
||||
seq_printf(m, "PPC4XX OCM : %d\n", ocm->index);
|
||||
seq_printf(m, "PhysAddr : %pa[p]\n", &(ocm->phys));
|
||||
seq_printf(m, "PhysAddr : %pa\n", &(ocm->phys));
|
||||
seq_printf(m, "MemTotal : %d Bytes\n", ocm->memtotal);
|
||||
seq_printf(m, "MemTotal(NC) : %d Bytes\n", ocm->nc.memtotal);
|
||||
seq_printf(m, "MemTotal(C) : %d Bytes\n\n", ocm->c.memtotal);
|
||||
|
||||
seq_printf(m, "NC.PhysAddr : %pa[p]\n", &(ocm->nc.phys));
|
||||
seq_printf(m, "NC.PhysAddr : %pa\n", &(ocm->nc.phys));
|
||||
seq_printf(m, "NC.VirtAddr : 0x%p\n", ocm->nc.virt);
|
||||
seq_printf(m, "NC.MemTotal : %d Bytes\n", ocm->nc.memtotal);
|
||||
seq_printf(m, "NC.MemFree : %d Bytes\n", ocm->nc.memfree);
|
||||
@@ -252,7 +252,7 @@ static int ocm_debugfs_show(struct seq_file *m, void *v)
|
||||
blk->size, blk->owner);
|
||||
}
|
||||
|
||||
seq_printf(m, "\nC.PhysAddr : %pa[p]\n", &(ocm->c.phys));
|
||||
seq_printf(m, "\nC.PhysAddr : %pa\n", &(ocm->c.phys));
|
||||
seq_printf(m, "C.VirtAddr : 0x%p\n", ocm->c.virt);
|
||||
seq_printf(m, "C.MemTotal : %d Bytes\n", ocm->c.memtotal);
|
||||
seq_printf(m, "C.MemFree : %d Bytes\n", ocm->c.memfree);
|
||||
|
@@ -560,7 +560,7 @@ struct iommu_table_group *pnv_try_setup_npu_table_group(struct pnv_ioda_pe *pe)
|
||||
}
|
||||
} else {
|
||||
/* Create a group for 1 GPU and attached NPUs for POWER8 */
|
||||
pe->npucomp = kzalloc(sizeof(pe->npucomp), GFP_KERNEL);
|
||||
pe->npucomp = kzalloc(sizeof(*pe->npucomp), GFP_KERNEL);
|
||||
table_group = &pe->npucomp->table_group;
|
||||
table_group->ops = &pnv_npu_peers_ops;
|
||||
iommu_register_group(table_group, hose->global_number,
|
||||
|
@@ -2681,7 +2681,8 @@ static void pnv_pci_ioda_setup_iommu_api(void)
|
||||
list_for_each_entry(hose, &hose_list, list_node) {
|
||||
phb = hose->private_data;
|
||||
|
||||
if (phb->type == PNV_PHB_NPU_NVLINK)
|
||||
if (phb->type == PNV_PHB_NPU_NVLINK ||
|
||||
phb->type == PNV_PHB_NPU_OCAPI)
|
||||
continue;
|
||||
|
||||
list_for_each_entry(pe, &phb->ioda.pe_list, list) {
|
||||
|
@@ -43,6 +43,7 @@ static int drc_pmem_bind(struct papr_scm_priv *p)
|
||||
{
|
||||
unsigned long ret[PLPAR_HCALL_BUFSIZE];
|
||||
uint64_t rc, token;
|
||||
uint64_t saved = 0;
|
||||
|
||||
/*
|
||||
* When the hypervisor cannot map all the requested memory in a single
|
||||
@@ -56,6 +57,8 @@ static int drc_pmem_bind(struct papr_scm_priv *p)
|
||||
rc = plpar_hcall(H_SCM_BIND_MEM, ret, p->drc_index, 0,
|
||||
p->blocks, BIND_ANY_ADDR, token);
|
||||
token = ret[0];
|
||||
if (!saved)
|
||||
saved = ret[1];
|
||||
cond_resched();
|
||||
} while (rc == H_BUSY);
|
||||
|
||||
@@ -64,7 +67,7 @@ static int drc_pmem_bind(struct papr_scm_priv *p)
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
p->bound_addr = ret[1];
|
||||
p->bound_addr = saved;
|
||||
|
||||
dev_dbg(&p->pdev->dev, "bound drc %x to %pR\n", p->drc_index, &p->res);
|
||||
|
||||
|
@@ -264,7 +264,9 @@ void __init pSeries_final_fixup(void)
|
||||
if (!of_device_is_compatible(nvdn->parent,
|
||||
"ibm,power9-npu"))
|
||||
continue;
|
||||
#ifdef CONFIG_PPC_POWERNV
|
||||
WARN_ON_ONCE(pnv_npu2_init(hose));
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user