[PATCH] idle: prevent rcu_eqs_exit_common warning

From: =3D?UTF-8?q?Bj=3DC3=3DB8rn=3D20Mork?=3D
Date: Mon May 13 2013 - 10:03:59 EST


Avoid the following warning when running powertop:

[ 49.289034] ------------[ cut here ]------------
[ 49.289055] WARNING: at kernel/rcutree.c:502 rcu_eqs_exit_common.isra.48=
+0x3d/0x125()
[ 49.289059] Modules linked in: msr cpufreq_stats xt_multiport iptable_fi=
lter ip_tables rfcomm bnep xt_hl binfmt_misc ip6table_filter ip6_tables x_t=
ables nfsd nfs_acl nfs lockd fscache sunrpc 8021q garp stp llc tun cdc_mbim=
cdc_ncm cdc_wdm usbnet mii loop fuse btusb bluetooth iTCO_wdt iTCO_vendor_=
support snd_hda_codec_conexant arc4 iwldvm mac80211 thinkpad_acpi nvram snd=
_seq_midi snd_seq_midi_event snd_rawmidi snd_hda_intel snd_seq snd_hda_code=
c snd_hwdep snd_pcm_oss snd_mixer_oss iwlwifi snd_pcm coretemp kvm_intel kv=
m snd_seq_device evdev psmouse serio_raw lpc_ich mfd_core cfg80211 snd_page=
_alloc i2c_i801 snd_timer snd soundcore rfkill battery ac acpi_cpufreq mper=
f i915 wmi video i2c_algo_bit drm_kms_helper button drm i2c_core processor =
ext4 crc16 jbd2 mbcache nbd sg sr_mod cdrom sd_mod crc_t10dif ahci libahci =
libata microcode scsi_mod ehci_pci uhci_hcd ehci_hcd usbcore usb_common the=
rmal thermal_sys e1000e ptp pps_core
[ 49.289244] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-bisect-rcu-=
warn+ #107
[ 49.289247] Hardware name: LENOVO 2776LEG/2776LEG, BIOS 6EET55WW (3.15 )=
12/19/2011
[ 49.289251] ffffffff8157d8c8 ffffffff81801e28 ffffffff8137e4e3 ffffffff=
81801e68
[ 49.289260] ffffffff8103094f ffffffff81801e68 0000000000000000 ffff8802=
3afcd9b0
[ 49.289268] 0000000000000000 0140000000000000 ffff88023bee7700 ffffffff=
81801e78
[ 49.289276] Call Trace:
[ 49.289285] [<ffffffff8137e4e3>] dump_stack+0x19/0x1b
[ 49.289293] [<ffffffff8103094f>] warn_slowpath_common+0x62/0x7b
[ 49.289300] [<ffffffff8103097d>] warn_slowpath_null+0x15/0x17
[ 49.289306] [<ffffffff810a9006>] rcu_eqs_exit_common.isra.48+0x3d/0x125
[ 49.289314] [<ffffffff81079b49>] ? trace_hardirqs_off_caller+0x37/0xa6
[ 49.289320] [<ffffffff810a9692>] rcu_idle_exit+0x85/0xa8
[ 49.289327] [<ffffffff8107076e>] trace_cpu_idle_rcuidle+0xae/0xff
[ 49.289334] [<ffffffff810708b1>] cpu_startup_entry+0x72/0x115
[ 49.289341] [<ffffffff813689e5>] rest_init+0x149/0x150
[ 49.289347] [<ffffffff8136889c>] ? csum_partial_copy_generic+0x16c/0x16c
[ 49.289355] [<ffffffff81a82d34>] start_kernel+0x3f0/0x3fd
[ 49.289362] [<ffffffff81a8274c>] ? repair_env_string+0x5a/0x5a
[ 49.289368] [<ffffffff81a82481>] x86_64_start_reservations+0x2a/0x2c
[ 49.289375] [<ffffffff81a82550>] x86_64_start_kernel+0xcd/0xd1
[ 49.289379] ---[ end trace 07a1cc95e29e9036 ]---

Signed-off-by: Bj=C3=B8rn Mork <bjorn@xxxxxxx>
---
kernel/cpu/idle.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/cpu/idle.c b/kernel/cpu/idle.c
index 8b86c0c..5b9ef3c 100644
--- a/kernel/cpu/idle.c
+++ b/kernel/cpu/idle.c
@@ -85,7 +85,7 @@ static void cpu_idle_loop(void)
* know that the IPI is going to arrive right
* away
*/
- if (cpu_idle_force_poll || tick_check_broadcast_expired()) {
+ if (cpu_idle_force_poll) {
cpu_idle_poll();
} else {
current_clr_polling();
--=20
1.7.10.4


--=-=-=--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/