Module Name:    src
Committed By:   reinoud
Date:           Wed Jan 13 19:46:49 UTC 2021

Modified Files:
        src/sys/dev/pci: viomb.c

Log Message:
Fix for virtios viomb memory balloon driver. The inflate_done() and
deflate_done() issued a wrong extent to bus_dmamap_sync() giving rise to
panics on aarch64s mmio backend.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/dev/pci/viomb.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/dev/pci/viomb.c
diff -u src/sys/dev/pci/viomb.c:1.10 src/sys/dev/pci/viomb.c:1.11
--- src/sys/dev/pci/viomb.c:1.10	Tue Dec 10 18:00:17 2019
+++ src/sys/dev/pci/viomb.c	Wed Jan 13 19:46:49 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: viomb.c,v 1.10 2019/12/10 18:00:17 ad Exp $	*/
+/*	$NetBSD: viomb.c,v 1.11 2021/01/13 19:46:49 reinoud Exp $	*/
 
 /*
  * Copyright (c) 2010 Minoura Makoto.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: viomb.c,v 1.10 2019/12/10 18:00:17 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: viomb.c,v 1.11 2021/01/13 19:46:49 reinoud Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -341,7 +341,7 @@ inflate_done(struct viomb_softc *sc)
 	b = &sc->sc_req;
 	nvpages = b->bl_nentries;
 	bus_dmamap_sync(virtio_dmat(vsc), b->bl_dmamap,
-			offsetof(struct balloon_req, bl_pages),
+			0,
 			sizeof(uint32_t)*nvpages,
 			BUS_DMASYNC_POSTWRITE);
 	while (!TAILQ_EMPTY(&b->bl_pglist)) {
@@ -456,7 +456,7 @@ deflate_done(struct viomb_softc *sc)
 	b = &sc->sc_req;
 	nvpages = b->bl_nentries;
 	bus_dmamap_sync(virtio_dmat(vsc), b->bl_dmamap,
-			offsetof(struct balloon_req, bl_pages),
+			0,
 			sizeof(uint32_t)*nvpages,
 			BUS_DMASYNC_POSTWRITE);
 

Reply via email to