NetBSD Problem Report #41813

From stix@stix.id.au  Tue Aug  4 12:41:02 2009
Return-Path: <stix@stix.id.au>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 5FCFA63BDF9
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  4 Aug 2009 12:41:02 +0000 (UTC)
Message-Id: <20090804112508.F1970614F@kitt.stix.org.au>
Date: Tue,  4 Aug 2009 21:25:07 +1000 (EST)
From: stix@stix.id.au
Reply-To: stix@stix.id.au
To: gnats-bugs@gnats.NetBSD.org
Subject: Real EIO being returned to userland as EFAULT
X-Send-Pr-Version: 3.95

>Number:         41813
>Category:       kern
>Synopsis:       Real EIO being returned to userland as EFAULT
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    chs
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Aug 04 12:45:00 +0000 2009
>Closed-Date:    Sun Mar 21 00:12:35 +0000 2010
>Last-Modified:  Sun Aug 08 18:20:02 +0000 2010
>Originator:     Paul Ripke
>Release:        NetBSD 5.99.15, HEAD 20090731T0002Z
>Organization:
>Environment:
System: NetBSD kitt.stix.org.au 5.99.15 NetBSD 5.99.15 (KITT) #0: Sun Aug 2 11:46:28 EST 2009 stix@hex.stix.org.au:/u/netbsd/20090731T0002/obj.mac68k/u/netbsd/20090731T0002/src/sys/arch/mac68k/compile/KITT mac68k

Architecture: m68k
Machine: mac68k
>Description:
I have some bad blocks on a SCSI disk. Doing a dd of a file with bad
blocks to /dev/null results in "dd: /u/misc.tgz: Bad address", meanwhile
SCSI media errors are logged to syslog. Surely this should return EIO,
not EFAULT?

Confirmed return code via ktrace:

$ dd if=/u/misc.tgz of=/dev/null bs=64k
...
11662      1 dd       read(0x3, 0x4201000, 0x10000) Err#14 EFAULT

It's also worth noting that a dd of the disk raw device returns EIO,
as expected.

>How-To-Repeat:
Read a file with a bad block.
>Fix:
Had a quick look to see where this is coming from, didn't find anything
obvious. I'm also not sure if this is architecture specific, although I
would think/hope not.

>Release-Note:

>Audit-Trail:
From: Chuck Silvers <chs@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/41813 CVS commit: src/sys
Date: Sat, 20 Mar 2010 23:31:31 +0000

 Module Name:	src
 Committed By:	chs
 Date:		Sat Mar 20 23:31:31 UTC 2010

 Modified Files:
 	src/sys/arch/acorn26/acorn26: except.c
 	src/sys/arch/alpha/alpha: trap.c
 	src/sys/arch/amiga/amiga: trap.c
 	src/sys/arch/atari/atari: trap.c
 	src/sys/arch/cesfic/cesfic: trap.c
 	src/sys/arch/hp300/hp300: trap.c
 	src/sys/arch/hp700/hp700: machdep.c
 	src/sys/arch/hppa/hppa: copy.S trap.c
 	src/sys/arch/luna68k/luna68k: trap.c
 	src/sys/arch/m68k/m68k: copy.s
 	src/sys/arch/mac68k/mac68k: trap.c
 	src/sys/arch/mips/mips: copy.S trap.c
 	src/sys/arch/mvme68k/mvme68k: trap.c
 	src/sys/arch/news68k/news68k: trap.c
 	src/sys/arch/next68k/next68k: trap.c
 	src/sys/arch/powerpc/ibm4xx: copyinstr.c copyoutstr.c genassym.cf
 	    trap.c
 	src/sys/arch/powerpc/oea: genassym.cf
 	src/sys/arch/powerpc/powerpc: setfault.S
 	src/sys/arch/sh3/sh3: exception.c locore_subr.S
 	src/sys/arch/sparc/sparc: trap.c
 	src/sys/arch/sparc64/sparc64: locore.s trap.c
 	src/sys/arch/sun2/sun2: trap.c
 	src/sys/arch/sun3/sun3: trap.c
 	src/sys/arch/vax/include: pcb.h
 	src/sys/arch/vax/vax: genassym.cf subr.S trap.c vm_machdep.c
 	src/sys/arch/x68k/x68k: trap.c
 	src/sys/lib/libkern/arch/hppa: bcopy.S

 Log Message:
 fix copy{in,out}{,str}() to return the error returned by uvm_fault().
 fixes PR 41813.


 To generate a diff of this commit:
 cvs rdiff -u -r1.23 -r1.24 src/sys/arch/acorn26/acorn26/except.c
 cvs rdiff -u -r1.121 -r1.122 src/sys/arch/alpha/alpha/trap.c
 cvs rdiff -u -r1.127 -r1.128 src/sys/arch/amiga/amiga/trap.c
 cvs rdiff -u -r1.105 -r1.106 src/sys/arch/atari/atari/trap.c
 cvs rdiff -u -r1.49 -r1.50 src/sys/arch/cesfic/cesfic/trap.c
 cvs rdiff -u -r1.141 -r1.142 src/sys/arch/hp300/hp300/trap.c
 cvs rdiff -u -r1.80 -r1.81 src/sys/arch/hp700/hp700/machdep.c
 cvs rdiff -u -r1.15 -r1.16 src/sys/arch/hppa/hppa/copy.S
 cvs rdiff -u -r1.79 -r1.80 src/sys/arch/hppa/hppa/trap.c
 cvs rdiff -u -r1.61 -r1.62 src/sys/arch/luna68k/luna68k/trap.c
 cvs rdiff -u -r1.41 -r1.42 src/sys/arch/m68k/m68k/copy.s
 cvs rdiff -u -r1.139 -r1.140 src/sys/arch/mac68k/mac68k/trap.c
 cvs rdiff -u -r1.8 -r1.9 src/sys/arch/mips/mips/copy.S
 cvs rdiff -u -r1.221 -r1.222 src/sys/arch/mips/mips/trap.c
 cvs rdiff -u -r1.99 -r1.100 src/sys/arch/mvme68k/mvme68k/trap.c
 cvs rdiff -u -r1.61 -r1.62 src/sys/arch/news68k/news68k/trap.c
 cvs rdiff -u -r1.78 -r1.79 src/sys/arch/next68k/next68k/trap.c
 cvs rdiff -u -r1.8 -r1.9 src/sys/arch/powerpc/ibm4xx/copyinstr.c \
     src/sys/arch/powerpc/ibm4xx/copyoutstr.c
 cvs rdiff -u -r1.16 -r1.17 src/sys/arch/powerpc/ibm4xx/genassym.cf
 cvs rdiff -u -r1.54 -r1.55 src/sys/arch/powerpc/ibm4xx/trap.c
 cvs rdiff -u -r1.15 -r1.16 src/sys/arch/powerpc/oea/genassym.cf
 cvs rdiff -u -r1.5 -r1.6 src/sys/arch/powerpc/powerpc/setfault.S
 cvs rdiff -u -r1.54 -r1.55 src/sys/arch/sh3/sh3/exception.c
 cvs rdiff -u -r1.52 -r1.53 src/sys/arch/sh3/sh3/locore_subr.S
 cvs rdiff -u -r1.181 -r1.182 src/sys/arch/sparc/sparc/trap.c
 cvs rdiff -u -r1.327 -r1.328 src/sys/arch/sparc64/sparc64/locore.s
 cvs rdiff -u -r1.160 -r1.161 src/sys/arch/sparc64/sparc64/trap.c
 cvs rdiff -u -r1.38 -r1.39 src/sys/arch/sun2/sun2/trap.c
 cvs rdiff -u -r1.137 -r1.138 src/sys/arch/sun3/sun3/trap.c
 cvs rdiff -u -r1.12 -r1.13 src/sys/arch/vax/include/pcb.h
 cvs rdiff -u -r1.44 -r1.45 src/sys/arch/vax/vax/genassym.cf
 cvs rdiff -u -r1.29 -r1.30 src/sys/arch/vax/vax/subr.S
 cvs rdiff -u -r1.122 -r1.123 src/sys/arch/vax/vax/trap.c
 cvs rdiff -u -r1.111 -r1.112 src/sys/arch/vax/vax/vm_machdep.c
 cvs rdiff -u -r1.98 -r1.99 src/sys/arch/x68k/x68k/trap.c
 cvs rdiff -u -r1.10 -r1.11 src/sys/lib/libkern/arch/hppa/bcopy.S

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

Responsible-Changed-From-To: kern-bug-people->chs
Responsible-Changed-By: chs@NetBSD.org
Responsible-Changed-When: Sun, 21 Mar 2010 00:12:35 +0000
Responsible-Changed-Why:
I took care of this.


State-Changed-From-To: open->closed
State-Changed-By: chs@NetBSD.org
State-Changed-When: Sun, 21 Mar 2010 00:12:35 +0000
State-Changed-Why:
fixed.


From: Chuck Silvers <chs@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/41813 CVS commit: src/sys/arch/ia64/ia64
Date: Sun, 8 Aug 2010 18:18:58 +0000

 Module Name:	src
 Committed By:	chs
 Date:		Sun Aug  8 18:18:58 UTC 2010

 Modified Files:
 	src/sys/arch/ia64/ia64: support.S

 Log Message:
 fix copy{in,out}{,str}() to return the error returned by uvm_fault().
 part of PR 41813 that I missed earlier.


 To generate a diff of this commit:
 cvs rdiff -u -r1.5 -r1.6 src/sys/arch/ia64/ia64/support.S

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>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.