Module Name: src Committed By: christos Date: Sun Jan 21 17:58:43 UTC 2018
Modified Files: src/sys/uvm: uvm_physseg.c Log Message: CID-1427737: Pacify coverity using KASSERT To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/uvm/uvm_physseg.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/uvm/uvm_physseg.c diff -u src/sys/uvm/uvm_physseg.c:1.8 src/sys/uvm/uvm_physseg.c:1.9 --- src/sys/uvm/uvm_physseg.c:1.8 Sun Mar 19 19:30:39 2017 +++ src/sys/uvm/uvm_physseg.c Sun Jan 21 12:58:43 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_physseg.c,v 1.8 2017/03/19 23:30:39 riastradh Exp $ */ +/* $NetBSD: uvm_physseg.c,v 1.9 2018/01/21 17:58:43 christos Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -1147,10 +1147,10 @@ uvm_physseg_seg_alloc_from_slab(uvm_phys struct uvm_physseg *seg; struct vm_page *pgs = NULL; - seg = HANDLE_TO_PHYSSEG_NODE(upm); - KASSERT(pages > 0); + seg = HANDLE_TO_PHYSSEG_NODE(upm); + if (__predict_false(seg->ext == NULL)) { /* * This is a situation unique to boot time. @@ -1161,7 +1161,10 @@ uvm_physseg_seg_alloc_from_slab(uvm_phys */ KASSERT(uvm.page_init_done != true); - seg->ext = HANDLE_TO_PHYSSEG_NODE(uvm_physseg_get_prev(upm))->ext; + uvm_physseg_t upmp = uvm_physseg_get_prev(upm); + KASSERT(upmp != UVM_PHYSSEG_TYPE_INVALID); + + seg->ext = HANDLE_TO_PHYSSEG_NODE(upmp)->ext; KASSERT(seg->ext != NULL); }