From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752271AbbLIQnT (ORCPT ); Wed, 9 Dec 2015 11:43:19 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:54673 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751332AbbLIQnR (ORCPT ); Wed, 9 Dec 2015 11:43:17 -0500 From: Arnd Bergmann To: Stanislaw Gruszka , Kalle Valo Cc: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, nico@linaro.org Subject: [PATCH] iwlegacy: mark il_adjust_beacon_interval as noinline Date: Wed, 09 Dec 2015 17:42:41 +0100 Message-ID: <36263581.L8412YxJjp@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:5juzG75L1O/Sfm08DQgNrKh6YE1orK9O4GKwmUlJpD3DbNxw1rb MvluypvNKPXYEd+uGOcE65W3Zeoi0oTZ/7lfRrr6uLwJ5FC5HntXmdXVNl2+IoSi6sdneYP PDsI0SYLvBg3kzXNxaMkkhHzCnTW9pI3PzTqi+bFr/MBuANP9VKnUNIwnZmidNsa6K0uYxy PsgFmJ7BeojdHKRKluyKA== X-UI-Out-Filterresults: notjunk:1;V01:K0:i8s1zoM3pzc=:S+TXTZc1ZM/MvPAy+76wv5 0gdNR4xzDOXbZzVRERr8ZdqyFEJ8kpeEJ8ka3tsmkv/sb7+otY/cmC8liDA0jLsuurc9U4Xbl 5bdcHq6atkVwQzPXQCxirZzxoSe+RMB64XLgH6Pssl0i+KHyQK0DSLeiFRo5q4mSRuZJ8aaVV +bHW6r/5lpsWvZv7cPoSaZs4zMz46ECp1kKINEcatIoGQ1SAdqb5DoQC6siLGH+MC9N4/w0kL NhMxVTSrkCAAFOH8R7E1brRct5/OfZWVwwwNfy6gm1Yc0wsZ2FqRePsUOYldY6I6zYjkgDbA9 2LuQfO1sJshxRp8ZuSz5INZGU5nYHyeveNMq2WAuYoB9XK/7zu+AavNfO2ln05Ejem7dcqdNk tCp1aEik5rdsgoScfnMJUuTZESuM9hla7l+7bXqbZYWY55Jpux6qXmCJiIULzNNDA0SljtRZL RfxvEGCtZKjPaXwe9kSGLVyOlsKLSBZEDvyreMDQv+aUUM5HAif5cAb/5VJuBm5NfEqlMBy+7 mVBtkBFhZazMmNpDOTr3NJrDAsYPs3uo5HP3DvUyCZONusPHFex4jueqpX3YWvIBS9ECwfpa3 jVLgSNPyPPabhZ7r9aFyv2oyTQIO6zbx+YFQrg9cX0MMklSoyIhzQt0ySuFKEzMz65dBPzdq2 /5M7TyrUwMreldUAAu4o4V4ZH747XL/zfsRfNNiYKg7kuBHd8J6gKaFQtfG6rdXqbBt95qF9A q7TU9V0tiCRg6Wfb Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: Arnd Bergmann diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c index 887114582583..6308bb217454 100644 --- a/drivers/net/wireless/intel/iwlegacy/common.c +++ b/drivers/net/wireless/intel/iwlegacy/common.c @@ -3602,7 +3602,7 @@ il_is_ht40_tx_allowed(struct il_priv *il, struct ieee80211_sta_ht_cap *ht_cap) } EXPORT_SYMBOL(il_is_ht40_tx_allowed); -static u16 +static u16 noinline il_adjust_beacon_interval(u16 beacon_val, u16 max_beacon_val) { u16 new_val;