On 20.12.2022 11:23, Rickard Andersson wrote: > From: Rickard x Andersson <rickaran@xxxxxxxx> > > In GCC version 12.1 a checksum field was added. > > This patch fixes a kernel crash occurring during boot when > using gcov-kernel with GCC version 12.2. The crash occurred on > a system running on i.MX6SX. > > Fixes: 977ef30a7d88 ("gcov: support GCC 12.1 and newer compilers") > Signed-off-by: Rickard x Andersson <rickaran@xxxxxxxx> > Reviewed-by: Peter Oberparleiter <oberpar@xxxxxxxxxxxxx> > Tested-by: Peter Oberparleiter <oberpar@xxxxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> Thank you for the fix! Andrew, could you pick this up via your tree? > --- > kernel/gcov/gcc_4_7.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/kernel/gcov/gcc_4_7.c b/kernel/gcov/gcc_4_7.c > index c699feda21ac..04880d8fba25 100644 > --- a/kernel/gcov/gcc_4_7.c > +++ b/kernel/gcov/gcc_4_7.c > @@ -85,6 +85,7 @@ struct gcov_fn_info { > * @version: gcov version magic indicating the gcc version used for compilation > * @next: list head for a singly-linked list > * @stamp: uniquifying time stamp > + * @checksum: unique object checksum > * @filename: name of the associated gcov data file > * @merge: merge functions (null for unused counter type) > * @n_functions: number of instrumented functions > @@ -97,6 +98,10 @@ struct gcov_info { > unsigned int version; > struct gcov_info *next; > unsigned int stamp; > + /* Since GCC 12.1 a checksum field is added. */ > +#if (__GNUC__ >= 12) > + unsigned int checksum; > +#endif > const char *filename; > void (*merge[GCOV_COUNTERS])(gcov_type *, unsigned int); > unsigned int n_functions; -- Peter Oberparleiter Linux on IBM Z Development - IBM Germany R&D