Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Jan 1996 12:31:01 +0100 (MET)
From:      J Wunsch <j@uriah.heep.sax.de>
To:        amora@obelix.cica.es (Jesus A. Mora Marin)
Cc:        bugs@FreeBSD.org, uhclem@nemesis.lonestar.org
Subject:   Re: Jesus' matcd problem
Message-ID:  <199601301131.MAA13737@uriah.heep.sax.de>
In-Reply-To: <199601292101.WAA02694@obelix.cica.es> from "Jesus A. Mora Marin" at Jan 29, 96 10:01:53 pm

next in thread | previous in thread | raw e-mail | index | archive | help
As Jesus A. Mora Marin wrote:
> 
> Thomas Graichen (graichen@omega.physik.fu-berlin.de) said:
> > is this a joke or truth ... ?
> 
> I like jokes, but also DO hate to waste bandwith just for hoaxing. Sending
> endless bug reports causes me no ethical concerns :)

And we love people like you who provide us with detailed bug reports.
But you knew that. :-)

> > Does the crash occur with the GENERIC kernel, ie, the one that
> > came on the CD-ROM?  If that version also crashes, it will help
> > eliminate the numerous differences between the GENERIC kernel and
> > your custom kernel.
> 
> Yes. It happens all the time. I've seen it with kernel.GENERIC, ...

>  Fatal trap 12: page fault while in kernel mode
>  fault virtual address = 0xf1dff000
>  fault code            = supervisor write, page not present
>  instruction pointer   = 0x8:0xf01cffce
>  code segment          = base 0x0, limit 0xfffff, type 0x1b
>                        = DPL 0, pres 1, def32 1, gran 1
>  processor eflags      = interrupt enabled, resume, IOPL=0
>  current process       = Idle
>  interrupt mask        =
>  panic: page fault

Now, that was detailed enough, i think.  It happens here:

                case    STEN:           /*DTEN=L STEN=H*/
                case    0:              /*DTEN=L STEN=L*/
#ifdef DEBUGIO
                        printf("matcd%d: Data Phase\n",ldrive);
#endif /*DEBUGIO*/
                        addr=bp->b_un.b_addr + mbx->skip;
#ifdef DEBUGIO
                        printf("matcd%d: Xfer Addr %x  size %x",
                               ldrive,(unsigned int)addr,mbx->sz);
                        i=0;                    /*<20>Reset read count*/
#endif /*DEBUGIO*/
                        if (iftype==0) {        /*<20>Creative host I/F*/
                                outb(port+PHASE,1);     /*Enable data read*/
                                while((inb(port+STATUS) &
                                      (DTEN|STEN))==STEN) {/*<19>*/
                                        *addr++=inb(port+DATA);
                                        ^^^^^^^^^^^^^^^^^^^^^^^
#ifdef  DEBUGIO
                                        i++;
#endif /*DEBUGIO*/
                                }
                                outb(port+PHASE,0);     /*Disable read*/

Frank, any clues?

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199601301131.MAA13737>