NetBSD Problem Report #17178

Received: (qmail 7996 invoked by uid 605); 5 Jun 2002 22:55:36 -0000
Message-Id: <Pine.SOL.4.33.0206052339170.16383-100000@draco.cus.cam.ac.uk>
Date: Wed, 5 Jun 2002 23:55:34 +0100 (BST)
From: Ben Harris <bjh21@netbsd.org>
Sender: gnats-bugs-owner@netbsd.org
To: <gnats-bugs@gnats.netbsd.org>
Subject: Non-emulated page fault with intr_depth > 0 in seeq8005 driver

>Number:         17178
>Category:       port-acorn32
>Synopsis:       Non-emulated page fault with intr_depth > 0 in seeq8005 driver
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    bjh21
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jun 05 22:56:00 +0000 2002
>Closed-Date:    Fri Jun 07 10:26:02 +0000 2002
>Last-Modified:  Fri Jun 07 10:26:02 +0000 2002
>Originator:     Ben Harris
>Release:        1.6_BETA1 tgm build of 2002-05-25
>Organization:
>Environment:
Risc PC, SA110 CPU, RPC_WSCONS kernel

>Description:
While scp'ing my X sets to another machine, I got on the console:

Non-emulated page fault with intr_depth > 0
Data abort: 'Translation fault (page)' status=007 address=f3d34000 PC=f019f52c
Stopped in pid 855 (ssh) at	0xf019f52c:	ldrb	r12, [r1], #0x0001
db>

(gdb) info sym 0xf019f52c
outsw + 24 in section .text

Stack backtrace follows (frame contents elided to save my fingers):
0xf0038e0c (rlv=0xf0039d74) seeq8005_attach + 4996 in section .text
0xf0039d38 (rlv=0xf0039cc4) seeq8005_attach + 8880 in section .text
0xf0039af4 (rlv=0xf003a19c) seeq8005_attach + 8300 in section .text
0xf003a060 (rlv=0xf0039fe0) seeq8005intr + 440 in section .text
0xf0039eb4 (rlv=0xf01b2a60) seeq8005intr + 12 in section .text

Running "sync" from ddb gets me "panic: wddump: polled command has been
queued".

>How-To-Repeat:
Unknown, since I've only seen it this once.

>Fix:



>Release-Note:
>Audit-Trail:

From: Ben Harris <bjh21@netbsd.org>
To: <gnats-bugs@gnats.netbsd.org>
Cc:  
Subject: port-acorn32/17178: more knowledge
Date: Thu, 6 Jun 2002 11:23:37 +0100 (BST)

 I think that stack backtrace is actually:

 outsw
 ea_writebuf
 ea_writembuf
 ea_txpacket
 ea_txint
 seeq8005intr

 The fault occurs while reading the second byte of a pair, which means that
 outsw() must have been passed a non-16-bit-aligned pointer.  This probably
 means that ea_writebuf() got passed an odd-length, odd-address block which
 ended on a page boundary, rounded it up to an even size and hence tried to
 transfer a byte from an invalid page.  This would usually be caught by
 DIAGNOSTIC, but that's turned off in RPC_WSCONS kernels.

 I'll fix this by having ea_writebuf detect odd-address buffers and handle
 them more appropriately.

 -- 
 Ben Harris                                                   <bjh21@netbsd.org>
 Portmaster, NetBSD/acorn26           <URL:http://www.netbsd.org/Ports/acorn26/>

State-Changed-From-To: open->analyzed 
State-Changed-By: bjh21 
State-Changed-When: Thu Jun 6 03:27:15 PDT 2002 
State-Changed-Why:  
I think I know what's going on here. 


Responsible-Changed-From-To: port-acorn32-maintainer->bjh21 
Responsible-Changed-By: bjh21 
Responsible-Changed-When: Thu Jun 6 03:27:15 PDT 2002 
Responsible-Changed-Why:  
My driver; my problem. 
State-Changed-From-To: analyzed->closed 
State-Changed-By: bjh21 
State-Changed-When: Fri Jun 7 03:20:53 PDT 2002 
State-Changed-Why:  
Fixed by seeq8005.c rev 1.33. 
Pullup to 1.6 branch requested [pullup-1-6 #201]. 
>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.