Module Name: src Committed By: ragge Date: Sun Mar 22 20:27:47 UTC 2020
Modified Files: src/sys/arch/vax/vsa: ncr.c Log Message: Do not expect a struct buf to be present if doing DMA to kernel space. Fixes bug reported by sadness on port-vax. To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 src/sys/arch/vax/vsa/ncr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/vax/vsa/ncr.c diff -u src/sys/arch/vax/vsa/ncr.c:1.49 src/sys/arch/vax/vsa/ncr.c:1.50 --- src/sys/arch/vax/vsa/ncr.c:1.49 Mon Sep 3 16:29:28 2018 +++ src/sys/arch/vax/vsa/ncr.c Sun Mar 22 20:27:47 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ncr.c,v 1.49 2018/09/03 16:29:28 riastradh Exp $ */ +/* $NetBSD: ncr.c,v 1.50 2020/03/22 20:27:47 ragge Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -42,7 +42,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ncr.c,v 1.49 2018/09/03 16:29:28 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ncr.c,v 1.50 2020/03/22 20:27:47 ragge Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -275,7 +275,11 @@ found: dh->dh_flags = SIDH_BUSY; dh->dh_addr = ncr_sc->sc_dataptr; dh->dh_len = xlen; - dh->dh_proc = xs->bp->b_proc; + if (((vaddr_t)ncr_sc->sc_dataptr & KERNBASE) == 0) { + if (xs->bp == NULL) + panic("si_dma_alloc"); + dh->dh_proc = xs->bp->b_proc; + } /* Remember dest buffer parameters */ if (xs->xs_control & XS_CTL_DATA_OUT)