• Arnd Bergmann's avatar
    ath9k: reduce stack usage in ar9003_aic_cal_post_process · e9a26010
    Arnd Bergmann authored
    In some configurations, this function uses more than the warning limit
    of 1024 bytes:
    
    drivers/net/wireless/ath/ath9k/ar9003_aic.c: In function 'ar9003_aic_cal_post_process':
    drivers/net/wireless/ath/ath9k/ar9003_aic.c:434:1: error: the frame size of 1040 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
    
    It turns out that there are two large arrays on the stack here, but
    almost all the data in them is never used outside of the loop in
    which it gets written, so we can replace the array with a single
    instance.
    
    The .valid flag is used later, so I'm replacing the array of structures
    with an array of bools. An obvious follow-up optimization would be
    to replace it with a bitmask and set_bit()/find_first_bit()/
    find_last_bit()/... operations. However, I have not tested this patch,
    so I sticked to the simpler transformation that does the job of
    reducing the stack usage to a harmless level.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    e9a26010
ar9003_aic.c 17.8 KB