NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-vax/49517: si driver has DMA problems



>Number:         49517
>Category:       port-vax
>Synopsis:       si driver has DMA problems
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-vax-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 30 21:10:00 +0000 2014
>Originator:     Martin Husemann
>Release:        NetBSD 7.99.2
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD  7.99.3 NetBSD 7.99.3 (GENERIC) #8: Tue Dec 30 19:18:41 CET 2014  martin%seven-days-to-the-wolves.aprisoft.de@localhost:/usr/obj/vax/usr/src/sys/arch/vax/compile/GENERIC vax
Architecture: vax
Machine: vax
>Description:

The NCR5380 driver seems to corrupt kernel memory on incoming (i.e. read)
transfers basically imediately. Random things happen (programs die, ...)
after a few transfers.

Forcing all IN operations to do PIO makes the system pretty much stable:

Index: ncr.c
===================================================================
RCS file: /cvsroot/src/sys/arch/vax/vsa/ncr.c,v
retrieving revision 1.48
diff -u -r1.48 ncr.c
--- ncr.c	14 Dec 2010 23:31:16 -0000	1.48
+++ ncr.c	30 Dec 2014 21:01:29 -0000
@@ -254,6 +254,9 @@
 	if (sr->sr_flags & SR_IMMED)
 		return;
 
+	if (!(xs->xs_control & XS_CTL_DATA_OUT))
+		return;
+
 	xlen = ncr_sc->sc_datalen;
 
 	/* Make sure our caller checked sc_min_dma_len. */


>How-To-Repeat:

Try to install on a MicroVax 3100 to a scsi disk.

>Fix:
n/a



Home | Main Index | Thread Index | Old Index