lose xfs_hex_dump in favor of print_hex_dump
PATCH 1/1 lose xfs_hex_dump in favor of print_hex_dump
No need for xfs to have its own hex dumping routine now that the kernel has one.
fs/xfs/xfs_error.c +0 -31
@@ -230,37 +230,6 @@ xfs_error_report( } } -STATIC void -xfs_hex_dump (void *p,int length) -{ -__uint8_t *uip = (__uint8_t *)p; -int i; -char sbuf[128 ], *s; - - s = sbuf; - *s ='\0' ; -for (i=0 ; i<length; i++, uip++) { -if ((i %16 ) ==0 ) { -if (*s !='\0' ) -cmn_err (CE_ALERT ,"%s\n" , sbuf); - s = sbuf; -sprintf (s,"0x%x: " , i); -while ( *s !='\0' ) - s++; - } -sprintf (s,"%02x " , *uip); - -/* -* the kernel sprintf is a void; user sprintf returns -* the sprintf'ed string's length. Find the new end- -* of-string -*/ -while ( *s !='\0' ) - s++; - } -cmn_err (CE_ALERT ,"%s\n" , sbuf); -} - void xfs_corruption_error( char *tag,
fs/xfs/xfs_error.h +2 -0
@@ -174,6 +174,8 @@ extern void xfs_cmn_err(int panic_tag, i/* PRINTFLIKE3 */ extern void xfs_fs_cmn_err (int level,struct xfs_mount *mp,char *fmt, ...); +extern void xfs_hex_dump (void *p,int length); + #define xfs_fs_repair_cmn_err(level, mp, fmt, args...) \ xfs_fs_cmn_err(level, mp, fmt " Unmount and run xfs_repair.", ## args)
fs/xfs/support/debug.c +6 -0
@@ -81,3 +81,9 @@ assfail(char *expr, char *file, int lineprintk ("Assertion failed: %s, file: %s, line: %d\n" , expr, file, line);BUG (); } + +void +xfs_hex_dump (void *p,int length) +{ +print_hex_dump (KERN_ALERT ,"" ,DUMP_PREFIX_OFFSET ,16 ,1 , p, length,1 ); +}
fs/xfs/support/debug.c assfail(char *expr, char *file, int line · line 89
Quoted 8 lines · Eric Sandeen
fs/xfs/support/debug.c +7
-0+extern void xfs_hex_dump (void *p,int length); + +void +xfs_hex_dump (void *p,int length) +{ +print_hex_dump (KERN_ALERT ,"" ,DUMP_PREFIX_OFFSET ,16 ,1 , p, length,1 ); +}
Is this symbol exported/needed? If not then why not make it a #define or an inline in the header where you have the prototype?
Quoted 5 lines · Chris Wedgwood
Quoted 2 lines · Eric Sandeen
fs/xfs/xfs_error.h +2
-0+extern void xfs_hex_dump (void *p,int length); +
Quoted 8 lines
fs/xfs/support/debug.c assfail(char *expr, char *file, int line · line 89
Quoted 5 lines
fs/xfs/support/debug.c +5
-0+void +xfs_hex_dump (void *p,int length) +{ +print_hex_dump (KERN_ALERT ,"" ,DUMP_PREFIX_OFFSET ,16 ,1 , p, length,1 ); +}Is this symbol exported/needed? If not then why not make it a #define or an inline in the header where you have the prototype?
Yeah, I suppose that might be better.... I just followed the lead of xfs_cmn_err etc.
The only reason I left a wrapper was for cattelan's BSD exploits (er, adventures) ;-) I could imagine it getting called from other places, but for now it only has one caller, xfs_corruption_error (so really, even the length argument is never anything other than 16...)
-Eric
Quoted 9 lines · Eric Sandeen
Quoted 8 lines
fs/xfs/support/debug.c assfail(char *expr, char *file, int line · line 89
Quoted 5 lines
fs/xfs/support/debug.c +5
-0+void +xfs_hex_dump (void *p,int length) +{ +print_hex_dump (KERN_ALERT ,"" ,DUMP_PREFIX_OFFSET ,16 ,1 , p, length,1 ); +}Is this symbol exported/needed? If not then why not make it a #define or an inline in the header where you have the prototype?
Quoted 7 lines
Yeah, I suppose that might be better.... I just followed the lead of
xfs_cmn_erretc.The only reason I left a wrapper was for cattelan's BSD exploits (er, adventures) ;-) I could imagine it getting called from other places, but for now it only has one caller,
xfs_corruption_error(so really, even the length argument is never anything other than 16...)
No point in making anything in an absolute slowpath inline or a macro. I think the patch is fine as-is.