misc/57104: boot/usb: boot freezes during USB devices detection
Ian Dowse
iedowse at maths.tcd.ie
Sat Sep 27 05:00:36 PDT 2003
The following reply was made to PR misc/57104; it has been noted by GNATS.
From: Ian Dowse <iedowse at maths.tcd.ie>
To: freebsd-gnats-submit at FreeBSD.org
Cc:
Subject: Re: misc/57104: boot/usb: boot freezes during USB devices detection
Date: Sat, 27 Sep 2003 12:55:14 +0100
In message <20030923171546.GA365 at Psyllobora>, nivit at libero.it writes:
>> >Description:
>>
>> the boot stops during USB devices detection
>> [...]
>
>(Waiting for an official solution), you can solve this problem,
>replacing the following files with their old version:
>
>sys/kern/subr_taskqueue.c (1.3.2.2 -> 1.3.2.1)
>sys/sys/taskqueue.h sys.orig/sys/taskqueue.h (1.1.2.3 -> 1.1.2.2)
As a followup, the submitter reports that the hang is cured by the
following patch.
Ian
Index: kern_fork.c
===================================================================
RCS file: /home/iedowse/CVS/src/sys/kern/kern_fork.c,v
retrieving revision 1.72.2.14
diff -u -r1.72.2.14 kern_fork.c
--- kern_fork.c 26 Jun 2003 04:15:10 -0000 1.72.2.14
+++ kern_fork.c 26 Sep 2003 08:26:31 -0000
@@ -183,7 +183,7 @@
struct proc *p2, *pptr;
uid_t uid;
struct proc *newproc;
- int ok;
+ int ok, s;
static int curfail = 0, pidchecked = 0;
static struct timeval lastfail;
struct forklist *ep;
@@ -544,10 +544,10 @@
*/
microtime(&(p2->p_stats->p_start));
p2->p_acflag = AFORK;
- (void) splhigh();
+ s = splhigh();
p2->p_stat = SRUN;
setrunqueue(p2);
- (void) spl0();
+ splx(s);
/*
* Now can be swapped.
More information about the freebsd-bugs
mailing list