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

From: Jonathan Weiss (tomonage2_at_gmx.de)
Date: 02/29/04

  • Next message: Don Lewis: "Re: Mozilla Firefox and firebird problems after sat 022604 upgrade of FreeBSD-current"
    Date: Sun, 29 Feb 2004 22:10:05 +0100
    To: Scott Long <scottl@freebsd.org>, <freebsd-current@freebsd.org>
    
    

    > 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
    >>> @@ -1554,8 +1554,8 @@
    >>> 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

    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"


  • Next message: Don Lewis: "Re: Mozilla Firefox and firebird problems after sat 022604 upgrade of FreeBSD-current"

    Relevant Pages