Em Thu, 10 Oct 2019 20:25:31 +0000 Robert Richter <rrich...@marvell.com> escreveu:
> Each struct mci has its own error descriptor. Create a function > error_desc_to_mci() to determine the corresponding mci from an error > descriptor. This eases the parameter list of edac_raw_mc_handle_ > error() as the mci pointer do not need to be passed any longer. > > While at it, reorder parameters of edac_raw_mc_handle_error(). > > Signed-off-by: Robert Richter <rrich...@marvell.com> Reviewed-by: Mauro Carvalho Chehab <mchehab+sams...@kernel.org> > --- > drivers/edac/edac_mc.c | 13 +++++++++---- > drivers/edac/edac_mc.h | 8 +++----- > drivers/edac/ghes_edac.c | 2 +- > 3 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c > index ca206854b8ee..9e8c5716a8c0 100644 > --- a/drivers/edac/edac_mc.c > +++ b/drivers/edac/edac_mc.c > @@ -1040,10 +1040,15 @@ static void edac_ue_error(struct mem_ctl_info *mci, > edac_inc_ue_error(mci, dimm, error_count); > } > > -void edac_raw_mc_handle_error(struct mem_ctl_info *mci, > - struct dimm_info *dimm, > - struct edac_raw_error_desc *e) > +static struct mem_ctl_info *error_desc_to_mci(struct edac_raw_error_desc *e) > +{ > + return container_of(e, struct mem_ctl_info, error_desc); > +} > + > +void edac_raw_mc_handle_error(struct edac_raw_error_desc *e, > + struct dimm_info *dimm) > { > + struct mem_ctl_info *mci = error_desc_to_mci(e); > char detail[80]; > > /* Memory type dependent details about the error */ > @@ -1243,6 +1248,6 @@ void edac_mc_handle_error(const enum > hw_event_mc_err_type type, > > dimm = edac_get_dimm(mci, top_layer, mid_layer, low_layer); > > - edac_raw_mc_handle_error(mci, dimm, e); > + edac_raw_mc_handle_error(e, dimm); > } > EXPORT_SYMBOL_GPL(edac_mc_handle_error); > diff --git a/drivers/edac/edac_mc.h b/drivers/edac/edac_mc.h > index a8f1b5b5e873..3b01d5d9d7bc 100644 > --- a/drivers/edac/edac_mc.h > +++ b/drivers/edac/edac_mc.h > @@ -212,17 +212,15 @@ extern int edac_mc_find_csrow_by_page(struct > mem_ctl_info *mci, > * edac_raw_mc_handle_error() - Reports a memory event to userspace without > * doing anything to discover the error location. > * > - * @mci: a struct mem_ctl_info pointer > - * @dimm: a struct dimm_info pointer > * @e: error description > + * @dimm: a struct dimm_info pointer > * > * This raw function is used internally by edac_mc_handle_error(). It should > * only be called directly when the hardware error come directly from BIOS, > * like in the case of APEI GHES driver. > */ > -void edac_raw_mc_handle_error(struct mem_ctl_info *mci, > - struct dimm_info *dimm, > - struct edac_raw_error_desc *e); > +void edac_raw_mc_handle_error(struct edac_raw_error_desc *e, > + struct dimm_info *dimm); > > /** > * edac_mc_handle_error() - Reports a memory event to userspace. > diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c > index 1db1c012bed9..8078d4ec9631 100644 > --- a/drivers/edac/ghes_edac.c > +++ b/drivers/edac/ghes_edac.c > @@ -439,7 +439,7 @@ void ghes_edac_report_mem_error(int sev, struct > cper_sec_mem_err *mem_err) > > dimm = edac_get_dimm_by_index(mci, e->top_layer); > > - edac_raw_mc_handle_error(mci, dimm, e); > + edac_raw_mc_handle_error(e, dimm); > > spin_unlock_irqrestore(&ghes_lock, flags); > } Thanks, Mauro