Message ID | 20240722114800.174558-1-jfalempe@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fbcon: Use oops_in_progress instead of panic_cpu | expand |
On Mon, Jul 22, 2024 at 01:47:51PM +0200, Jocelyn Falempe wrote: > Panic_cpu is not exported, so it can't be used if fbcon is used as > a module. Use oops_in_progress in this case, but non-fatal oops won't > be printed. > > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202407210203.2ISiIC9m-lkp@intel.com/ > Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> Yeah it's not great but gets the job done. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Cheers, Sima > --- > drivers/video/fbdev/core/fbcon.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c > index 498d9c07df80..2e093535884b 100644 > --- a/drivers/video/fbdev/core/fbcon.c > +++ b/drivers/video/fbdev/core/fbcon.c > @@ -64,6 +64,8 @@ > #include <linux/console.h> > #include <linux/string.h> > #include <linux/kd.h> > +#include <linux/panic.h> > +#include <linux/printk.h> > #include <linux/slab.h> > #include <linux/fb.h> > #include <linux/fbcon.h> > @@ -272,7 +274,14 @@ static int fbcon_get_rotate(struct fb_info *info) > > static bool fbcon_skip_panic(struct fb_info *info) > { > +/* panic_cpu is not exported, and can't be used if built as module. Use > + * oops_in_progress instead, but non-fatal oops won't be printed. > + */ > +#if defined(MODULE) > + return (info->skip_panic && unlikely(oops_in_progress)); > +#else > return (info->skip_panic && unlikely(atomic_read(&panic_cpu) != PANIC_CPU_INVALID)); > +#endif > } > > static inline int fbcon_is_inactive(struct vc_data *vc, struct fb_info *info) > > base-commit: 7e33fc2ff6754b5ff39b11297f713cd0841d9962 > -- > 2.45.2 >
On 22/07/2024 16:15, Daniel Vetter wrote: > On Mon, Jul 22, 2024 at 01:47:51PM +0200, Jocelyn Falempe wrote: >> Panic_cpu is not exported, so it can't be used if fbcon is used as >> a module. Use oops_in_progress in this case, but non-fatal oops won't >> be printed. >> >> Reported-by: kernel test robot <lkp@intel.com> >> Closes: https://lore.kernel.org/oe-kbuild-all/202407210203.2ISiIC9m-lkp@intel.com/ >> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> > > Yeah it's not great but gets the job done. > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> I pushed it to drm-misc-next. Thanks a lot. > > Cheers, Sima > >> --- >> drivers/video/fbdev/core/fbcon.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c >> index 498d9c07df80..2e093535884b 100644 >> --- a/drivers/video/fbdev/core/fbcon.c >> +++ b/drivers/video/fbdev/core/fbcon.c >> @@ -64,6 +64,8 @@ >> #include <linux/console.h> >> #include <linux/string.h> >> #include <linux/kd.h> >> +#include <linux/panic.h> >> +#include <linux/printk.h> >> #include <linux/slab.h> >> #include <linux/fb.h> >> #include <linux/fbcon.h> >> @@ -272,7 +274,14 @@ static int fbcon_get_rotate(struct fb_info *info) >> >> static bool fbcon_skip_panic(struct fb_info *info) >> { >> +/* panic_cpu is not exported, and can't be used if built as module. Use >> + * oops_in_progress instead, but non-fatal oops won't be printed. >> + */ >> +#if defined(MODULE) >> + return (info->skip_panic && unlikely(oops_in_progress)); >> +#else >> return (info->skip_panic && unlikely(atomic_read(&panic_cpu) != PANIC_CPU_INVALID)); >> +#endif >> } >> >> static inline int fbcon_is_inactive(struct vc_data *vc, struct fb_info *info) >> >> base-commit: 7e33fc2ff6754b5ff39b11297f713cd0841d9962 >> -- >> 2.45.2 >> >
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index 498d9c07df80..2e093535884b 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -64,6 +64,8 @@ #include <linux/console.h> #include <linux/string.h> #include <linux/kd.h> +#include <linux/panic.h> +#include <linux/printk.h> #include <linux/slab.h> #include <linux/fb.h> #include <linux/fbcon.h> @@ -272,7 +274,14 @@ static int fbcon_get_rotate(struct fb_info *info) static bool fbcon_skip_panic(struct fb_info *info) { +/* panic_cpu is not exported, and can't be used if built as module. Use + * oops_in_progress instead, but non-fatal oops won't be printed. + */ +#if defined(MODULE) + return (info->skip_panic && unlikely(oops_in_progress)); +#else return (info->skip_panic && unlikely(atomic_read(&panic_cpu) != PANIC_CPU_INVALID)); +#endif } static inline int fbcon_is_inactive(struct vc_data *vc, struct fb_info *info)
Panic_cpu is not exported, so it can't be used if fbcon is used as a module. Use oops_in_progress in this case, but non-fatal oops won't be printed. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202407210203.2ISiIC9m-lkp@intel.com/ Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> --- drivers/video/fbdev/core/fbcon.c | 9 +++++++++ 1 file changed, 9 insertions(+) base-commit: 7e33fc2ff6754b5ff39b11297f713cd0841d9962