/kernel/linux/linux-5.10/drivers/misc/cxl/ |
H A D | irq.c | 25 static irqreturn_t schedule_cxl_fault(struct cxl_context *ctx, u64 dsisr, u64 dar) in schedule_cxl_fault() argument 27 ctx->dsisr = dsisr; in schedule_cxl_fault() 35 u64 dsisr, dar; in cxl_irq_psl9() local 37 dsisr = irq_info->dsisr; in cxl_irq_psl9() 40 trace_cxl_psl9_irq(ctx, irq, dsisr, dar); in cxl_irq_psl9() 42 pr_devel("CXL interrupt %i for afu pe: %i DSISR: %#llx DAR: %#llx\n", irq, ctx->pe, dsisr, dar); in cxl_irq_psl9() 44 if (dsisr & CXL_PSL9_DSISR_An_TF) { in cxl_irq_psl9() 46 return schedule_cxl_fault(ctx, dsisr, da in cxl_irq_psl9() 86 u64 dsisr, dar; cxl_irq_psl8() local [all...] |
H A D | fault.c | 106 ctx->fault_dsisr = ctx->dsisr; in cxl_ack_ae() 131 int cxl_handle_mm_fault(struct mm_struct *mm, u64 dsisr, u64 dar) in cxl_handle_mm_fault() argument 153 if ((result = copro_handle_mm_fault(mm, dar, dsisr, &flt))) { in cxl_handle_mm_fault() 164 if (dsisr & CXL_PSL_DSISR_An_S) in cxl_handle_mm_fault() 170 if (dsisr & DSISR_NOHPTE) in cxl_handle_mm_fault() 182 u64 dsisr, u64 dar) in cxl_handle_page_fault() 184 trace_cxl_pte_miss(ctx, dsisr, dar); in cxl_handle_page_fault() 186 if (cxl_handle_mm_fault(mm, dsisr, dar)) { in cxl_handle_page_fault() 209 static bool cxl_is_segment_miss(struct cxl_context *ctx, u64 dsisr) in cxl_is_segment_miss() argument 211 if ((cxl_is_power8() && (dsisr in cxl_is_segment_miss() 180 cxl_handle_page_fault(struct cxl_context *ctx, struct mm_struct *mm, u64 dsisr, u64 dar) cxl_handle_page_fault() argument 217 cxl_is_page_fault(struct cxl_context *ctx, u64 dsisr) cxl_is_page_fault() argument 232 u64 dsisr = ctx->dsisr; cxl_handle_fault() local [all...] |
H A D | trace.h | 163 TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar), 165 TP_ARGS(ctx, irq, dsisr, dar), 172 __field(u64, dsisr) 181 __entry->dsisr = dsisr; 185 TP_printk("afu%i.%i pe=%i irq=%i dsisr=0x%016llx dsisr=%s dar=0x%016llx", 190 __entry->dsisr, 191 dsisr_psl9_flags(__entry->dsisr), 197 TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u6 [all...] |
H A D | native.c | 134 u64 dsisr, dar; in cxl_psl_purge() local 176 dsisr = cxl_p2n_read(afu, CXL_PSL_DSISR_An); in cxl_psl_purge() 178 PSL_CNTL, dsisr); in cxl_psl_purge() 180 if (dsisr & trans_fault) { in cxl_psl_purge() 183 dsisr, dar); in cxl_psl_purge() 185 } else if (dsisr) { in cxl_psl_purge() 187 dsisr); in cxl_psl_purge() 1092 info->dsisr = cxl_p2n_read(afu, CXL_PSL_DSISR_An); in native_get_irq_info() 1136 u64 dsisr, u64 errstat) in native_handle_psl_slice_error() 1152 static bool cxl_is_translation_fault(struct cxl_afu *afu, u64 dsisr) in cxl_is_translation_fault() argument 1135 native_handle_psl_slice_error(struct cxl_context *ctx, u64 dsisr, u64 errstat) native_handle_psl_slice_error() argument 1218 u64 dsisr; native_irq_wait() local 1252 u64 errstat, serr, afu_error, dsisr; native_slice_irq_err() local 1439 u64 dsisr; recover_psl_err() local [all...] |
/kernel/linux/linux-6.6/drivers/misc/cxl/ |
H A D | irq.c | 26 static irqreturn_t schedule_cxl_fault(struct cxl_context *ctx, u64 dsisr, u64 dar) in schedule_cxl_fault() argument 28 ctx->dsisr = dsisr; in schedule_cxl_fault() 36 u64 dsisr, dar; in cxl_irq_psl9() local 38 dsisr = irq_info->dsisr; in cxl_irq_psl9() 41 trace_cxl_psl9_irq(ctx, irq, dsisr, dar); in cxl_irq_psl9() 43 pr_devel("CXL interrupt %i for afu pe: %i DSISR: %#llx DAR: %#llx\n", irq, ctx->pe, dsisr, dar); in cxl_irq_psl9() 45 if (dsisr & CXL_PSL9_DSISR_An_TF) { in cxl_irq_psl9() 47 return schedule_cxl_fault(ctx, dsisr, da in cxl_irq_psl9() 87 u64 dsisr, dar; cxl_irq_psl8() local [all...] |
H A D | fault.c | 106 ctx->fault_dsisr = ctx->dsisr; in cxl_ack_ae() 131 int cxl_handle_mm_fault(struct mm_struct *mm, u64 dsisr, u64 dar) in cxl_handle_mm_fault() argument 153 if ((result = copro_handle_mm_fault(mm, dar, dsisr, &flt))) { in cxl_handle_mm_fault() 164 if (dsisr & CXL_PSL_DSISR_An_S) in cxl_handle_mm_fault() 170 if (dsisr & DSISR_NOHPTE) in cxl_handle_mm_fault() 182 u64 dsisr, u64 dar) in cxl_handle_page_fault() 184 trace_cxl_pte_miss(ctx, dsisr, dar); in cxl_handle_page_fault() 186 if (cxl_handle_mm_fault(mm, dsisr, dar)) { in cxl_handle_page_fault() 209 static bool cxl_is_segment_miss(struct cxl_context *ctx, u64 dsisr) in cxl_is_segment_miss() argument 211 if ((cxl_is_power8() && (dsisr in cxl_is_segment_miss() 180 cxl_handle_page_fault(struct cxl_context *ctx, struct mm_struct *mm, u64 dsisr, u64 dar) cxl_handle_page_fault() argument 217 cxl_is_page_fault(struct cxl_context *ctx, u64 dsisr) cxl_is_page_fault() argument 232 u64 dsisr = ctx->dsisr; cxl_handle_fault() local [all...] |
H A D | trace.h | 163 TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar), 165 TP_ARGS(ctx, irq, dsisr, dar), 172 __field(u64, dsisr) 181 __entry->dsisr = dsisr; 185 TP_printk("afu%i.%i pe=%i irq=%i dsisr=0x%016llx dsisr=%s dar=0x%016llx", 190 __entry->dsisr, 191 dsisr_psl9_flags(__entry->dsisr), 197 TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u6 [all...] |
H A D | native.c | 135 u64 dsisr, dar; in cxl_psl_purge() local 177 dsisr = cxl_p2n_read(afu, CXL_PSL_DSISR_An); in cxl_psl_purge() 179 PSL_CNTL, dsisr); in cxl_psl_purge() 181 if (dsisr & trans_fault) { in cxl_psl_purge() 184 dsisr, dar); in cxl_psl_purge() 186 } else if (dsisr) { in cxl_psl_purge() 188 dsisr); in cxl_psl_purge() 1088 info->dsisr = cxl_p2n_read(afu, CXL_PSL_DSISR_An); in native_get_irq_info() 1132 u64 dsisr, u64 errstat) in native_handle_psl_slice_error() 1148 static bool cxl_is_translation_fault(struct cxl_afu *afu, u64 dsisr) in cxl_is_translation_fault() argument 1131 native_handle_psl_slice_error(struct cxl_context *ctx, u64 dsisr, u64 errstat) native_handle_psl_slice_error() argument 1214 u64 dsisr; native_irq_wait() local 1248 u64 errstat, serr, afu_error, dsisr; native_slice_irq_err() local 1435 u64 dsisr; recover_psl_err() local [all...] |
/kernel/linux/linux-5.10/arch/powerpc/include/asm/ |
H A D | disassemble.h | 92 unsigned dsisr; in make_dsisr() local 96 dsisr = (instr & 0x03ff0000) >> 16; in make_dsisr() 100 dsisr |= (instr & 0x00000006) << 14; in make_dsisr() 102 dsisr |= (instr & 0x00000040) << 8; in make_dsisr() 104 dsisr |= (instr & 0x00000780) << 3; in make_dsisr() 107 dsisr |= (instr & 0x04000000) >> 12; in make_dsisr() 109 dsisr |= (instr & 0x78000000) >> 17; in make_dsisr() 112 dsisr |= (instr & 0x00000003) << 18; in make_dsisr() 115 return dsisr; in make_dsisr()
|
H A D | pnv-ocxl.h | 21 void pnv_ocxl_unmap_xsl_regs(void __iomem *dsisr, void __iomem *dar, 23 int pnv_ocxl_map_xsl_regs(struct pci_dev *dev, void __iomem **dsisr,
|
/kernel/linux/linux-6.6/arch/powerpc/include/asm/ |
H A D | disassemble.h | 92 unsigned dsisr; in make_dsisr() local 96 dsisr = (instr & 0x03ff0000) >> 16; in make_dsisr() 100 dsisr |= (instr & 0x00000006) << 14; in make_dsisr() 102 dsisr |= (instr & 0x00000040) << 8; in make_dsisr() 104 dsisr |= (instr & 0x00000780) << 3; in make_dsisr() 107 dsisr |= (instr & 0x04000000) >> 12; in make_dsisr() 109 dsisr |= (instr & 0x78000000) >> 17; in make_dsisr() 112 dsisr |= (instr & 0x00000003) << 18; in make_dsisr() 115 return dsisr; in make_dsisr()
|
/kernel/linux/linux-5.10/drivers/misc/ocxl/ |
H A D | trace.h | 71 TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc), 72 TP_ARGS(spa, pe, dsisr, dar, tfc), 77 __field(u64, dsisr) 85 __entry->dsisr = dsisr; 90 TP_printk("spa=%p pe=0x%llx dsisr=0x%llx dar=0x%llx tfc=0x%llx", 93 __entry->dsisr, 100 TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc), 101 TP_ARGS(spa, pe, dsisr, dar, tfc) 105 TP_PROTO(void *spa, u64 pe, u64 dsisr, u6 [all...] |
H A D | link.c | 40 void (*xsl_err_cb)(void *data, u64 addr, u64 dsisr); 66 u64 dsisr; member 100 static void read_irq(struct spa *spa, u64 *dsisr, u64 *dar, u64 *pe) in read_irq() argument 104 *dsisr = in_be64(spa->reg_dsisr); in read_irq() 124 spa->xsl_fault.dsisr, spa->xsl_fault.dar, reg); in ack_irq() 144 rc = copro_handle_mm_fault(fault->pe_data.mm, fault->dar, fault->dsisr, in xsl_fault_handler_bh() 151 fault->dar, fault->dsisr); in xsl_fault_handler_bh() 164 if (fault->dsisr & SPA_XSL_S) in xsl_fault_handler_bh() 185 u64 dsisr, dar, pe_handle; in xsl_fault_handler() local 191 read_irq(spa, &dsisr, in xsl_fault_handler() 496 ocxl_link_add_pe(void *link_handle, int pasid, u32 pidr, u32 tidr, u64 amr, struct mm_struct *mm, void (*xsl_err_cb)(void *data, u64 addr, u64 dsisr), void *xsl_err_data) ocxl_link_add_pe() argument [all...] |
/kernel/linux/linux-6.6/drivers/misc/ocxl/ |
H A D | trace.h | 135 TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc), 136 TP_ARGS(spa, pe, dsisr, dar, tfc), 141 __field(u64, dsisr) 149 __entry->dsisr = dsisr; 154 TP_printk("spa=%p pe=0x%llx dsisr=0x%llx dar=0x%llx tfc=0x%llx", 157 __entry->dsisr, 164 TP_PROTO(void *spa, u64 pe, u64 dsisr, u64 dar, u64 tfc), 165 TP_ARGS(spa, pe, dsisr, dar, tfc) 169 TP_PROTO(void *spa, u64 pe, u64 dsisr, u6 [all...] |
H A D | link.c | 44 void (*xsl_err_cb)(void *data, u64 addr, u64 dsisr); 72 u64 dsisr; member 108 static void read_irq(struct spa *spa, u64 *dsisr, u64 *dar, u64 *pe) in read_irq() argument 112 *dsisr = in_be64(spa->reg_dsisr); in read_irq() 132 spa->xsl_fault.dsisr, spa->xsl_fault.dar, reg); in ack_irq() 152 rc = copro_handle_mm_fault(fault->pe_data.mm, fault->dar, fault->dsisr, in xsl_fault_handler_bh() 159 fault->dar, fault->dsisr); in xsl_fault_handler_bh() 172 if (fault->dsisr & SPA_XSL_S) in xsl_fault_handler_bh() 193 u64 dsisr, dar, pe_handle; in xsl_fault_handler() local 199 read_irq(spa, &dsisr, in xsl_fault_handler() 538 ocxl_link_add_pe(void *link_handle, int pasid, u32 pidr, u32 tidr, u64 amr, u16 bdf, struct mm_struct *mm, void (*xsl_err_cb)(void *data, u64 addr, u64 dsisr), void *xsl_err_data) ocxl_link_add_pe() argument [all...] |
/kernel/linux/linux-5.10/arch/powerpc/kvm/ |
H A D | book3s_hv_ras.c | 77 unsigned long dsisr = vcpu->arch.shregs.dsisr; in kvmppc_realmode_mc_power7() local 79 if (dsisr & (DSISR_MC_SLB_PARMULTI | DSISR_MC_SLB_MULTI | in kvmppc_realmode_mc_power7() 83 dsisr &= ~(DSISR_MC_SLB_PARMULTI | DSISR_MC_SLB_MULTI | in kvmppc_realmode_mc_power7() 86 if (dsisr & DSISR_MC_TLB_MULTI) { in kvmppc_realmode_mc_power7() 88 dsisr &= ~DSISR_MC_TLB_MULTI; in kvmppc_realmode_mc_power7() 91 if (dsisr & 0xffffffffUL) in kvmppc_realmode_mc_power7()
|
/kernel/linux/linux-5.10/arch/powerpc/platforms/cell/spufs/ |
H A D | fault.c | 88 u64 ea, dsisr, access; in spufs_handle_class1() local 94 * dar and dsisr get passed from the registers in spufs_handle_class1() 103 dsisr = ctx->csa.class_1_dsisr; in spufs_handle_class1() 105 if (!(dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED))) in spufs_handle_class1() 110 pr_debug("ctx %p: ea %016llx, dsisr %016llx state %d\n", ctx, ea, in spufs_handle_class1() 111 dsisr, ctx->state); in spufs_handle_class1() 121 access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_WRITE : 0UL; in spufs_handle_class1() 123 ret = hash_page(ea, access, 0x300, dsisr); in spufs_handle_class1() 128 ret = copro_handle_mm_fault(current->mm, ea, dsisr, &flt); in spufs_handle_class1() 137 * Clear dsisr unde in spufs_handle_class1() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/platforms/cell/spufs/ |
H A D | fault.c | 88 u64 ea, dsisr, access; in spufs_handle_class1() local 94 * dar and dsisr get passed from the registers in spufs_handle_class1() 103 dsisr = ctx->csa.class_1_dsisr; in spufs_handle_class1() 105 if (!(dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED))) in spufs_handle_class1() 110 pr_debug("ctx %p: ea %016llx, dsisr %016llx state %d\n", ctx, ea, in spufs_handle_class1() 111 dsisr, ctx->state); in spufs_handle_class1() 121 access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_WRITE : 0UL; in spufs_handle_class1() 123 ret = hash_page(ea, access, 0x300, dsisr); in spufs_handle_class1() 128 ret = copro_handle_mm_fault(current->mm, ea, dsisr, &flt); in spufs_handle_class1() 137 * Clear dsisr unde in spufs_handle_class1() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/kvm/ |
H A D | book3s_hv_ras.c | 76 unsigned long dsisr = vcpu->arch.shregs.dsisr; in kvmppc_realmode_mc_power7() local 78 if (dsisr & (DSISR_MC_SLB_PARMULTI | DSISR_MC_SLB_MULTI | in kvmppc_realmode_mc_power7() 82 dsisr &= ~(DSISR_MC_SLB_PARMULTI | DSISR_MC_SLB_MULTI | in kvmppc_realmode_mc_power7() 85 if (dsisr & DSISR_MC_TLB_MULTI) { in kvmppc_realmode_mc_power7() 87 dsisr &= ~DSISR_MC_TLB_MULTI; in kvmppc_realmode_mc_power7() 90 if (dsisr & 0xffffffffUL) in kvmppc_realmode_mc_power7()
|
/kernel/linux/linux-5.10/arch/powerpc/platforms/pasemi/ |
H A D | setup.c | 316 unsigned long srr0, srr1, dsisr; in pas_machine_check_handler() local 330 dsisr = mfspr(SPRN_DSISR); in pas_machine_check_handler() 333 pr_err("DSISR 0x%016lx DAR 0x%016lx\n", dsisr, regs->dar); in pas_machine_check_handler() 345 if (dsisr & 0x8000) in pas_machine_check_handler() 347 if (dsisr & 0x4000) in pas_machine_check_handler() 349 if (dsisr & 0x2000) { in pas_machine_check_handler() 353 if (dsisr & 0x1000) in pas_machine_check_handler() 355 if (dsisr & 0x800) in pas_machine_check_handler() 357 if (dsisr & 0x400) in pas_machine_check_handler()
|
/kernel/linux/linux-6.6/arch/powerpc/platforms/pasemi/ |
H A D | setup.c | 316 unsigned long srr0, srr1, dsisr; in pas_machine_check_handler() local 330 dsisr = mfspr(SPRN_DSISR); in pas_machine_check_handler() 333 pr_err("DSISR 0x%016lx DAR 0x%016lx\n", dsisr, regs->dar); in pas_machine_check_handler() 345 if (dsisr & 0x8000) in pas_machine_check_handler() 347 if (dsisr & 0x4000) in pas_machine_check_handler() 349 if (dsisr & 0x2000) { in pas_machine_check_handler() 353 if (dsisr & 0x1000) in pas_machine_check_handler() 355 if (dsisr & 0x800) in pas_machine_check_handler() 357 if (dsisr & 0x400) in pas_machine_check_handler()
|
/kernel/linux/linux-5.10/arch/powerpc/platforms/cell/ |
H A D | spu_base.c | 172 unsigned long trap, unsigned long dsisr); //XXX 173 static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) in __spu_trap_data_map() argument 177 pr_debug("%s, %llx, %lx\n", __func__, dsisr, ea); in __spu_trap_data_map() 183 if ((dsisr & MFC_DSISR_PTE_NOT_FOUND) && in __spu_trap_data_map() 189 0x300, dsisr); in __spu_trap_data_map() 199 spu->class_1_dsisr = dsisr; in __spu_trap_data_map() 307 unsigned long stat, mask, dar, dsisr; in spu_irq_class_1() local 316 dsisr = spu_mfc_dsisr_get(spu); in spu_irq_class_1() 322 dar, dsisr); in spu_irq_class_1() 328 __spu_trap_data_map(spu, dar, dsisr); in spu_irq_class_1() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/platforms/cell/ |
H A D | spu_base.c | 171 unsigned long trap, unsigned long dsisr); //XXX 172 static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) in __spu_trap_data_map() argument 176 pr_debug("%s, %llx, %lx\n", __func__, dsisr, ea); in __spu_trap_data_map() 182 if ((dsisr & MFC_DSISR_PTE_NOT_FOUND) && in __spu_trap_data_map() 188 0x300, dsisr); in __spu_trap_data_map() 198 spu->class_1_dsisr = dsisr; in __spu_trap_data_map() 306 unsigned long stat, mask, dar, dsisr; in spu_irq_class_1() local 315 dsisr = spu_mfc_dsisr_get(spu); in spu_irq_class_1() 321 dar, dsisr); in spu_irq_class_1() 327 __spu_trap_data_map(spu, dar, dsisr); in spu_irq_class_1() [all...] |
/kernel/linux/linux-5.10/arch/powerpc/mm/ |
H A D | copro_fault.c | 24 unsigned long dsisr, vm_fault_t *flt) in copro_handle_mm_fault() 49 is_write = dsisr & DSISR_ISSTORE; in copro_handle_mm_fault() 63 WARN_ON_ONCE(dsisr & DSISR_PROTFAULT); in copro_handle_mm_fault() 23 copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea, unsigned long dsisr, vm_fault_t *flt) copro_handle_mm_fault() argument
|
/kernel/linux/linux-6.6/arch/powerpc/mm/ |
H A D | copro_fault.c | 24 unsigned long dsisr, vm_fault_t *flt) in copro_handle_mm_fault() 41 is_write = dsisr & DSISR_ISSTORE; in copro_handle_mm_fault() 55 WARN_ON_ONCE(dsisr & DSISR_PROTFAULT); in copro_handle_mm_fault() 23 copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea, unsigned long dsisr, vm_fault_t *flt) copro_handle_mm_fault() argument
|