From 2e939784fa01b2f0fb72804e06d498c30ca8ee37 Mon Sep 17 00:00:00 2001 From: jsg Date: Sat, 2 May 2015 14:33:19 +0000 Subject: [PATCH] add missing splx calls ok miod@ --- sys/arch/mips64/mips64/pmap.c | 3 ++- sys/arch/solbourne/solbourne/pmap.c | 11 +++++++---- sys/arch/vax/if/sgec.c | 3 ++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/sys/arch/mips64/mips64/pmap.c b/sys/arch/mips64/mips64/pmap.c index d109ce4896d..629e90bcf5c 100644 --- a/sys/arch/mips64/mips64/pmap.c +++ b/sys/arch/mips64/mips64/pmap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.c,v 1.78 2014/12/17 15:05:54 deraadt Exp $ */ +/* $OpenBSD: pmap.c,v 1.79 2015/05/02 14:33:19 jsg Exp $ */ /* * Copyright (c) 2001-2004 Opsycon AB (www.opsycon.se / www.opsycon.com) @@ -1610,6 +1610,7 @@ pmap_enter_pv(pmap_t pmap, vaddr_t va, vm_page_t pg, pt_entry_t *npte) */ for (npv = pv; npv; npv = npv->pv_next) { if (pmap == npv->pv_pmap && va == npv->pv_va) { + splx(s); return 0; } } diff --git a/sys/arch/solbourne/solbourne/pmap.c b/sys/arch/solbourne/solbourne/pmap.c index 99576c0a8e5..01ff1858299 100644 --- a/sys/arch/solbourne/solbourne/pmap.c +++ b/sys/arch/solbourne/solbourne/pmap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.c,v 1.9 2015/02/11 07:05:39 dlg Exp $ */ +/* $OpenBSD: pmap.c,v 1.10 2015/05/02 14:33:19 jsg Exp $ */ /* * Copyright (c) 2005, Miodrag Vallat * @@ -908,9 +908,10 @@ pmap_enter(struct pmap *pmap, vaddr_t va, paddr_t pa, vm_prot_t prot, int flags) if ((pte = pmap_grow_pte(pmap, va)) == NULL) { DPRINTF(PDB_ENTER, (" -> pmap_grow_pte failed\n")); - if (flags & PMAP_CANFAIL) + if (flags & PMAP_CANFAIL) { + splx(s); return (ENOMEM); - else + } else panic("pmap_enter: unable to allocate PT"); } @@ -1202,8 +1203,10 @@ pg_flushcache(struct vm_page *pg) s = splvm(); pvl = pg_to_pvl(pg); - if (pvl->pv_pmap == NULL) + if (pvl->pv_pmap == NULL) { + splx(s); return; + } /* * Since cache_flush_page() causes the whole cache to be flushed, diff --git a/sys/arch/vax/if/sgec.c b/sys/arch/vax/if/sgec.c index 64a77254b3c..22ce74a10b5 100644 --- a/sys/arch/vax/if/sgec.c +++ b/sys/arch/vax/if/sgec.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sgec.c,v 1.26 2015/03/28 11:24:25 mpi Exp $ */ +/* $OpenBSD: sgec.c,v 1.27 2015/05/02 14:33:19 jsg Exp $ */ /* $NetBSD: sgec.c,v 1.5 2000/06/04 02:14:14 matt Exp $ */ /* * Copyright (c) 1999 Ludd, University of Lule}, Sweden. All rights reserved. @@ -594,6 +594,7 @@ sgec_intr(sc) if (csr & ZE_NICSR5_ME) { printf("%s: memory error, resetting\n", sc->sc_dev.dv_xname); zeinit(sc); + splx(s); return (1); } -- 2.20.1