From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rhirst.linuxcare.com (pc2-hems4-0-cust95.bre.cable.ntl.com [213.107.176.95]) by dsl2.external.hp.com (Postfix) with ESMTP id 0CC59482A for ; Mon, 11 Jun 2001 10:08:03 -0600 (MDT) Received: by rhirst.linuxcare.com (Postfix, from userid 501) id 2C410B007; Mon, 11 Jun 2001 17:03:54 +0100 (BST) Date: Mon, 11 Jun 2001 17:03:54 +0100 From: Richard Hirst To: Peter Weilbacher , Helge Deller Cc: parisc-linux@lists.parisc-linux.org Subject: Re: [parisc-linux] Re: Kernel faults on boot Message-ID: <20010611170354.L16532@linuxcare.com> References: <20010610140927.C16532@linuxcare.com> <20010611131636.H16532@linuxcare.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <20010611131636.H16532@linuxcare.com>; from rhirst@linuxcare.com on Mon, Jun 11, 2001 at 01:16:36PM +0100 List-ID: Just tried my new installer that tries to run the second stage installer automatically on reboot. Crashed the kernel in kfree(), called from vc_resize() again. I'm guessing there is something screwy about the screenbuf allocation. Possibly due to the first ones being allocated from the bootmem allocator? Richard On Mon, Jun 11, 2001 at 01:16:36PM +0100, Richard Hirst wrote: > On Mon, Jun 11, 2001 at 01:17:39PM +0200, Peter Weilbacher wrote: > > Hmm, it seems that the numbers change every time, but here are the > > ones from the last instance: > > > > Kernel Fault: Code=15 regs=1051ca80 (Addr=1dc0ce18) > > > > YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI > > PSW: 00000000000001000000000000001111 > > r0-3o 00000000 10236000 10193d70 1dc0cd18 > > r4-7o 146fc000 102fe13c 00000001 00000100 > > r8-11o 4020b1a8 00000000 00000004 146ff000 > > r12-15o 00000100 00000030 00003000 102fe138 > > r16-19o 00000080 1051c908 00000001 14786000 > > r20-23o 146fc000 102959f8 101da1d4 00000000 > > r24-27o 000000ff 1dc0ce18 146fc000 10268010 > > r28-31o 00001920 00000004 1051ccc0 10192c78 > > sr0-3o 00000000 0000012a 00000000 0000012a > > sr4-7o 00000000 00000000 00000000 00000000 > > > > IASQ: 00000000 00000000 IAOQ: 10236234 10236238 > > IIR: 0f221033 ISR: 00000000 IOR: 1dc0ce18 > > ORIG_R28: 1005f210 > > > > Phew, quite a work to type all this stuff, I am glad that you are > > not interested in the stack... Perhaps this is useful. > > The 'o' chars are actually tabs, which are supposed to make the register > dump line up. > > IAOQ is the most important. You can look up the value in the > sti/sys_map file on the CD: > > ... > 10236204 T bcopy > 10236228 T memcpy > 1023624c T memmove > ... > > so it crashed in memcpy. r2 is often the return address, so back to sys_map: > > ... > 10193a98 T vc_allocate > 10193bc8 T vc_resize > 10193ed8 t .L1003 > 10193f40 t .L1043 > 10193fcc T vc_disallocate > ... > > looks like memcpy was called from vc_resize(). > > r236,r25,r24,r23 are the call params, if they havn't been overwritten. > > memcpy() disassembles as > > 00000000 : > 0: 37 18 3f ff ldo -1(r24),r24 > 4: 87 1f 20 20 cmpib,= -1,r24,1c > 8: 08 1a 02 54 copy r26,r20 > c: 0f 22 10 33 ldb,ma 1(sr0,r25),r19 > 10: 37 18 3f ff ldo -1(r24),r24 > 14: 8f 1f 3f e5 cmpib,<> -1,r24,c > 18: 0e 93 12 22 stb,ma r19,1(sr0,r20) > 1c: e8 40 c0 00 bv r0(rp) > 20: 08 1a 02 5c copy r26,ret0 > > r26 = r20, so it failed on the first byte of the move, so call was > > memcpy(0x146fc000,0x1dc0ce18,0x100); > > with 0x1dc0ce18 being an invalid address. > > I guess that comes from this loop in drivers/char/screen.c: > > while (ol < scr_end) { > scr_memcpyw((unsigned short *) nl, (unsigned short *) ol, rlth); > if (rrem) > scr_memsetw((void *)(nl + rlth), video_erase_char, rrem); > ol += osr; > nl += sr; > } > > > At this point I'll stop and hope Helge can comment... > > > > In the meantime I noticed that about every 6th time it boots up > > without crashing, but the keyboard setting from the installation > > (German) was obviously not saved. > > Correct, keyboard config is broken in the release sti image. If you > manage to boot you could try > > mv /bin/loadkeys /bin/loadkeys.old > mv /bin/dumpkeys /bin/dumpkeys.old > mv /etc/console-tools /etc/console-tools.old > apt-get install console-data console-common console-tools console-tools-libs > > > If that works, let me know and I'll add it to the errata. > > Richard >