Re: kernel BUG at sched.c:564! (2.4.20, 2.4.21-pre5-ac3)

Patrick McHardy (kaber@trash.net)
Thu, 27 Mar 2003 13:35:27 +0100


This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_courier-4385-1048768590-0001-2
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

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

--=_courier-4385-1048768590-0001-2
Content-Type: text/plain; name="isdn-locking-fixes.diff"; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="isdn-locking-fixes.diff"

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

--=_courier-4385-1048768590-0001-2--