Subject: kern/36045: file corruption on USB umass transfer errors
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <reinoud@NetBSD.org>
List: netbsd-bugs
Date: 03/19/2007 16:40:00
>Number:         36045
>Category:       kern
>Synopsis:       file corruption on USB umass transfer errors
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 19 16:40:00 +0000 2007
>Originator:     Reinoud Zandijk
>Release:        NetBSD 4.99.15
>Organization:
NetBSD
	
>Environment:
System: NetBSD heethoofdje.kasbah 4.99.15 NetBSD 4.99.15 (GENERIC) #16: Mon Mar 19 16:29:25 CET 2007  reinoud@heethoofdje.kasbah:/usr/sources/cvs.netbsd.org/src/sys/arch/i386/compile/GENERIC 
i386
Architecture: i386
Machine: i386
>Description:
When connecting to an Canon Cybershot DSC-T7 and mount the umass device it exports :

uhub2: ATI Technologies EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
umass0 at uhub2 port 2 configuration 1 interface 0
umass0: Sony Sony DSC, rev 2.00/5.00, addr 2
umass0: using RBC over CBI
scsibus0 at umass0: 2 targets, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <Sony, Sony DSC, 6.00> disk removable
sd0: fabricating a geometry
sd0: 236 MB, 236 cyl, 64 head, 32 sec, 512 bytes/sect x 483328 sectors
sd0: fabricating a geometry

and copy files from it it transfers the files fast but with a few errors at 
aprox. one every 2 or 3 transfers :

sd0(umass0:0:0:0): generic HBA error

The result is however *NOT* a EIO error as scsipi_complete() would suggest 
but a corrupted file. I've only seen it *once* return an EIO error. When 
transfering the same set of files again and again (with remounting in 
between to defeat the caching) the files are different; diffing them 
reveals that at one time a whole block at offset 0x48000-0x50000 was 
damaged/different.

	
>How-To-Repeat:
Just plug the device in, mount it and copy files.
	
>Fix:
	
No idea...