Re: mlx driver related kernel panic in Freebsd 5.2.1-RELEASE

From: Patrick Hurrelmann <outi_at_outi.echsi.de>
Date: Mon, 01 Mar 2004 11:30:10 +0100
Jonathan Weiss wrote:

>>Jonathan Weiss wrote:
>>
>>>>Jonathan Weiss wrote:
>>>>
>>>>
>>>>>>>OK, I seem to be able to get FreeBSD 5.2.1-RELEASE to reliably panic with
>>>>>>>a "panic: free: address 0xd8d5e000(0xd8d5e000) has not been allocated."
>>>>>>>on
>>>>>>>the serial console when it crashes.
>>>>>>>
>>>>>>>I'm doing two copies of the entire ports collection to seperate
>>>>>>>subdirectories when the crash occurs. It seems to do this regardless of
>>>>>>>
>>>>>>>The machine is an IBM Netfinity 5500 with 4 x 550Mhz P3 Xeon CPUS, 2gigs
>>>>>>>of ram and a Mylex DAC1100 RAID controller. There are 6 73G disks
>>>>>>>attached
>>>>>>>to channel 0 of the controller, 5 disks are in a RAID 5 array, the sixth
>>>>>>>is a hot spare.
>>>>>>>
>>>>>>>Any ideas?
>>>>>>
>>>>>>I see the same here with my p2 400 and a Mylex DAC960PL and 5x4,5 GB HDDs.
>>>>>>Installing 5.2.1-RC2 fails with the same panic.
>>>>>>5.1 worked flawlessly.
>>>>>>
>>>>>>Jonathan Weiss
>>>>>
>>>>>
>>>>>Sorry for replying to myself, but I tried a snapshot (28/2/04) and got the
>>>>>same panic. Installing 5.1 is working and until the end of january I also
>>>>>had current without problems on this machine. I am not sure, but I think
>>>>>that i also had 5.2.1-RC1 on this machine without problems, so the problem
>>>>>may be introduced not long ago.
>>>>>
>>>>>Thank you,
>>>>>Jonathan Weiss
>>>>>
>>>>
>>>>Can you try the attached patch?
>>>>
>>>>Scott
>>>>
>>>>Index: mlx.c
>>>>===================================================================
>>>>RCS file: /usr/ncvs/src/sys/dev/mlx/mlx.c,v
>>>>retrieving revision 1.44
>>>>diff -u -r1.44 mlx.c
>>>>--- mlx.c    22 Feb 2004 09:52:46 -0000    1.44
>>>>+++ mlx.c    28 Feb 2004 17:48:59 -0000
>>>>_at__at_ -1554,8 +1554,8 _at__at_
>>>>  if ((mc->mc_complete == NULL) && (mc != NULL))
>>>>mlx_releasecmd(mc);
>>>>  /* we got an error, and we allocated a result */
>>>>-    if ((error != 0) && (mc->mc_data != NULL)) {
>>>>-    free(mc->mc_data, M_DEVBUF);
>>>>+    if ((error != 0) && (result != NULL)) {
>>>>+    free(result, M_DEVBUF);
>>>>mc->mc_data = NULL;
>>>>  }
>>>>  return(result);
>>>>
>>>
>>>
>>>I tried the patch, but i still get the same panic :-(
>>>
>>>Maybe i did something wrong because it was the first time I built a release.
>>>I cvsupped the cvs-tree to /home/ncvs with the
>>>/usr/share/examples/cvsup/cvs-supfile, apllied your patch to
>>>/home/ncvs/src/sys/dev/mlx/mlx.c,v. Then a checked src out from /home/ncvs
>>>to /usr/src and did a buildworld.
>>>
>>>After building the world, I did:
>>>
>>>Cd release
>>>make release CHROOTDIR=/home/mille/release BUILDNAME=5.2-MLX
>>>CVSROOT=/home/ncvs MAKE_ISOS=yes NODOC=yes NO_FLOPPIES=yes NOPORTREADMES=yes
>>>NOPORTS=yes
>>>
>>>I then burned the miniinst.iso from /home/ncvs/release/R/cdrom.
>>>
>>>Were these steps correct?
>>>
>>>Thank you,
>>>Jonathan 
>>>
>>>
>>
>>Editing the repo by hand is generally not a good idea ;-)  Patches can
>>be inserted into the release build process via the LOCAL_PATCHES
>>variable in /usr/src/release/Makefile.  The patchfile needs to be
>>relative to /usr/src, IIRC, so you would have to make a minor change to
>>the patch that I sent out.  In any case, you should look in
>>/home/mille/release/usr/src/sys/dev/mlx/mlx.c to see if it contains the
>>changed lines.  If so, then I'm rather surprised that the panic still
>>happens in the same place.
>>
>>Scott
> 
> 
> Hi Scott,
> 
> 
> First, thank you for your help :-)
> When I type 1554G im vi /home/mille/release/src/sys/dev/mlx/mlx.c I get:
> 
>  out:
>     /* we got a command, but nobody else will free it */
>     if ((mc->mc_complete == NULL) && (mc != NULL))
>         mlx_releasecmd(mc);
>     /* we got an error, and we allocated a result */
>     if ((error != 0) && (result != NULL)) {
>         free(result, M_DEVBUF);
>         mc->mc_data = NULL;
>     }
>     return(result);
> 
> So I think, that you changes are included. If i understand you right, in
> general I should not apply the patch to my cvs-tree but to a checket out
> version? But the file named in the patchfile was the mlx.c,v , so i thought
> that i should patch the file in the repository.
> 
> Was it also possible to patch the checked out file with this patch? Or was
> it needed to change it?
> 
> You said, that I should change the patch file to be relative to /usr/src,
> which part should have been changed? The RCS file:
> /usr/ncvs/src/sys/dev/mlx/mlx.c,v? Into what?
> 
> 
> Sorry for so many questions but i not very familliar with RCS/CVS and I am
> Trying to learn it.
> 
> Anyway, I still get the panic with your patch and I think that I applied I
> correctly (I hope).
> 
> 
> Thank you,
> Jonathan Weiss
> 

I just saw, that a patch was published. i will try this patch, when i'm
back at home. although i don't know to patch exactly as it crashes
during install. (i'm new to freebsd and don't have the proper knowledge
yet :( ).
can i patch install with an additional disk? or can somebody tell me how
to patch an installation routine?
Received on Mon Mar 01 2004 - 01:30:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:45 UTC