• Arnd Bergmann's avatar
    iwlegacy: mark il_adjust_beacon_interval as noinline · 31ced24d
    Arnd Bergmann authored
    With the new optimized do_div() code, some versions of gcc
    produce obviously incorrect code that leads to a link error
    in iwlegacy/common.o:
    
    drivers/built-in.o: In function `il_send_rxon_timing':
    :(.text+0xa6b4d4): undefined reference to `____ilog2_NaN'
    :(.text+0xa6b4f0): undefined reference to `__aeabi_uldivmod'
    
    In a few thousand randconfig builds, I have seen this problem
    a couple of times in this file, but never anywhere else in the
    kernel, so we can try to work around this in the only file
    that shows the behavior, by marking the il_adjust_beacon_interval
    function as noinline, which convinces gcc to use the unoptimized
    do_div() all the time.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarNicolas Pitre <nico@linaro.org>
    Acked-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    31ced24d
common.c 143 KB