Messages in this thread Patch in this message | | | Date | Thu, 27 Mar 2003 13:35:27 +0100 | From | Patrick McHardy <> | Subject | Re: kernel BUG at sched.c:564! (2.4.20, 2.4.21-pre5-ac3) |
| |
The ISDN bug is fixed, i sent a patch to LKML and the Maintainer last week. I've attached the fix again, the one in isdn_ppp.c is responsible for the BUG()s.
Patrick
Stephan von Krawczynski wrote:
>Hello all, > >I just wanted to hint that this very same BUG message appears on channel >bundling of ISDN, too. Greg, can you give a short description for this race >please, as I would like to find it in the ISDN-code, maybe your ideas help... > >Thanks, >Stephan > > > > > # This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1055 -> 1.1056 # drivers/isdn/isdn_net.c 1.15 -> 1.16 # drivers/isdn/isdn_ppp.c 1.20 -> 1.21 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/03/27 kaber@trash.net 1.1056 # [ISDN]: locking fixes # -------------------------------------------- # diff -Nru a/drivers/isdn/isdn_net.c b/drivers/isdn/isdn_net.c --- a/drivers/isdn/isdn_net.c Thu Mar 27 02:00:21 2003 +++ b/drivers/isdn/isdn_net.c Thu Mar 27 02:00:21 2003 @@ -2831,6 +2831,7 @@ /* If binding is exclusive, try to grab the channel */ save_flags(flags); + cli(); if ((i = isdn_get_free_channel(ISDN_USAGE_NET, lp->l2_proto, lp->l3_proto, drvidx, chidx, lp->msn)) < 0) { diff -Nru a/drivers/isdn/isdn_ppp.c b/drivers/isdn/isdn_ppp.c --- a/drivers/isdn/isdn_ppp.c Thu Mar 27 02:00:21 2003 +++ b/drivers/isdn/isdn_ppp.c Thu Mar 27 02:00:21 2003 @@ -1176,7 +1176,7 @@ if (!lp) { printk(KERN_WARNING "%s: all channels busy - requeuing!\n", netdev->name); retval = 1; - goto unlock; + goto out; } /* we have our lp locked from now on */ | |