Messages in this thread Patch in this message | | | Date | Thu, 11 Mar 2004 12:43:31 -0300 | From | Flavio Bruno Leitner <> | Subject | Re: kernel BUG at kernel/timer.c:370! |
| |
On Fri, Mar 05, 2004 at 03:06:15PM -0800, Andrew Morton wrote: > Flavio Bruno Leitner <fbl@conectiva.com.br> wrote: > > > > My laptop is an Acer TravelMate 630 and somewhere between 2.6.2 and 2.6.3-rc2 > > begins returning an oops right after boot. > > > > kernel BUG at kernel/timer.c:370! > > Oh fantastic. Something scrogged the timer lists. > > I suggest you try stripping your kernel config down the the bare minimum > which is needed to boot, see if that fixes it and if so, start > reintroducing things until you've worked out which driver is causing the > problem.
Done!
The oops happens when the patch is applied, just do ifconfig eth0 down and ifconfig eth0 <with another ip> up. The dhcp always get wrong ip, so my rc.local run ifconfig down and up. Removing the patch, I can't reproduce it anymore.
This oops still happens with newer kernels.
Thanks!
-- Flávio Bruno Leitner <fbl@conectiva.com.br> [ E74B 0BD0 5E05 C385 239E 531C BC17 D670 7FF0 A9E0 ] diff -Nru a/include/linux/inetdevice.h b/include/linux/inetdevice.h --- a/include/linux/inetdevice.h Fri Apr 11 03:35:44 2003 +++ b/include/linux/inetdevice.h Thu Jan 29 20:57:46 2004 @@ -21,6 +21,7 @@ int medium_id; int no_xfrm; int no_policy; + int force_igmp_version; void *sysctl; }; diff -Nru a/net/ipv4/igmp.c b/net/ipv4/igmp.c --- a/net/ipv4/igmp.c Sat Jan 24 15:54:51 2004 +++ b/net/ipv4/igmp.c Mon Feb 2 21:43:31 2004 @@ -126,10 +126,14 @@ * contradict to specs provided this delay is small enough. */ -#define IGMP_V1_SEEN(in_dev) ((in_dev)->mr_v1_seen && \ - time_before(jiffies, (in_dev)->mr_v1_seen)) -#define IGMP_V2_SEEN(in_dev) ((in_dev)->mr_v2_seen && \ - time_before(jiffies, (in_dev)->mr_v2_seen)) +#define IGMP_V1_SEEN(in_dev) (ipv4_devconf.force_igmp_version == 1 || \ + (in_dev)->cnf.force_igmp_version == 1 || \ + ((in_dev)->mr_v1_seen && \ + time_before(jiffies, (in_dev)->mr_v1_seen))) +#define IGMP_V2_SEEN(in_dev) (ipv4_devconf.force_igmp_version == 2 || \ + (in_dev)->cnf.force_igmp_version == 2 || \ + ((in_dev)->mr_v2_seen && \ + time_before(jiffies, (in_dev)->mr_v2_seen))) static void igmpv3_add_delrec(struct in_device *in_dev, struct ip_mc_list *im); static void igmpv3_del_delrec(struct in_device *in_dev, __u32 multiaddr); @@ -1063,7 +1067,7 @@ reporter = im->reporter; igmp_stop_timer(im); - if (in_dev->dev->flags & IFF_UP) { + if (!in_dev->dead) { if (IGMP_V1_SEEN(in_dev)) goto done; if (IGMP_V2_SEEN(in_dev)) { @@ -1094,6 +1098,8 @@ if (im->multiaddr == IGMP_ALL_HOSTS) return; + if (in_dev->dead) + return; if (IGMP_V1_SEEN(in_dev) || IGMP_V2_SEEN(in_dev)) { spin_lock_bh(&im->lock); igmp_start_timer(im, IGMP_Initial_Report_Delay); @@ -1167,7 +1173,7 @@ igmpv3_del_delrec(in_dev, im->multiaddr); #endif igmp_group_added(im); - if (in_dev->dev->flags & IFF_UP) + if (!in_dev->dead) ip_rt_multicast_event(in_dev); out: return; @@ -1191,7 +1197,7 @@ write_unlock_bh(&in_dev->lock); igmp_group_dropped(i); - if (in_dev->dev->flags & IFF_UP) + if (!in_dev->dead) ip_rt_multicast_event(in_dev); ip_ma_put(i); @@ -1266,6 +1272,9 @@ struct ip_mc_list *i; ASSERT_RTNL(); + + /* Deactivate timers */ + ip_mc_down(in_dev); write_lock_bh(&in_dev->lock); while ((i = in_dev->mc_list) != NULL) { Hello!
My laptop is an Acer TravelMate 630 and somewhere between 2.6.2 and 2.6.3-rc2 begins returning an oops right after boot.
kernel BUG at kernel/timer.c:370! invalid operand: 0000 [#1] CPU: 0 EIP: 0060:[<c0127177>] Not tainted EFLAGS: 00010006 EIP is at cascade+0x44/0x4e eax: c03e4368 ebx: c03e02b0 ecx: fffce200 edx: c03e03b0 esi: c03e0398 edi: c03dfa80 ebp: c0387f08 esp: c0387ef4 ds: 007b es: 007b ss: 0068 Process swapper (pid: 0, threadinfo=c0386000 task=c0306520) Stack: c03dfa80 cde229c4 00000000 c03df7a8 c0387f20 c0387f38 c0127732 c03dfa80 c03e0288 00000022 c0387f34 c0387f20 c0387f20 c0308d64 00000001 c03df7a8 0000000a c0387f54 c0123b7c c03df7a8 00000046 00000000 c037da00 c0308d64 Call Trace: [<c0127732>] run_timer_softirq+0xec/0x16b [<c0123b7c>] do_softirq+0x98/0x9a [<c010d2ff>] do_IRQ+0xe4/0x11c [<c010b974>] common_interrupt+0x18/0x20 [<d08c8257>] acpi_processor_idle+0xe9/0x1e5 [processor] [<c0105000>] _stext+0x0/0x2a [<c01090b7>] cpu_idle+0x2f/0x38 [<c038c70a>] start_kernel+0x185/0x1c9 [<c038c44a>] unknow_bootoption+0x0/0x108
Code: 0f 0b 72 01 3b 05 2d c0 eb d4 55 89 e5 56 53 83 ec 04 0f bf
| |