On Mon, Aug 04, 2025 at 10:41:05AM -0700, Dave Hansen wrote: > On 8/4/25 10:12, Breno Leitao wrote: > ... > > +- These errros are divided by are, which includes CPU, Memory, PCI, CXL and > > + others. > > There's a double typo in there I think: > > errros => errors > and > are,=>area, > > > --- a/include/linux/vmcore_info.h > > +++ b/include/linux/vmcore_info.h > > @@ -77,4 +77,20 @@ extern u32 *vmcoreinfo_note; > > Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type, > > void *data, size_t data_len); > > void final_note(Elf_Word *buf); > > + > > +enum hwerr_error_type { > > + HWERR_RECOV_CPU, > > + HWERR_RECOV_MEMORY, > > + HWERR_RECOV_PCI, > > + HWERR_RECOV_CXL, > > + HWERR_RECOV_OTHERS, > > + HWERR_RECOV_MAX, > > +}; > That enum needs to go into an abi header.
Agree. I came up with something like the change below. Is it the right thing to mark the enum as stable ABI? Thanks --breno diff --git a/include/linux/vmcore_info.h b/include/linux/vmcore_info.h index 37e003ae52626..e71518caacdfc 100644 --- a/include/linux/vmcore_info.h +++ b/include/linux/vmcore_info.h @@ -5,6 +5,7 @@ #include <linux/linkage.h> #include <linux/elfcore.h> #include <linux/elf.h> +#include <uapi/linux/vmcore.h> #define CRASH_CORE_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4) #define CRASH_CORE_NOTE_NAME_BYTES ALIGN(sizeof(NN_PRSTATUS), 4) @@ -77,4 +78,11 @@ extern u32 *vmcoreinfo_note; Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type, void *data, size_t data_len); void final_note(Elf_Word *buf); + +#ifdef CONFIG_VMCORE_INFO +void hwerr_log_error_type(enum hwerr_error_type src); +#else +static inline void hwerr_log_error_type(enum hwerr_error_type src) {}; +#endif + #endif /* LINUX_VMCORE_INFO_H */ diff --git a/include/uapi/linux/vmcore.h b/include/uapi/linux/vmcore.h index 3e9da91866ffd..2ba89fafa518a 100644 --- a/include/uapi/linux/vmcore.h +++ b/include/uapi/linux/vmcore.h @@ -15,4 +15,13 @@ struct vmcoredd_header { __u8 dump_name[VMCOREDD_MAX_NAME_BYTES]; /* Device dump's name */ }; +enum hwerr_error_type { + HWERR_RECOV_CPU, + HWERR_RECOV_MEMORY, + HWERR_RECOV_PCI, + HWERR_RECOV_CXL, + HWERR_RECOV_OTHERS, + HWERR_RECOV_MAX, +}; + #endif /* _UAPI_VMCORE_H */