Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/xen/xen when using two linked requests for I/O (i.e...



details:   https://anonhg.NetBSD.org/src/rev/2f6b8fdc125c
branches:  trunk
changeset: 935296:2f6b8fdc125c
user:      jdolecek <jdolecek%NetBSD.org@localhost>
date:      Mon Jun 29 21:45:50 2020 +0000

description:
when using two linked requests for I/O (i.e. when backend doesn't support
INDIRECT segments), make sure to clear req_bp for both of them

fixes a misfired assertion in BLKIF_OP_FLUSH_DISKCACHE - PR port-xen/55431

diffstat:

 sys/arch/xen/xen/xbd_xenbus.c |  7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diffs (35 lines):

diff -r 1b98d070c951 -r 2f6b8fdc125c sys/arch/xen/xen/xbd_xenbus.c
--- a/sys/arch/xen/xen/xbd_xenbus.c     Mon Jun 29 20:53:40 2020 +0000
+++ b/sys/arch/xen/xen/xbd_xenbus.c     Mon Jun 29 21:45:50 2020 +0000
@@ -1,4 +1,4 @@
-/*      $NetBSD: xbd_xenbus.c,v 1.127 2020/05/13 16:17:46 jdolecek Exp $      */
+/*      $NetBSD: xbd_xenbus.c,v 1.128 2020/06/29 21:45:50 jdolecek Exp $      */
 
 /*
  * Copyright (c) 2006 Manuel Bouyer.
@@ -50,7 +50,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xbd_xenbus.c,v 1.127 2020/05/13 16:17:46 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xbd_xenbus.c,v 1.128 2020/06/29 21:45:50 jdolecek Exp $");
 
 #include "opt_xen.h"
 
@@ -832,6 +832,7 @@
                }
 
                bp = xbdreq->req_bp;
+               xbdreq->req_bp = NULL;
                KASSERT(bp != NULL && bp->b_data != NULL);
                DPRINTF(("%s(%p): b_bcount = %ld\n", __func__,
                    bp, (long)bp->b_bcount));
@@ -887,7 +888,7 @@
 
                if (__predict_false(bp->b_data != xbdreq->req_data))
                        xbd_unmap_align(sc, xbdreq, true);
-               xbdreq->req_bp = xbdreq->req_data = NULL;
+               xbdreq->req_data = NULL;
 
                dk_done(&sc->sc_dksc, bp);
 



Home | Main Index | Thread Index | Old Index