Hi Ganesh, Some comments below ...
Ganesh Goudar <ganes...@linux.ibm.com> writes: > Add support to parse and log control memory access > error for pseries. > > Signed-off-by: Ganesh Goudar <ganes...@linux.ibm.com> > --- > v2: No changes in this patch. > --- > arch/powerpc/platforms/pseries/ras.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/arch/powerpc/platforms/pseries/ras.c > b/arch/powerpc/platforms/pseries/ras.c > index 167f2e1b8d39..608c35cad0c3 100644 > --- a/arch/powerpc/platforms/pseries/ras.c > +++ b/arch/powerpc/platforms/pseries/ras.c > @@ -80,6 +80,7 @@ struct pseries_mc_errorlog { > #define MC_ERROR_TYPE_TLB 0x04 > #define MC_ERROR_TYPE_D_CACHE 0x05 > #define MC_ERROR_TYPE_I_CACHE 0x07 > +#define MC_ERROR_TYPE_CTRL_MEM_ACCESS 0x08 ... > > +#define MC_ERROR_CTRL_MEM_ACCESS_PTABLE_WALK 0 > +#define MC_ERROR_CTRL_MEM_ACCESS_OP_ACCESS 1 Where do the above values come from? > + > static inline u8 rtas_mc_error_sub_type(const struct pseries_mc_errorlog > *mlog) > { > switch (mlog->error_type) { > @@ -112,6 +116,8 @@ static inline u8 rtas_mc_error_sub_type(const struct > pseries_mc_errorlog *mlog) > case MC_ERROR_TYPE_ERAT: > case MC_ERROR_TYPE_TLB: > return (mlog->sub_err_type & 0x03); > + case MC_ERROR_TYPE_CTRL_MEM_ACCESS: > + return (mlog->sub_err_type & 0x70) >> 4; Can you add to the comment above sub_err_type explaining what these bits are. > default: > return 0; > } > @@ -699,6 +705,21 @@ static int mce_handle_err_virtmode(struct pt_regs *regs, > case MC_ERROR_TYPE_I_CACHE: > mce_err.error_type = MCE_ERROR_TYPE_ICACHE; > break; > + case MC_ERROR_TYPE_CTRL_MEM_ACCESS: > + mce_err.error_type = MCE_ERROR_TYPE_RA; > + if (mce_log->sub_err_type & 0x80) This appears many times in the file. Can we add eg. MC_EFFECTIVE_ADDR_PROVIDED? > + eaddr = be64_to_cpu(mce_log->effective_address); > + switch (err_sub_type) { > + case MC_ERROR_CTRL_MEM_ACCESS_PTABLE_WALK: > + mce_err.u.ra_error_type = > + MCE_RA_ERROR_PAGE_TABLE_WALK_LOAD_STORE_FOREIGN; That name is ridiculously long, but I guess that's not your fault :) We can fix it up in a later patch. > + break; > + case MC_ERROR_CTRL_MEM_ACCESS_OP_ACCESS: > + mce_err.u.ra_error_type = > + MCE_RA_ERROR_LOAD_STORE_FOREIGN; > + break; > + } > + break; cheers