/drivers/misc/cxl/ |
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, dar); in cxl_irq_psl9() 49 if (dsisr & CXL_PSL9_DSISR_An_PE) in cxl_irq_psl9() 50 return cxl_ops->handle_psl_slice_error(ctx, dsisr, in cxl_irq_psl9() [all …]
|
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() argument 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 & CXL_PSL_DSISR_An_DS))) in cxl_is_segment_miss() [all …]
|
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; 190 __entry->dsisr, 191 dsisr_psl9_flags(__entry->dsisr), 197 TP_PROTO(struct cxl_context *ctx, int irq, u64 dsisr, u64 dar), 199 TP_ARGS(ctx, irq, dsisr, dar), 206 __field(u64, dsisr) 215 __entry->dsisr = dsisr; [all …]
|
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() argument 1152 static bool cxl_is_translation_fault(struct cxl_afu *afu, u64 dsisr) in cxl_is_translation_fault() argument [all …]
|
D | cxl.h | 585 u64 dsisr; member 970 int cxl_handle_mm_fault(struct mm_struct *mm, u64 dsisr, u64 dar); 997 u64 dsisr; member 1075 u64 dsisr, u64 errstat);
|
D | guest.c | 55 static irqreturn_t guest_handle_psl_slice_error(struct cxl_context *ctx, u64 dsisr, in guest_handle_psl_slice_error() argument 195 u64 serr, afu_error, dsisr; in guest_slice_irq_err() local 203 dsisr = cxl_p2n_read(afu, CXL_PSL_DSISR_An); in guest_slice_irq_err() 206 dev_crit(&afu->dev, "PSL_DSISR_An: 0x%.16llx\n", dsisr); in guest_slice_irq_err()
|
D | hcalls.c | 413 info->dsisr, info->dar, info->dsr, info->reserved, in cxl_h_collect_int_info()
|
D | file.c | 492 event.fault.dsisr = ctx->fault_dsisr; in afu_read()
|
/drivers/misc/ocxl/ |
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; 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, u64 dar, u64 tfc), 170 TP_ARGS(spa, pe, dsisr, dar, tfc)
|
D | link.c | 43 void (*xsl_err_cb)(void *data, u64 addr, u64 dsisr); 71 u64 dsisr; member 107 static void read_irq(struct spa *spa, u64 *dsisr, u64 *dar, u64 *pe) in read_irq() argument 111 *dsisr = in_be64(spa->reg_dsisr); in read_irq() 131 spa->xsl_fault.dsisr, spa->xsl_fault.dar, reg); in ack_irq() 151 rc = copro_handle_mm_fault(fault->pe_data.mm, fault->dar, fault->dsisr, in xsl_fault_handler_bh() 158 fault->dar, fault->dsisr); in xsl_fault_handler_bh() 171 if (fault->dsisr & SPA_XSL_S) in xsl_fault_handler_bh() 192 u64 dsisr, dar, pe_handle; in xsl_fault_handler() local 198 read_irq(spa, &dsisr, &dar, &pe_handle); in xsl_fault_handler() [all …]
|
D | context.c | 56 static void xsl_fault_error(void *data, u64 addr, u64 dsisr) in xsl_fault_error() argument 62 ctx->xsl_error.dsisr = dsisr; in xsl_fault_error()
|
D | file.c | 371 body.dsisr = ctx->xsl_error.dsisr; in append_xsl_error() 375 ctx->xsl_error.dsisr = 0; in append_xsl_error()
|
D | ocxl_internal.h | 66 u64 dsisr; // the value of the dsisr register member
|
/drivers/scsi/cxlflash/ |
D | ocxl_hw.c | 306 static void ocxlflash_xsl_fault(void *data, u64 addr, u64 dsisr) in ocxlflash_xsl_fault() argument 312 ctx->fault_dsisr = dsisr; in ocxlflash_xsl_fault() 1077 event.fault.dsisr = ctx->fault_dsisr; in afu_read()
|