mirror of https://gitee.com/openkylin/linux.git
MIPS: math-emu: Reuse name array in debugfs_fpuemu()
The FPU_STAT_CREATE_EX() macro used 114 times in debugfs_fpuemu() declares a 32 byte char array to hold the name of a debugfs file. Since each use of the macro declares a new char array out of the scope of all the other uses, we end up with an unnecessarily large stack frame of 3648 bytes (ie. 114*32) plus the size of 2 pointers (fpuemu_debugfs_base_dir & fpuemu_debugfs_inst_dir). This is enough to trigger the frame size warnings from GCC in common configurations. Avoid the unnecessary stack bloat by using a single name char array which each usage of FPU_STAT_CREATE_EX() will reinitialize via the strcpy() in adjust_instruction_counter_name(). Signed-off-by: Paul Burton <paulburton@kernel.org> Reported-by: kbuild test robot <lkp@intel.com> URL: https://lore.kernel.org/linux-mips/201911090929.xvXYuHUz%25lkp@intel.com/
This commit is contained in:
parent
dcf78ee660
commit
7d73d57211
|
@ -189,6 +189,7 @@ static int __init debugfs_fpuemu(void)
|
|||
{
|
||||
struct dentry *fpuemu_debugfs_base_dir;
|
||||
struct dentry *fpuemu_debugfs_inst_dir;
|
||||
char name[32];
|
||||
|
||||
fpuemu_debugfs_base_dir = debugfs_create_dir("fpuemustats",
|
||||
mips_debugfs_dir);
|
||||
|
@ -225,8 +226,6 @@ do { \
|
|||
|
||||
#define FPU_STAT_CREATE_EX(m) \
|
||||
do { \
|
||||
char name[32]; \
|
||||
\
|
||||
adjust_instruction_counter_name(name, #m); \
|
||||
\
|
||||
debugfs_create_file(name, 0444, fpuemu_debugfs_inst_dir, \
|
||||
|
|
Loading…
Reference in New Issue