Re: kernel BUG at kernel/timer.c:370!

From: Andrew Morton
Date: Thu Mar 11 2004 - 16:43:19 EST


Flavio Bruno Leitner <fbl@xxxxxxxxxxxxxxxx> wrote:
>
> On Fri, Mar 05, 2004 at 03:06:15PM -0800, Andrew Morton wrote:
> > Flavio Bruno Leitner <fbl@xxxxxxxxxxxxxxxx> 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.
>

Thanks for working that out. Maybe we need to terminate those sysctl
tables. Does this fix it?

---

25-akpm/net/ipv4/devinet.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)

diff -puN net/ipv4/devinet.c~devinet-ctl_table-fix net/ipv4/devinet.c
--- 25/net/ipv4/devinet.c~devinet-ctl_table-fix Thu Mar 11 13:40:38 2004
+++ 25-akpm/net/ipv4/devinet.c Thu Mar 11 13:40:53 2004
@@ -1210,11 +1210,11 @@ int ipv4_doint_and_flush_strategy(ctl_ta

static struct devinet_sysctl_table {
struct ctl_table_header *sysctl_header;
- ctl_table devinet_vars[20];
- ctl_table devinet_dev[2];
- ctl_table devinet_conf_dir[2];
- ctl_table devinet_proto_dir[2];
- ctl_table devinet_root_dir[2];
+ ctl_table devinet_vars[21];
+ ctl_table devinet_dev[3];
+ ctl_table devinet_conf_dir[3];
+ ctl_table devinet_proto_dir[3];
+ ctl_table devinet_root_dir[3];
} devinet_sysctl = {
.devinet_vars = {
{
@@ -1372,6 +1372,7 @@ static struct devinet_sysctl_table {
.proc_handler = &ipv4_doint_and_flush,
.strategy = &ipv4_doint_and_flush_strategy,
},
+ { .ctl_name = 0 }
},
.devinet_dev = {
{
@@ -1380,6 +1381,7 @@ static struct devinet_sysctl_table {
.mode = 0555,
.child = devinet_sysctl.devinet_vars,
},
+ { .ctl_name = 0 }
},
.devinet_conf_dir = {
{
@@ -1388,6 +1390,7 @@ static struct devinet_sysctl_table {
.mode = 0555,
.child = devinet_sysctl.devinet_dev,
},
+ { .ctl_name = 0 }
},
.devinet_proto_dir = {
{
@@ -1396,6 +1399,7 @@ static struct devinet_sysctl_table {
.mode = 0555,
.child = devinet_sysctl.devinet_conf_dir,
},
+ { .ctl_name = 0 }
},
.devinet_root_dir = {
{
@@ -1404,6 +1408,7 @@ static struct devinet_sysctl_table {
.mode = 0555,
.child = devinet_sysctl.devinet_proto_dir,
},
+ { .ctl_name = 0 }
},
};


_

-
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/