diff mbox series

fbcon: Use oops_in_progress instead of panic_cpu

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

Commit Message

Jocelyn Falempe July 22, 2024, 11:47 a.m. UTC
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

Comments

Daniel Vetter July 22, 2024, 2:15 p.m. UTC | #1
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
>
Jocelyn Falempe July 22, 2024, 4:34 p.m. UTC | #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 mbox series

Patch

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)