R Randy.Dunlap #
Message details and related content
Antonino A. Daplas a écrit:
Using kmalloc() should be acceptable. I'll CC the author.
---
Reduce stack usage in intelfb_set_par() from 2404 bytes
(on x86-32) to 12 bytes.
Signed-off-by: Randy Dunlap <redacted>
diffstat:=
drivers/video/intelfb/intelfbdrv.c | 25 ++++++++++++++++---------
1 files changed, 16 insertions(+), 9 deletions(-)
diff -Naurp ./drivers/video/intelfb/intelfbdrv.c~intelfb_stack ./drivers/video/intelfb/intelfbdrv.c--- ./drivers/video/intelfb/intelfbdrv.c~intelfb_stack 2004-12-19 15:19:41.277527280 -0800
+++ ./drivers/video/intelfb/intelfbdrv.c 2004-12-19 20:58:17.018065272 -0800@@ -1234,8 +1234,7 @@ intelfb_check_var(struct fb_var_screenin static int intelfb_set_par(struct fb_info *info) { - struct intelfb_hwstate hw; - + struct intelfb_hwstate *hw; struct intelfb_info *dinfo = GET_DINFO(info); if (FIXED_MODE(dinfo)) {
@@ -1243,6 +1242,10 @@ intelfb_set_par(struct fb_info *info) return -EINVAL; } + hw = kmalloc(sizeof(*hw), GFP_ATOMIC); + if (!hw) + return -ENOMEM; + DBG_MSG("intelfb_set_par (%dx%d-%d)\n", info->var.xres, info->var.yres, info->var.bits_per_pixel);
@@ -1251,15 +1254,15 @@ intelfb_set_par(struct fb_info *info) if (dinfo->accel) intelfbhw_2d_stop(dinfo); - hw = dinfo->save_state; - if (intelfbhw_mode_to_hw(dinfo, &hw, &info->var)) - return -EINVAL; - if (intelfbhw_program_mode(dinfo, &hw, 0)) - return -EINVAL; + memcpy(hw, &dinfo->save_state, sizeof(*hw)); + if (intelfbhw_mode_to_hw(dinfo, hw, &info->var)) + goto invalid_mode; + if (intelfbhw_program_mode(dinfo, hw, 0)) + goto invalid_mode; #if REGDUMP > 0 - intelfbhw_read_hw_state(dinfo, &hw, 0); - intelfbhw_print_hw_state(dinfo, &hw); + intelfbhw_read_hw_state(dinfo, hw, 0); + intelfbhw_print_hw_state(dinfo, hw); #endif update_dinfo(dinfo, &info->var);
@@ -1278,7 +1281,11 @@ intelfb_set_par(struct fb_info *info) } else { info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; } + kfree(hw); return 0; +invalid_mode: + kfree(hw); + return -EINVAL; } static int --- -------------------------------------------------------
SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/