Netdev List
 help / color / mirror / Atom feed
* 2.6.24-rc8-mm1 : net tcp_input.c warnings
From: Dave Young @ 2008-01-21  7:55 UTC (permalink / raw)
  To: linux-kernel; +Cc: davem, netdev, akpm

Please see the kernel messages following,(trigged while using some qemu session)
BTW, seems there's some e100 error message as well.

PCI: Setting latency timer of device 0000:00:1b.0 to 64
e100: Intel(R) PRO/100 Network Driver, 3.5.23-k4-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
ACPI: PCI Interrupt 0000:03:08.0[A] -> GSI 20 (level, low) -> IRQ 20
modprobe:2331 conflicting cache attribute efaff000-efb00000 uncached<->default
e100: 0000:03:08.0: e100_probe: Cannot map device registers, aborting.
ACPI: PCI interrupt for device 0000:03:08.0 disabled
e100: probe of 0000:03:08.0 failed with error -12
eth0:  setting full-duplex.
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2169 tcp_mark_head_lost+0x121/0x150()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c03e8df8>] ? ip_finish_output+0x128/0x2e0
 [<c03e9527>] ? ip_output+0xe7/0x100
 [<c03e8a88>] ? ip_local_out+0x18/0x20
 [<c03e991c>] ? ip_queue_xmit+0x3dc/0x470
 [<c043641e>] ? _spin_unlock_irqrestore+0x5e/0x70
 [<c0186be1>] ? check_pad_bytes+0x61/0x80
 [<c03f6031>] tcp_mark_head_lost+0x121/0x150
 [<c03f60ac>] tcp_update_scoreboard+0x4c/0x170
 [<c03f6e0a>] tcp_fastretrans_alert+0x48a/0x6b0
 [<c03f7d93>] tcp_ack+0x1b3/0x3a0
 [<c03fa14b>] tcp_rcv_established+0x3eb/0x710
 [<c04015c5>] tcp_v4_do_rcv+0xe5/0x100
 [<c0401bbb>] tcp_v4_rcv+0x5db/0x660
 [<c0401967>] ? tcp_v4_rcv+0x387/0x660
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c03e5f44>] ip_local_deliver_finish+0x84/0x1d0
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c03e6147>] ip_local_deliver+0xb7/0xc0
 [<c03e6202>] ip_rcv_finish+0xb2/0x3c0
 [<c03c01c8>] ? sock_def_readable+0x48/0xa0
 [<c03be051>] ? sock_queue_rcv_skb+0xb1/0x1a0
 [<c03be097>] ? sock_queue_rcv_skb+0xf7/0x1a0
 [<c03e669f>] ip_rcv+0x18f/0x290
 [<c042f4d0>] ? packet_rcv_spkt+0xd0/0x130
 [<c03c8d96>] netif_receive_skb+0x2b6/0x330
 [<c03c8c07>] ? netif_receive_skb+0x127/0x330
 [<c03c8e93>] ? process_backlog+0x83/0x100
 [<c03c8e9e>] process_backlog+0x8e/0x100
 [<c03c90ac>] net_rx_action+0x13c/0x230
 [<c03c8fc9>] ? net_rx_action+0x59/0x230
 [<c0136f2e>] ? __do_softirq+0x6e/0x120
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c01078b1>] do_IRQ+0x41/0x80
 [<c0151d2c>] ? tick_nohz_stop_sched_tick+0x25c/0x350
 [<c01059ca>] common_interrupt+0x2e/0x34
 [<c0103390>] ? mwait_idle_with_hints+0x40/0x50
 [<c01033a0>] ? mwait_idle+0x0/0x20
 [<c01033b2>] mwait_idle+0x12/0x20
 [<c0103141>] cpu_idle+0x61/0x110
 [<c04333bd>] rest_init+0x5d/0x60
 [<c05a47fa>] start_kernel+0x1fa/0x260
 [<c05a4190>] ? unknown_bootoption+0x0/0x130
 =======================
---[ end trace 97302d8bf57718dd ]---
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2528 tcp_fastretrans_alert+0x675/0x6b0()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c043641e>] ? _spin_unlock_irqrestore+0x5e/0x70
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c03f6ff5>] tcp_fastretrans_alert+0x675/0x6b0
 [<c03f7d93>] tcp_ack+0x1b3/0x3a0
 [<c03fa14b>] tcp_rcv_established+0x3eb/0x710
 [<c04015c5>] tcp_v4_do_rcv+0xe5/0x100
 [<c0401bbb>] tcp_v4_rcv+0x5db/0x660
 [<c0401967>] ? tcp_v4_rcv+0x387/0x660
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c03e5f44>] ip_local_deliver_finish+0x84/0x1d0
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c03e6147>] ip_local_deliver+0xb7/0xc0
 [<c03e6202>] ip_rcv_finish+0xb2/0x3c0
 [<c03c01c8>] ? sock_def_readable+0x48/0xa0
 [<c03be051>] ? sock_queue_rcv_skb+0xb1/0x1a0
 [<c03be097>] ? sock_queue_rcv_skb+0xf7/0x1a0
 [<c03e669f>] ip_rcv+0x18f/0x290
 [<c042f4d0>] ? packet_rcv_spkt+0xd0/0x130
 [<c03c8d96>] netif_receive_skb+0x2b6/0x330
 [<c03c8c07>] ? netif_receive_skb+0x127/0x330
 [<c03c8e93>] ? process_backlog+0x83/0x100
 [<c03c8e9e>] process_backlog+0x8e/0x100
 [<c03c90ac>] net_rx_action+0x13c/0x230
 [<c03c8fc9>] ? net_rx_action+0x59/0x230
 [<c0136f2e>] ? __do_softirq+0x6e/0x120
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c01078b1>] do_IRQ+0x41/0x80
 [<c0151d2c>] ? tick_nohz_stop_sched_tick+0x25c/0x350
 [<c01059ca>] common_interrupt+0x2e/0x34
 [<c0103390>] ? mwait_idle_with_hints+0x40/0x50
 [<c01033a0>] ? mwait_idle+0x0/0x20
 [<c01033b2>] mwait_idle+0x12/0x20
 [<c0103141>] cpu_idle+0x61/0x110
 [<c04333bd>] rest_init+0x5d/0x60
 [<c05a47fa>] start_kernel+0x1fa/0x260
 [<c05a4190>] ? unknown_bootoption+0x0/0x130
 =======================
---[ end trace 97302d8bf57718dd ]---
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2169 tcp_mark_head_lost+0x121/0x150()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c0153241>] ? put_lock_stats+0x21/0x30
 [<c01532b0>] ? lock_release_holdtime+0x60/0x80
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c043641e>] ? _spin_unlock_irqrestore+0x5e/0x70
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c03f6031>] tcp_mark_head_lost+0x121/0x150
 [<c03f60ac>] tcp_update_scoreboard+0x4c/0x170
 [<c03f6e0a>] tcp_fastretrans_alert+0x48a/0x6b0
 [<c03f7d93>] tcp_ack+0x1b3/0x3a0
 [<c03fa14b>] tcp_rcv_established+0x3eb/0x710
 [<c04015c5>] tcp_v4_do_rcv+0xe5/0x100
 [<c0401bbb>] tcp_v4_rcv+0x5db/0x660
 [<c0401967>] ? tcp_v4_rcv+0x387/0x660
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c03e5f44>] ip_local_deliver_finish+0x84/0x1d0
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c03e6147>] ip_local_deliver+0xb7/0xc0
 [<c03e6202>] ip_rcv_finish+0xb2/0x3c0
 [<c03c01c8>] ? sock_def_readable+0x48/0xa0
 [<c03be051>] ? sock_queue_rcv_skb+0xb1/0x1a0
 [<c03be097>] ? sock_queue_rcv_skb+0xf7/0x1a0
 [<c03e669f>] ip_rcv+0x18f/0x290
 [<c042f4d0>] ? packet_rcv_spkt+0xd0/0x130
 [<c03c8d96>] netif_receive_skb+0x2b6/0x330
 [<c03c8c07>] ? netif_receive_skb+0x127/0x330
 [<c03c8e93>] ? process_backlog+0x83/0x100
 [<c03c8e9e>] process_backlog+0x8e/0x100
 [<c03c90ac>] net_rx_action+0x13c/0x230
 [<c03c8fc9>] ? net_rx_action+0x59/0x230
 [<c0136f2e>] ? __do_softirq+0x6e/0x120
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c01078b1>] do_IRQ+0x41/0x80
 [<c0151d2c>] ? tick_nohz_stop_sched_tick+0x25c/0x350
 [<c01059ca>] common_interrupt+0x2e/0x34
 [<c0103390>] ? mwait_idle_with_hints+0x40/0x50
 [<c01033a0>] ? mwait_idle+0x0/0x20
 [<c01033b2>] mwait_idle+0x12/0x20
 [<c0103141>] cpu_idle+0x61/0x110
 [<c04333bd>] rest_init+0x5d/0x60
 [<c05a47fa>] start_kernel+0x1fa/0x260
 [<c05a4190>] ? unknown_bootoption+0x0/0x130
 =======================
---[ end trace 97302d8bf57718dd ]---
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2528 tcp_fastretrans_alert+0x675/0x6b0()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c0186ae4>] ? check_bytes_and_report+0x24/0xc0
 [<c043641e>] ? _spin_unlock_irqrestore+0x5e/0x70
 [<c0186be1>] ? check_pad_bytes+0x61/0x80
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c03f6ff5>] tcp_fastretrans_alert+0x675/0x6b0
 [<c03f7d93>] tcp_ack+0x1b3/0x3a0
 [<c03fa14b>] tcp_rcv_established+0x3eb/0x710
 [<c04015c5>] tcp_v4_do_rcv+0xe5/0x100
 [<c0401bbb>] tcp_v4_rcv+0x5db/0x660
 [<c0401967>] ? tcp_v4_rcv+0x387/0x660
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c03e5f44>] ip_local_deliver_finish+0x84/0x1d0
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c03e6147>] ip_local_deliver+0xb7/0xc0
 [<c03e6202>] ip_rcv_finish+0xb2/0x3c0
 [<c03c01c8>] ? sock_def_readable+0x48/0xa0
 [<c03be051>] ? sock_queue_rcv_skb+0xb1/0x1a0
 [<c03be097>] ? sock_queue_rcv_skb+0xf7/0x1a0
 [<c03e669f>] ip_rcv+0x18f/0x290
 [<c042f4d0>] ? packet_rcv_spkt+0xd0/0x130
 [<c03c8d96>] netif_receive_skb+0x2b6/0x330
 [<c03c8c07>] ? netif_receive_skb+0x127/0x330
 [<c03c8e93>] ? process_backlog+0x83/0x100
 [<c03c8e9e>] process_backlog+0x8e/0x100
 [<c03c90ac>] net_rx_action+0x13c/0x230
 [<c03c8fc9>] ? net_rx_action+0x59/0x230
 [<c0136f2e>] ? __do_softirq+0x6e/0x120
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c01078b1>] do_IRQ+0x41/0x80
 [<c0151d2c>] ? tick_nohz_stop_sched_tick+0x25c/0x350
 [<c01059ca>] common_interrupt+0x2e/0x34
 [<c0103390>] ? mwait_idle_with_hints+0x40/0x50
 [<c01033a0>] ? mwait_idle+0x0/0x20
 [<c01033b2>] mwait_idle+0x12/0x20
 [<c0103141>] cpu_idle+0x61/0x110
 [<c04333bd>] rest_init+0x5d/0x60
 [<c05a47fa>] start_kernel+0x1fa/0x260
 [<c05a4190>] ? unknown_bootoption+0x0/0x130
 =======================
---[ end trace 97302d8bf57718dd ]---
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2169 tcp_mark_head_lost+0x121/0x150()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c010af95>] ? native_sched_clock+0x85/0xe0
 [<c0153241>] ? put_lock_stats+0x21/0x30
 [<c01532b0>] ? lock_release_holdtime+0x60/0x80
 [<c0187918>] ? add_partial+0x48/0x90
 [<c03f6031>] tcp_mark_head_lost+0x121/0x150
 [<c03f60ac>] tcp_update_scoreboard+0x4c/0x170
 [<c03f6e0a>] tcp_fastretrans_alert+0x48a/0x6b0
 [<c03f7d93>] tcp_ack+0x1b3/0x3a0
 [<c03fa14b>] tcp_rcv_established+0x3eb/0x710
 [<c04015c5>] tcp_v4_do_rcv+0xe5/0x100
 [<c0401bbb>] tcp_v4_rcv+0x5db/0x660
 [<c0401967>] ? tcp_v4_rcv+0x387/0x660
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c03e5f44>] ip_local_deliver_finish+0x84/0x1d0
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c03e6147>] ip_local_deliver+0xb7/0xc0
 [<c03e6202>] ip_rcv_finish+0xb2/0x3c0
 [<c03c01c8>] ? sock_def_readable+0x48/0xa0
 [<c03be051>] ? sock_queue_rcv_skb+0xb1/0x1a0
 [<c03be097>] ? sock_queue_rcv_skb+0xf7/0x1a0
 [<c03e669f>] ip_rcv+0x18f/0x290
 [<c042f4d0>] ? packet_rcv_spkt+0xd0/0x130
 [<c03c8d96>] netif_receive_skb+0x2b6/0x330
 [<c03c8c07>] ? netif_receive_skb+0x127/0x330
 [<c03c8e93>] ? process_backlog+0x83/0x100
 [<c03c8e9e>] process_backlog+0x8e/0x100
 [<c03c90ac>] net_rx_action+0x13c/0x230
 [<c03c8fc9>] ? net_rx_action+0x59/0x230
 [<c0136f2e>] ? __do_softirq+0x6e/0x120
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c01078b1>] do_IRQ+0x41/0x80
 [<c0151d2c>] ? tick_nohz_stop_sched_tick+0x25c/0x350
 [<c01059ca>] common_interrupt+0x2e/0x34
 [<c0103390>] ? mwait_idle_with_hints+0x40/0x50
 [<c01033a0>] ? mwait_idle+0x0/0x20
 [<c01033b2>] mwait_idle+0x12/0x20
 [<c0103141>] cpu_idle+0x61/0x110
 [<c04333bd>] rest_init+0x5d/0x60
 [<c05a47fa>] start_kernel+0x1fa/0x260
 [<c05a4190>] ? unknown_bootoption+0x0/0x130
 =======================
---[ end trace 97302d8bf57718dd ]---
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2528 tcp_fastretrans_alert+0x675/0x6b0()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c0186ae4>] ? check_bytes_and_report+0x24/0xc0
 [<c0186be1>] ? check_pad_bytes+0x61/0x80
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c03f6ff5>] tcp_fastretrans_alert+0x675/0x6b0
 [<c03f7d93>] tcp_ack+0x1b3/0x3a0
 [<c03fa14b>] tcp_rcv_established+0x3eb/0x710
 [<c04015c5>] tcp_v4_do_rcv+0xe5/0x100
 [<c0401bbb>] tcp_v4_rcv+0x5db/0x660
 [<c0401967>] ? tcp_v4_rcv+0x387/0x660
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c03e5f44>] ip_local_deliver_finish+0x84/0x1d0
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c03e6147>] ip_local_deliver+0xb7/0xc0
 [<c03e6202>] ip_rcv_finish+0xb2/0x3c0
 [<c03c01c8>] ? sock_def_readable+0x48/0xa0
 [<c03be051>] ? sock_queue_rcv_skb+0xb1/0x1a0
 [<c03be097>] ? sock_queue_rcv_skb+0xf7/0x1a0
 [<c03e669f>] ip_rcv+0x18f/0x290
 [<c042f4d0>] ? packet_rcv_spkt+0xd0/0x130
 [<c03c8d96>] netif_receive_skb+0x2b6/0x330
 [<c03c8c07>] ? netif_receive_skb+0x127/0x330
 [<c03c8e93>] ? process_backlog+0x83/0x100
 [<c03c8e9e>] process_backlog+0x8e/0x100
 [<c03c90ac>] net_rx_action+0x13c/0x230
 [<c03c8fc9>] ? net_rx_action+0x59/0x230
 [<c0136f2e>] ? __do_softirq+0x6e/0x120
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c01078b1>] do_IRQ+0x41/0x80
 [<c0151d2c>] ? tick_nohz_stop_sched_tick+0x25c/0x350
 [<c01059ca>] common_interrupt+0x2e/0x34
 [<c0103390>] ? mwait_idle_with_hints+0x40/0x50
 [<c01033a0>] ? mwait_idle+0x0/0x20
 [<c01033b2>] mwait_idle+0x12/0x20
 [<c0103141>] cpu_idle+0x61/0x110
 [<c04333bd>] rest_init+0x5d/0x60
 [<c05a47fa>] start_kernel+0x1fa/0x260
 [<c05a4190>] ? unknown_bootoption+0x0/0x130
 =======================
---[ end trace 97302d8bf57718dd ]---
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:2169 tcp_mark_head_lost+0x121/0x150()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 2754, comm: X Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c015322d>] ? put_lock_stats+0xd/0x30
 [<c01532b0>] ? lock_release_holdtime+0x60/0x80
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c04363f9>] ? _spin_unlock_irqrestore+0x39/0x70
 [<c013dbb4>] ? group_send_sig_info+0x74/0x80
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c03f6031>] tcp_mark_head_lost+0x121/0x150
 [<c03f60ac>] tcp_update_scoreboard+0x4c/0x170
 [<c03f5ed1>] ? tcp_time_to_recover+0xe1/0xf0
 [<c03f6e0a>] tcp_fastretrans_alert+0x48a/0x6b0
 [<c03f7d93>] tcp_ack+0x1b3/0x3a0
 [<c03fa14b>] tcp_rcv_established+0x3eb/0x710
 [<c04015c5>] tcp_v4_do_rcv+0xe5/0x100
 [<c0401bbb>] tcp_v4_rcv+0x5db/0x660
 [<c0401967>] ? tcp_v4_rcv+0x387/0x660
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c03e5f44>] ip_local_deliver_finish+0x84/0x1d0
 [<c03e5eed>] ? ip_local_deliver_finish+0x2d/0x1d0
 [<c0156b87>] ? __lock_release+0x47/0x70
 [<c03e6147>] ip_local_deliver+0xb7/0xc0
 [<c03e6202>] ip_rcv_finish+0xb2/0x3c0
 [<c03c01c8>] ? sock_def_readable+0x48/0xa0
 [<c03be051>] ? sock_queue_rcv_skb+0xb1/0x1a0
 [<c03be097>] ? sock_queue_rcv_skb+0xf7/0x1a0
 [<c03e669f>] ip_rcv+0x18f/0x290
 [<c042f4d0>] ? packet_rcv_spkt+0xd0/0x130
 [<c03c8d96>] netif_receive_skb+0x2b6/0x330
 [<c03c8c07>] ? netif_receive_skb+0x127/0x330
 [<c03c8e93>] ? process_backlog+0x83/0x100
 [<c03c8e9e>] process_backlog+0x8e/0x100
 [<c03c90ac>] net_rx_action+0x13c/0x230
 [<c03c8fc9>] ? net_rx_action+0x59/0x230
 [<c0136f2e>] ? __do_softirq+0x6e/0x120
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c01078b1>] do_IRQ+0x41/0x80
 [<c0155649>] ? trace_hardirqs_on+0xb9/0x130
 [<c01059ca>] common_interrupt+0x2e/0x34
 =======================
---[ end trace 97302d8bf57718dd ]---
------------[ cut here ]------------
WARNING: at net/ipv4/tcp_input.c:1767 tcp_enter_frto+0x27c/0x2a0()
Modules linked in: snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss eeprom e100 psmouse snd_hda_intel snd_pcm snd_timer btusb rtc_cmos thermal bluetooth rtc_core serio_raw intel_agp button processor sg snd rtc_lib i2c_i801 evdev agpgart soundcore dcdbas 3c59x pcspkr snd_page_alloc
Pid: 0, comm: swapper Not tainted 2.6.24-rc8-mm1 #4
 [<c0132100>] ? printk+0x0/0x20
 [<c0131834>] warn_on_slowpath+0x54/0x80
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0154972>] ? validate_chain+0x1d2/0x320
 [<c0156234>] ? __lock_acquire+0x1e4/0x730
 [<c010af95>] ? native_sched_clock+0x85/0xe0
 [<c03f58ac>] tcp_enter_frto+0x27c/0x2a0
 [<c03ff3c2>] tcp_retransmit_timer+0x102/0x400
 [<c043611b>] ? _spin_lock+0x4b/0x80
 [<c03ff6d4>] ? tcp_write_timer+0x14/0x110
 [<c03ff7b3>] tcp_write_timer+0xf3/0x110
 [<c013b94b>] run_timer_softirq+0xbb/0x190
 [<c03ff6c0>] ? tcp_write_timer+0x0/0x110
 [<c0136f53>] __do_softirq+0x93/0x120
 [<c013705a>] do_softirq+0x7a/0x80
 [<c0137125>] irq_exit+0x65/0x90
 [<c011a91d>] smp_apic_timer_interrupt+0x2d/0x40
 [<c0105aab>] apic_timer_interrupt+0x33/0x38
 [<c0103390>] ? mwait_idle_with_hints+0x40/0x50
 [<c01033a0>] ? mwait_idle+0x0/0x20
 [<c01033b2>] mwait_idle+0x12/0x20
 [<c0103141>] cpu_idle+0x61/0x110
 [<c04333bd>] rest_init+0x5d/0x60
 [<c05a47fa>] start_kernel+0x1fa/0x260
 [<c05a4190>] ? unknown_bootoption+0x0/0x130
 =======================
---[ end trace 97302d8bf57718dd ]---

^ permalink raw reply

* Re: [NET_SCHED 00/09]: sch_ingress cleanups
From: David Miller @ 2008-01-21  8:14 UTC (permalink / raw)
  To: hadi; +Cc: kaber, netdev
In-Reply-To: <1200843096.4433.145.camel@localhost>

From: jamal <hadi@cyberus.ca>
Date: Sun, 20 Jan 2008 10:31:36 -0500

> For all patches:
> Acked-by: Jamal Hadi Salim <hadi@cyberus.ca>

All 9 patches applied, thanks.

^ permalink raw reply

* Re: [VLAN 00/18]: Vlan update
From: David Miller @ 2008-01-21  8:34 UTC (permalink / raw)
  To: kaber; +Cc: netdev
In-Reply-To: <20080120171117.7980.67072.sendpatchset@localhost.localdomain>

From: Patrick McHardy <kaber@trash.net>
Date: Sun, 20 Jan 2008 18:11:17 +0100 (MET)

> the following patches contain a VLAN update for 2.6.25, consisting mainly
> of minor cleanups removing duplicate code, avoiding forward declarations,
> makeing functions static etc. Next I'll look into the skb->cb issues
> with VLAN.
> 
> Please apply, thanks.

All applied, thanks.

I wasn't thrilled to see MAC_FMT return, but then again I could
not recommend a better alternative :-)

^ permalink raw reply

* Re: [PATCH 2/4] dsmark: get rid of trivial function
From: Ilpo Järvinen @ 2008-01-21  8:39 UTC (permalink / raw)
  To: Patrick McHardy, Stephen Hemminger; +Cc: David Miller, Netdev
In-Reply-To: <4793E460.5020804@trash.net>

On Mon, 21 Jan 2008, Patrick McHardy wrote:

> Stephen Hemminger wrote:
> > Replace loop in dsmark_valid_indices with equivalent bit math.
> > 
> > Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> > 
> > --- a/net/sched/sch_dsmark.c	2008-01-20 13:07:58.000000000 -0800
> > +++ b/net/sched/sch_dsmark.c	2008-01-20 13:22:54.000000000 -0800
> > @@ -45,13 +45,8 @@ struct dsmark_qdisc_data {
> >  
> >  static inline int dsmark_valid_indices(u16 indices)
> >  {
> > -	while (indices != 1) {
> > -		if (indices & 1)
> > -			return 0;
> > -		indices >>= 1;
> > -	}
> > -
> > -	return 1;
> > +	/* Must have only one bit set */
> > +	return (indices & (indices - 1)) == 0;

Isn't there some magic under include/linux to do that btw, I suppose 
that if the caller side zero check is pushed down there too, the
is_power_of_2() is 100% match? :-) 

> hweight seems easier to understand, it took me a bit
> to realize that the comment matches the code :)

In addition, the original seems infinite loop with zero indices given
but luckily that was checked at the caller site already...


-- 
 i.

^ permalink raw reply

* [PATCH]: Fix IWLWIFI mis-merge.
From: David Miller @ 2008-01-21  8:44 UTC (permalink / raw)
  To: netdev; +Cc: linux-wireless, jgarzik, linville


I just corrected the iwlwifi driver build in the net-2.6.25 tree.

The cause is very simple, the patches applied after Christoph
Hellwig's namespace pollution cleanup to these drivers were not even
build tested.

[IWLWIFI]: Fix up merge errors.

Christoph Hellwig did a driver-wide namespace pollution cleanup
changing iwl_* over to iwl{3945,4965}_*

But subsequent patches to these drivers were not made against that
change and thus kept using the iwl_* names, thus breaking the build.

Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c
index 122d712..dc78fb0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c
@@ -560,8 +560,8 @@ static void rs_tx_status(void *priv_rate,
 	return;
 }
 
-static u16 iwl_get_adjacent_rate(struct iwl_rate_scale_priv *rs_priv,
-				 u8 index, u16 rate_mask, int phymode)
+static u16 iwl3945_get_adjacent_rate(struct iwl3945_rate_scale_priv *rs_priv,
+				     u8 index, u16 rate_mask, int phymode)
 {
 	u8 high = IWL_RATE_INVALID;
 	u8 low = IWL_RATE_INVALID;
@@ -658,7 +658,7 @@ static void rs_get_rate(void *priv_rate, struct net_device *dev,
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 	struct sta_info *sta;
 	u16 rate_mask;
-	struct iwl_priv *priv = (struct iwl_priv *)priv_rate;
+	struct iwl3945_priv *priv = (struct iwl3945_priv *)priv_rate;
 	DECLARE_MAC_BUF(mac);
 
 	IWL_DEBUG_RATE("enter\n");
@@ -726,7 +726,7 @@ static void rs_get_rate(void *priv_rate, struct net_device *dev,
 	current_tpt = window->average_tpt;
 
 	high_low = iwl3945_get_adjacent_rate(rs_priv, index, rate_mask,
-					 local->hw.conf.phymode);
+					     local->hw.conf.phymode);
 	low = high_low & 0xff;
 	high = (high_low >> 8) & 0xff;
 
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
index 5d6a540..b8f2483 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
@@ -83,7 +83,7 @@ struct iwl4965_rate_scale_data {
 /**
  * struct iwl4965_scale_tbl_info -- tx params and success history for all rates
  *
- * There are two of these in struct iwl_rate_scale_priv,
+ * There are two of these in struct iwl4965_rate_scale_priv,
  * one for "active", and one for "search".
  */
 struct iwl4965_scale_tbl_info {
@@ -99,7 +99,7 @@ struct iwl4965_scale_tbl_info {
 };
 
 /**
- * struct iwl_rate_scale_priv -- driver's rate scaling private structure
+ * struct iwl4965_rate_scale_priv -- driver's rate scaling private structure
  *
  * Pointer to this gets passed back and forth between driver and mac80211.
  */
@@ -2017,8 +2017,8 @@ static void rs_get_rate(void *priv_rate, struct net_device *dev,
 	struct ieee80211_conf *conf = &local->hw.conf;
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 	struct sta_info *sta;
-	struct iwl_priv *priv = (struct iwl_priv *)priv_rate;
-	struct iwl_rate_scale_priv *lq;
+	struct iwl4965_priv *priv = (struct iwl4965_priv *)priv_rate;
+	struct iwl4965_rate_scale_priv *lq;
 
 	IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n");
 
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 9d38af4..d702662 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -8636,7 +8636,7 @@ static void iwl3945_pci_remove(struct pci_dev *pdev)
 
 	set_bit(STATUS_EXIT_PENDING, &priv->status);
 
-	iwl_down(priv);
+	iwl3945_down(priv);
 
 	/* Free MAC hash list for ADHOC */
 	for (i = 0; i < IWL_IBSS_MAC_HASH_SIZE; i++) {
@@ -8698,7 +8698,7 @@ static int iwl3945_pci_suspend(struct pci_dev *pdev, pm_message_t state)
 	set_bit(STATUS_IN_SUSPEND, &priv->status);
 
 	/* Take down the device; powers it off, etc. */
-	iwl_down(priv);
+	iwl3945_down(priv);
 
 	if (priv->mac80211_registered)
 		ieee80211_stop_queues(priv->hw);
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index d10f487..4066515 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -9206,7 +9206,7 @@ static void iwl4965_pci_remove(struct pci_dev *pdev)
 
 	set_bit(STATUS_EXIT_PENDING, &priv->status);
 
-	iwl_down(priv);
+	iwl4965_down(priv);
 
 	/* Free MAC hash list for ADHOC */
 	for (i = 0; i < IWL_IBSS_MAC_HASH_SIZE; i++) {
@@ -9268,7 +9268,7 @@ static int iwl4965_pci_suspend(struct pci_dev *pdev, pm_message_t state)
 	set_bit(STATUS_IN_SUSPEND, &priv->status);
 
 	/* Take down the device; powers it off, etc. */
-	iwl_down(priv);
+	iwl4965_down(priv);
 
 	if (priv->mac80211_registered)
 		ieee80211_stop_queues(priv->hw);

^ permalink raw reply related

* Re: [MACVLAN]: Fix thinko in macvlan_transfer_operstate()
From: David Miller @ 2008-01-21  8:47 UTC (permalink / raw)
  To: kaber; +Cc: netdev
In-Reply-To: <47935EEC.6010402@trash.net>

From: Patrick McHardy <kaber@trash.net>
Date: Sun, 20 Jan 2008 15:47:08 +0100

> [MACVLAN]: Fix thinko in macvlan_transfer_operstate()
> 
> When the lower device's carrier is off, the macvlan devices's
> carrier state should be checked to decide whether it needs to
> be turned off. Currently the lower device's state is checked
> a second time.
> 
> This still works, but unnecessarily tries to turn off the
> carrier when its already off.
> 
> Signed-off-by: Patrick McHardy <kaber@trash.net>

Applied to net-2.6.25, thanks.

^ permalink raw reply

* Re: [NET_SCHED]: kill obsolete NET_CLS_POLICE option
From: David Miller @ 2008-01-21  8:47 UTC (permalink / raw)
  To: kaber; +Cc: netdev
In-Reply-To: <47935F30.9080106@trash.net>

From: Patrick McHardy <kaber@trash.net>
Date: Sun, 20 Jan 2008 15:48:16 +0100

> [NET_SCHED]: kill obsolete NET_CLS_POLICE option
> 
> The code is already gone for about half a year, the config option
> has been kept around to select the replacement options for easier
> upgrades. This seems long enough, people upgrading from older
> kernels will have to reconfigure a lot anyway.
> 
> Signed-off-by: Patrick McHardy <kaber@trash.net>

Applied to net-2.6.25

^ permalink raw reply

* Re: [PATCH] ipv6: addrconf sparse warnings
From: David Miller @ 2008-01-21  8:48 UTC (permalink / raw)
  To: shemminger; +Cc: yoshfuji, netdev
In-Reply-To: <20080120100140.0f5e2fce@deepthought>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Sun, 20 Jan 2008 10:01:40 -0800

> Get rid of a couple of sparse warnings in IPV6 addrconf code.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied, thanks Stephen.

^ permalink raw reply

* Re: [PATCH 1/4] dsmark: get rid of wrappers
From: David Miller @ 2008-01-21  8:50 UTC (permalink / raw)
  To: shemminger; +Cc: kaber, netdev
In-Reply-To: <20080120131008.2039a35d@deepthought>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Sun, 20 Jan 2008 13:10:08 -0800

> Remove extraneous macro wrappers for printk and qdisc_priv.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

APplied.

^ permalink raw reply

* [PATCH 2/2] IPV6: RFC 2011 compatibility broken
From: Wang Chen @ 2008-01-21  9:46 UTC (permalink / raw)
  To: David S. Miller; +Cc: David L Stevens, netdev, Herbert Xu
In-Reply-To: <478DD57B.6020503@cn.fujitsu.com>

[IPV6]: RFC 2011 compatibility broken

The snmp6 entry name was changed, and it broke compatibility
to RFC 2011.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>

--- linux-2.6.24.rc8.org/net/ipv6/proc.c	2008-01-16 17:45:03.000000000 +0800
+++ linux-2.6.24.rc8/net/ipv6/proc.c	2008-01-21 15:48:52.000000000 +0800
@@ -88,7 +88,7 @@ static char *icmp6type2name[256] = {
 	[ICMPV6_PKT_TOOBIG] = "PktTooBigs",
 	[ICMPV6_TIME_EXCEED] = "TimeExcds",
 	[ICMPV6_PARAMPROB] = "ParmProblems",
-	[ICMPV6_ECHO_REQUEST] = "EchoRequest",
+	[ICMPV6_ECHO_REQUEST] = "Echos",
 	[ICMPV6_ECHO_REPLY] = "EchoReplies",
 	[ICMPV6_MGM_QUERY] = "GroupMembQueries",
 	[ICMPV6_MGM_REPORT] = "GroupMembResponses",
@@ -98,7 +98,7 @@ static char *icmp6type2name[256] = {
 	[NDISC_ROUTER_SOLICITATION] = "RouterSolicits",
 	[NDISC_NEIGHBOUR_ADVERTISEMENT] = "NeighborAdvertisements",
 	[NDISC_NEIGHBOUR_SOLICITATION] = "NeighborSolicits",
-	[NDISC_REDIRECT] = "NeighborRedirects",
+	[NDISC_REDIRECT] = "Redirects",
 };
 
 



^ permalink raw reply

* [PATCH 1/2] IPV6: ICMP6_MIB_OUTMSGS increment duplicated
From: Wang Chen @ 2008-01-21  9:46 UTC (permalink / raw)
  To: David S. Miller; +Cc: David L Stevens, netdev, Herbert Xu
In-Reply-To: <478DD57B.6020503@cn.fujitsu.com>

[IPV6]: ICMP6_MIB_OUTMSGS increment duplicated

icmpv6_send() calls ip6_push_pending_frames() indirectly.
Both ip6_push_pending_frames() and icmpv6_send() increment
counter ICMP6_MIB_OUTMSGS.

This patch remove the increment from icmpv6_send.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>

--- linux-2.6.24.rc8.org/net/ipv6/icmp.c	2008-01-16 17:45:03.000000000 +0800
+++ linux-2.6.24.rc8/net/ipv6/icmp.c	2008-01-21 15:56:06.000000000 +0800
@@ -458,8 +458,6 @@ void icmpv6_send(struct sk_buff *skb, in
 	}
 	err = icmpv6_push_pending_frames(sk, &fl, &tmp_hdr, len + sizeof(struct icmp6hdr));
 
-	ICMP6_INC_STATS_BH(idev, ICMP6_MIB_OUTMSGS);
-
 out_put:
 	if (likely(idev != NULL))
 		in6_dev_put(idev);



^ permalink raw reply

* Re: [PATCH 2/2] IPV6: RFC 2011 compatibility broken
From: YOSHIFUJI Hideaki / 吉藤英明 @ 2008-01-21  9:58 UTC (permalink / raw)
  To: wangchen; +Cc: davem, dlstevens, netdev, herbert
In-Reply-To: <47946A04.3080702@cn.fujitsu.com>

In article <47946A04.3080702@cn.fujitsu.com> (at Mon, 21 Jan 2008 17:46:44 +0800), Wang Chen <wangchen@cn.fujitsu.com> says:

> The snmp6 entry name was changed, and it broke compatibility
> to RFC 2011.
> 
> Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>

--yoshfuji

^ permalink raw reply

* Re: [PATCH 1/2] IPV6: ICMP6_MIB_OUTMSGS increment duplicated
From: YOSHIFUJI Hideaki / 吉藤英明 @ 2008-01-21  9:59 UTC (permalink / raw)
  To: wangchen; +Cc: davem, dlstevens, netdev, herbert
In-Reply-To: <479469F8.4010203@cn.fujitsu.com>

In article <479469F8.4010203@cn.fujitsu.com> (at Mon, 21 Jan 2008 17:46:32 +0800), Wang Chen <wangchen@cn.fujitsu.com> says:

> [IPV6]: ICMP6_MIB_OUTMSGS increment duplicated
> 
> icmpv6_send() calls ip6_push_pending_frames() indirectly.
> Both ip6_push_pending_frames() and icmpv6_send() increment
> counter ICMP6_MIB_OUTMSGS.
> 
> This patch remove the increment from icmpv6_send.
> 
> Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>

--yoshfuji

^ permalink raw reply

* Re: [PATCH 2/4] dsmark: get rid of trivial function
From: David Miller @ 2008-01-21 10:22 UTC (permalink / raw)
  To: kaber; +Cc: shemminger, netdev
In-Reply-To: <4793E460.5020804@trash.net>

From: Patrick McHardy <kaber@trash.net>
Date: Mon, 21 Jan 2008 01:16:32 +0100

> Stephen Hemminger wrote:
> > Replace loop in dsmark_valid_indices with equivalent bit math.
> > 
> > Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
> > 
> > --- a/net/sched/sch_dsmark.c	2008-01-20 13:07:58.000000000 -0800
> > +++ b/net/sched/sch_dsmark.c	2008-01-20 13:22:54.000000000 -0800
> > @@ -45,13 +45,8 @@ struct dsmark_qdisc_data {
> >  
> >  static inline int dsmark_valid_indices(u16 indices)
> >  {
> > -	while (indices != 1) {
> > -		if (indices & 1)
> > -			return 0;
> > -		indices >>= 1;
> > -	}
> > -
> > -	return 1;
> > +	/* Must have only one bit set */
> > +	return (indices & (indices - 1)) == 0;
> 
> hweight seems easier to understand, it took me a bit
> to realize that the comment matches the code :)

Sounds good.  Here is what I ended up checking in.

[PKT_SCHED] dsmark: Use hweight32() instead of convoluted loop.

Based upon a patch by Stephen Hemminger and suggestions
from Patrick McHardy.

Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/net/sched/sch_dsmark.c b/net/sched/sch_dsmark.c
index a9732ae..d96eaf0 100644
--- a/net/sched/sch_dsmark.c
+++ b/net/sched/sch_dsmark.c
@@ -10,6 +10,7 @@
 #include <linux/errno.h>
 #include <linux/skbuff.h>
 #include <linux/rtnetlink.h>
+#include <linux/bitops.h>
 #include <net/pkt_sched.h>
 #include <net/dsfield.h>
 #include <net/inet_ecn.h>
@@ -43,17 +44,6 @@ struct dsmark_qdisc_data {
 	int			set_tc_index;
 };
 
-static inline int dsmark_valid_indices(u16 indices)
-{
-	while (indices != 1) {
-		if (indices & 1)
-			return 0;
-		indices >>= 1;
-	}
-
-	return 1;
-}
-
 static inline int dsmark_valid_index(struct dsmark_qdisc_data *p, u16 index)
 {
 	return (index <= p->indices && index > 0);
@@ -348,7 +338,8 @@ static int dsmark_init(struct Qdisc *sch, struct rtattr *opt)
 		goto errout;
 
 	indices = RTA_GET_U16(tb[TCA_DSMARK_INDICES-1]);
-	if (!indices || !dsmark_valid_indices(indices))
+
+	if (hweight32(indices) != 1)
 		goto errout;
 
 	if (tb[TCA_DSMARK_DEFAULT_INDEX-1])

^ permalink raw reply related

* Re: [PATCH 3/4] dsmark: handle cloned and non-linear skb's
From: David Miller @ 2008-01-21 10:23 UTC (permalink / raw)
  To: shemminger; +Cc: kaber, netdev
In-Reply-To: <20080120132354.55de46ed@deepthought>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Sun, 20 Jan 2008 13:23:54 -0800

> Make dsmark work properly with non-linear and cloned skb's
> Before modifying the header, it needs to check that skb header is
> writeable.
> 
> Note: this makes the assumption, that if it queues a good skb
> then a good skb will come out of the embedded qdisc.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied.

^ permalink raw reply

* Re: [PATCH 4/4] dsmark: checkpatch warning cleanup
From: David Miller @ 2008-01-21 10:24 UTC (permalink / raw)
  To: shemminger; +Cc: kaber, netdev
In-Reply-To: <20080120132536.6f29edda@deepthought>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Sun, 20 Jan 2008 13:25:36 -0800

> Get rid of all style things checkpatch warns about, indentation
> and whitespace.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied, thanks.

^ permalink raw reply

* Re: [PATCH] sch_atm: style cleanup
From: David Miller @ 2008-01-21 10:25 UTC (permalink / raw)
  To: shemminger; +Cc: kaber, chas, netdev, linux-atm-general
In-Reply-To: <20080120140342.13139be7@deepthought>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Sun, 20 Jan 2008 14:03:42 -0800

> ATM scheduler clean house:
>   * get rid of printk and qdisc_priv() wrapper
>   * split some assignment in if() statements
>   * whitespace and line breaks.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied.

^ permalink raw reply

* Re: [PATCH] net classifier: style cleanup's
From: David Miller @ 2008-01-21 10:26 UTC (permalink / raw)
  To: shemminger; +Cc: kaber, netdev
In-Reply-To: <20080120140613.10a7d29b@deepthought>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Sun, 20 Jan 2008 14:06:13 -0800

> Classifier code cleanup. Get rid of printk wrapper, and fix whitespace
> and other style stuff reported by checkpatch

Applied, thanks.

^ permalink raw reply

* Re: [PATCH] net: add sparse annotation to ptype_seq_start/stop
From: David Miller @ 2008-01-21 10:28 UTC (permalink / raw)
  To: josh; +Cc: paulmck, shemminger, netdev
In-Reply-To: <479449DC.4020105@freedesktop.org>

From: Josh Triplett <josh@freedesktop.org>
Date: Sun, 20 Jan 2008 23:29:32 -0800

> At the moment, Sparse doesn't actually use the context expression.  In
> the ideal case when it does, all references to the same lock should
> use a context expression which resolves to that lock (whatever that
> may mean; hence why Sparse doesn't handle it yet).  For mechanisms
> like RCU without a lock variable, this will likely entail some sort of
> fake lock expression, which again needs to match between all users of
> the same mechanism.  Like any expression in C, case matters; thus,
> please match the existing references to "RCU" rather than "rcu".

Thus, I've checked in Stephen's patch with __acquires(RCU) and
__releases(RCU).

Thanks.


^ permalink raw reply

* Re: [PATCH 1/3][NET] gen_estimator: faster gen_kill_estimator
From: David Miller @ 2008-01-21 10:35 UTC (permalink / raw)
  To: jarkao2; +Cc: netdev, slavon, kaber, hadi
In-Reply-To: <20080120234659.GA2691@ami.dom.local>

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Mon, 21 Jan 2008 00:46:59 +0100

I like the technique you used to fix this bug, but:

> diff -Nurp 2.6.24-rc8-mm1-/include/linux/gen_stats.h 2.6.24-rc8-mm1+/include/linux/gen_stats.h
> --- 2.6.24-rc8-mm1-/include/linux/gen_stats.h	2007-10-09 22:31:38.000000000 +0200
> +++ 2.6.24-rc8-mm1+/include/linux/gen_stats.h	2008-01-20 20:37:08.000000000 +0100
> @@ -28,11 +28,13 @@ struct gnet_stats_basic
>   * struct gnet_stats_rate_est - rate estimator
>   * @bps: current byte rate
>   * @pps: current packet rate
> + * @gen_estimator: internal data
>   */
>  struct gnet_stats_rate_est
>  {
>  	__u32	bps;
>  	__u32	pps;
> +	unsigned long	gen_estimator;
>  };
>  
>  /**

Sorry, this structure is exported to userspace so we can't
change it like that.

It is an attribute passed over netlink sockets.


^ permalink raw reply

* Re: [PATCH 2/3][NET] gen_estimator: list_empty() check in est_timer() fixed
From: David Miller @ 2008-01-21 10:36 UTC (permalink / raw)
  To: jarkao2; +Cc: shemminger, slavon, kaber, hadi, netdev
In-Reply-To: <20080121064240.GB981@ff.dom.local>

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Mon, 21 Jan 2008 07:42:40 +0100

> On Mon, Jan 21, 2008 at 07:34:55AM +0100, Jarek Poplawski wrote:
> ...
> > BTW, I've forgotten to mention with patch 1/3 that this checking with
> > warning on gen_new_estimator() double call should be only temporary,
> > and after more testing gen_estimator structure could be probably
> > decreased after removing bstats and rate_est fields.
> 
> Hmm, let's forget about this again: it's too early in the morning...

:-)

FWIW I agree that double-negatives are confusing and we should
avoid them.

^ permalink raw reply

* Re: [PATCH 3/3][NET] gen_estimator: gen_replace_estimator() cosmetic changes
From: David Miller @ 2008-01-21 10:36 UTC (permalink / raw)
  To: jarkao2; +Cc: netdev, slavon, kaber, hadi
In-Reply-To: <20080120235115.GC2691@ami.dom.local>

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Mon, 21 Jan 2008 00:51:15 +0100

> White spaces etc. are changed in gen_replace_estimator() to make it similar
> to others in a file.
> 
> Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>

Applied to net-2.6.25, thanks.

^ permalink raw reply

* Re: [PATCH] [IPV4] route: fix locking in rt_run_flush()
From: David Miller @ 2008-01-21 10:40 UTC (permalink / raw)
  To: joonwpark81; +Cc: netdev, dada1
In-Reply-To: <12009281372201-git-send-email-joonwpark81@gmail.com>

From: Joonwoo Park <joonwpark81@gmail.com>
Date: Tue, 22 Jan 2008 00:08:57 +0900

> The rt_run_flush() can be stucked if it was called while netdev is on the 
> high load.
> It's possible when pushing rtable to rt_hash is faster than pulling
> from it.
> 
> The commands 'ifconfig up or ifconfig mtu' and netif_carrier_on() can
> introduce soft lockup like this:
> 
> [  363.528001] BUG: soft lockup - CPU#0 stuck for 11s! [events/0:9]
> [  363.531492]
> [  363.535027] Pid: 9, comm: events/0 Not tainted (2.6.24-rc8 #14)
> [  363.538837] EIP: 0060:[<c4086a39>] EFLAGS: 00000286 CPU: 0
> [  363.542762] EIP is at kfree+0xa9/0xf0
> ...
> [  363.660815]  [<c42fb0fd>] skb_release_data+0x5d/0x90
> [  363.666989]  [<c42fb7dc>] skb_release_all+0x5c/0xd0
> [  363.673207]  [<c42faf8b>] __kfree_skb+0xb/0x90
> [  363.679474]  [<c42fb029>] kfree_skb+0x19/0x40
> [  363.685811]  [<c4322d87>] ip_rcv+0x27/0x290
> [  363.692223]  [<c4300ae5>] netif_receive_skb+0x255/0x320
> [  363.698759]  [<f88465aa>] e1000_clean_rx_irq+0x14a/0x4f0 [e1000]
> [  363.705456]  [<f88437c2>] e1000_clean+0x62/0x270 [e1000]
> [  363.712217]  [<c43031ee>] net_rx_action+0x16e/0x220
> [  363.719065]  [<c40346d7>] __do_softirq+0x87/0x100
> [  363.726001]  [<c40347a7>] do_softirq+0x57/0x60
> [  363.732979]  [<c4034b4e>] local_bh_enable_ip+0xae/0x100
> [  363.740094]  [<c43e73f5>] _spin_unlock_bh+0x25/0x30
> [  363.747283]  [<c431ec88>] rt_run_flush+0xc8/0xe0
> [  363.754566]  [<c4320c76>] rt_cache_flush+0xd6/0xe0
> [  363.761917]  [<c4350269>] fib_netdev_event+0x89/0xa0
> [  363.769361]  [<c4047d67>] notifier_call_chain+0x37/0x80
> ...
> 
> This patch makes rt_run_flush() to run with softirq is disabled.
> 
> Signed-off-by: Joonwoo Park <joonwpark81@gmail.com>

I agree with the analysis of the problem, however not the solution.

This will absolutely kill software interrupt latency.

In fact, we have moved much of the flush work into a workqueue in
net-2.6.25 because of how important that is

We need to find some other way to solve this.

Eric, any ideas?

^ permalink raw reply

* Re: [PATCH 1/3][NET] gen_estimator: faster gen_kill_estimator
From: Jarek Poplawski @ 2008-01-21 10:56 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, slavon, kaber, hadi
In-Reply-To: <20080121.023515.256390630.davem@davemloft.net>

On Mon, Jan 21, 2008 at 02:35:15AM -0800, David Miller wrote:
...
> Sorry, this structure is exported to userspace so we can't
> change it like that.
> 
> It is an attribute passed over netlink sockets.
> 

Thanks for finding this! I'll try to rethink this (especially why
my "tests" seemed to show something could be working there...).

Jarek P.

^ permalink raw reply

* Re: [PATCH 1/2] IPV6: ICMP6_MIB_OUTMSGS increment duplicated
From: David Miller @ 2008-01-21 10:57 UTC (permalink / raw)
  To: wangchen; +Cc: dlstevens, netdev, herbert
In-Reply-To: <479469F8.4010203@cn.fujitsu.com>

From: Wang Chen <wangchen@cn.fujitsu.com>
Date: Mon, 21 Jan 2008 17:46:32 +0800

> [IPV6]: ICMP6_MIB_OUTMSGS increment duplicated
> 
> icmpv6_send() calls ip6_push_pending_frames() indirectly.
> Both ip6_push_pending_frames() and icmpv6_send() increment
> counter ICMP6_MIB_OUTMSGS.
> 
> This patch remove the increment from icmpv6_send.
> 
> Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>

Which tree are these two changes targetted at?

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox