sysfs: remove "last sysfs file:" line from the oops messages
Subsystems (6)
PATCH 1/1 sysfs: remove "last sysfs file:" line from the oops messages
---------------
I'm going to queue this up for the .40 kernel merge window, any objections?
---------------
From: Greg Kroah-Hartman <[email protected]>
On some arches (x86, sh, arm, unicore, powerpc) the oops message would print out the last sysfs file accessed.
This was very useful in finding a number of sysfs and driver core bugs in the 2.5 and early 2.6 development days, but it has been a number of years since this file has actually helped in debugging anything that couldn't also be trivially determined from the stack traceback.
So it's time to delete the line. This is good as we need all the space we can get for oops messages at times on consoles.
--- arch/arm/kernel/traps.c | 1 - arch/powerpc/kernel/traps.c | 1 - arch/sh/kernel/traps_32.c | 1 - arch/unicore32/kernel/traps.c | 1 - arch/x86/kernel/dumpstack.c | 1 - fs/sysfs/file.c | 12 ------------ include/linux/sysfs.h | 5 ----- 7 files changed, 22 deletions(-)
arch/arm/kernel/traps.c +0 -1
@@ -234,7 +234,6 @@ static int __die(const char *str, int err, struct thread_info *thread, struct ptprintk (KERN_EMERG "Internal error: %s: %x [#%d]" S_PREEMPT S_SMP "\n" , str, err, ++die_counter); -sysfs_printk_last_file ();/* trap and error numbers are mostly meaningless on ARM */ ret =notify_die (DIE_OOPS , str, regs, err, tsk->thread.trap_no,SIGSEGV );
arch/powerpc/kernel/traps.c +0 -1
@@ -143,7 +143,6 @@ int die(const char *str, struct pt_regs *regs, long err)#endif printk ("%s\n" , ppc_md.name ? ppc_md.name :"" ); -sysfs_printk_last_file ();if (notify_die (DIE_OOPS , str, regs, err,255 ,SIGSEGV ) ==NOTIFY_STOP )return 1 ;
arch/sh/kernel/traps_32.c +0 -1
@@ -87,7 +87,6 @@ void die(const char * str, struct pt_regs * regs, long err)bust_spinlocks (1 );printk ("%s: %04lx [#%d]\n" , str, err &0xffff , ++die_counter); -sysfs_printk_last_file ();print_modules ();show_regs (regs);
arch/unicore32/kernel/traps.c +0 -1
@@ -192,7 +192,6 @@ static int __die(const char *str, int err, struct thread_info *thread,printk (KERN_EMERG "Internal error: %s: %x [#%d]\n" , str, err, ++die_counter); -sysfs_printk_last_file ();/* trap and error numbers are mostly meaningless on UniCore */ ret = notify_die(DIE_OOPS, str, regs, err, tsk->thread.trap_no, \
arch/x86/kernel/dumpstack.c +0 -1
@@ -279,7 +279,6 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)printk ("DEBUG_PAGEALLOC" );#endif printk ("\n" ); -sysfs_printk_last_file ();if (notify_die (DIE_OOPS , str, regs, err, current->thread.trap_no,SIGSEGV ) ==NOTIFY_STOP )return 1 ;
fs/sysfs/file.c +0 -12
@@ -24,13 +24,6 @@#include "sysfs.h" -/* used in crash dumps to help with debugging */ -static char last_sysfs_file[PATH_MAX ]; -void sysfs_printk_last_file (void ) -{ -printk (KERN_EMERG "last sysfs file: %s\n" , last_sysfs_file); -} -/* * There's one sysfs_buffer for each open file and one * sysfs_open_dirent for each sysfs_dirent with one or more open
@@ -337,11 +330,6 @@ static int sysfs_open_file(struct inode *inode, struct file *file)struct sysfs_buffer *buffer;const struct sysfs_ops *ops;int error = -EACCES ; -char *p; - - p =d_path (&file->f_path, last_sysfs_file,sizeof (last_sysfs_file)); -if (!IS_ERR (p)) -memmove (last_sysfs_file, p,strlen (p) +1 );/* need attr_sd for attr and ops, its parent for kobj */ if (!sysfs_get_active (attr_sd))
include/linux/sysfs.h +0 -5
@@ -176,7 +176,6 @@ struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd, const unsigned char *name);struct sysfs_dirent *sysfs_get (struct sysfs_dirent *sd);void sysfs_put (struct sysfs_dirent *sd); -void sysfs_printk_last_file (void );/* Called to clear a ns tag when it is no longer valid */ void sysfs_exit_ns (enum kobj_ns_type type,const void *tag);
@@ -348,10 +347,6 @@ static inline int __must_check sysfs_init(void)return 0 ; } -static inline void sysfs_printk_last_file (void ) -{ -} -#endif /* CONFIG_SYSFS */ #endif /* _SYSFS_H_ */
Quoted 8 lines · Greg KH
---------------
I'm going to queue this up for the .40 kernel merge window, any objections?
---------------
arch/x86/kernel/dumpstack.c int __kprobes __die(const char *str, struct pt_regs *regs, long err) · line 284
Quoted 7 lines
arch/x86/kernel/dumpstack.c +0
-1@@ -279,7 +279,6 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)printk ("DEBUG_PAGEALLOC" );#endif printk ("\n" ); -sysfs_printk_last_file ();if (notify_die (DIE_OOPS , str, regs, err, current->thread.trap_no,SIGSEGV ) ==NOTIFY_STOP )return 1 ;
Good idea - that line has become quite a bit less useful over the past few years and oops output is valuable screen real estate.
Thanks,
Ingo
Quoted 15 lines · ext Greg KH
---------------
I'm going to queue this up for the .40 kernel merge window, any objections?
---------------From: Greg Kroah-Hartman <[email protected]>
On some arches (x86, sh, arm, unicore, powerpc) the oops message would print out the last sysfs file accessed.
This was very useful in finding a number of sysfs and driver core bugs in the 2.5 and early 2.6 development days, but it has been a number of years since this file has actually helped in debugging anything that couldn't also be trivially determined from the stack traceback.
Quoted 7 lines
So it's time to delete the line. This is good as we need all the space we can get for oops messages at times on consoles.
Cc Phil Carmody <[email protected]>Cc Andrew Morton <[email protected]>Cc Thomas Gleixner <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>
Worksforme.
Cheers,
Phil