summaryrefslogtreecommitdiff
path: root/usr/src/uts/common
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2019-12-30 15:05:56 +0200
committerToomas Soome <tsoome@me.com>2020-03-16 08:57:02 +0200
commit584b574a3b16c6772c8204ec1d1c957c56f22a87 (patch)
treec9bfd155a2c2edf14608a4ee0d1b328680cde6d8 /usr/src/uts/common
parent34a4e6b53d2e6f2605fd77cda5b161201d7d0f20 (diff)
downloadillumos-joyent-584b574a3b16c6772c8204ec1d1c957c56f22a87.tar.gz
12174 i86pc: variable may be used uninitialized
Reviewed by: John Levon <john.levon@joyent.com> Reviewed by: Andrew Stormont <astormont@racktopsystems.com> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/uts/common')
-rw-r--r--usr/src/uts/common/disp/cmt.c4
-rw-r--r--usr/src/uts/common/io/ppm/ppm.c16
-rw-r--r--usr/src/uts/common/krtld/kobj.c11
-rw-r--r--usr/src/uts/common/os/bp_map.c5
-rw-r--r--usr/src/uts/common/os/lgrp.c7
-rw-r--r--usr/src/uts/common/os/mem_config.c6
-rw-r--r--usr/src/uts/common/sys/kobj_impl.h2
-rw-r--r--usr/src/uts/common/vm/vm_pagelist.c30
-rw-r--r--usr/src/uts/common/xen/io/xpvd.c10
9 files changed, 56 insertions, 35 deletions
diff --git a/usr/src/uts/common/disp/cmt.c b/usr/src/uts/common/disp/cmt.c
index 0196b15dae..fd734bd229 100644
--- a/usr/src/uts/common/disp/cmt.c
+++ b/usr/src/uts/common/disp/cmt.c
@@ -1353,7 +1353,7 @@ cmt_pad_disable(pghw_type_t type)
/* ARGSUSED */
static void
cmt_ev_thread_swtch(pg_t *pg, cpu_t *cp, hrtime_t now, kthread_t *old,
- kthread_t *new)
+ kthread_t *new)
{
pg_cmt_t *cmt_pg = (pg_cmt_t *)pg;
@@ -1747,6 +1747,8 @@ pg_cmt_lineage_validate(pg_cmt_t **lineage, int *sz, cpu_pg_t *pgdata)
lgrp_handle_t lgrp;
ASSERT(MUTEX_HELD(&cpu_lock));
+ pg = NULL;
+ pg_next = NULL;
revalidate:
size = *sz;
diff --git a/usr/src/uts/common/io/ppm/ppm.c b/usr/src/uts/common/io/ppm/ppm.c
index c53f1d723b..0e5c45e466 100644
--- a/usr/src/uts/common/io/ppm/ppm.c
+++ b/usr/src/uts/common/io/ppm/ppm.c
@@ -764,9 +764,10 @@ ppm_ctlops(dev_info_t *dip, dev_info_t *rdip,
ppm_owned_t *owned;
int mode;
int ret = DDI_SUCCESS;
- int *res = (int *)result;
+ int *res = (int *)result;
s3a_t s3args;
+ domp = NULL;
#ifdef DEBUG
char *str = "ppm_ctlops";
int mask = ppm_debug & (D_CTLOPS1 | D_CTLOPS2);
@@ -827,6 +828,9 @@ ppm_ctlops(dev_info_t *dip, dev_info_t *rdip,
ppmd = ppm_get_dev(rdip, domp);
}
+ if (domp == NULL)
+ return (DDI_FAILURE);
+
PPMD(D_LOCKS, ("ppm_lock_%s: %s, %s\n",
(domp->dflags & PPMD_LOCK_ALL) ? "all" : "one",
ppmd->path, ppm_get_ctlstr(reqp->request_type, D_LOCKS)))
@@ -840,14 +844,17 @@ ppm_ctlops(dev_info_t *dip, dev_info_t *rdip,
case PMR_PPM_POWER_LOCK_OWNER:
ASSERT(reqp->req.ppm_power_lock_owner_req.who == rdip);
ppmd = PPM_GET_PRIVATE(rdip);
- if (ppmd)
+ if (ppmd) {
domp = ppmd->domp;
- else {
+ } else {
domp = ppm_lookup_dev(rdip);
ASSERT(domp);
ppmd = ppm_get_dev(rdip, domp);
}
+ if (domp == NULL)
+ return (DDI_FAILURE);
+
/*
* In case of LOCK_ALL, effective owner of the power lock
* is the owner of the domain lock. otherwise, it is the owner
@@ -1400,6 +1407,9 @@ ppm_cpr_callb(void *arg, int code)
mutex_exit(&ppm_cpr_window_lock);
break;
+ default:
+ ret = DDI_SUCCESS;
+ break;
}
return (ret == DDI_SUCCESS);
diff --git a/usr/src/uts/common/krtld/kobj.c b/usr/src/uts/common/krtld/kobj.c
index 3ed867f0bf..8f2b885149 100644
--- a/usr/src/uts/common/krtld/kobj.c
+++ b/usr/src/uts/common/krtld/kobj.c
@@ -1176,7 +1176,6 @@ bind_primary(val_t *bootaux, int lmid)
if (mp->flags & KOBJ_EXEC) {
Dyn *dyn;
Word relasz = 0, relaent = 0;
- Word shtype;
char *rela = NULL;
for (dyn = (Dyn *)bootaux[BA_DYNAMIC].ba_ptr;
@@ -1191,11 +1190,9 @@ bind_primary(val_t *bootaux, int lmid)
relaent = dyn->d_un.d_val;
break;
case DT_RELA:
- shtype = SHT_RELA;
rela = (char *)dyn->d_un.d_ptr;
break;
case DT_REL:
- shtype = SHT_REL;
rela = (char *)dyn->d_un.d_ptr;
break;
}
@@ -1212,8 +1209,8 @@ bind_primary(val_t *bootaux, int lmid)
_kobj_printf(ops, "krtld: relocating: file=%s "
"KOBJ_EXEC\n", mp->filename);
#endif
- if (do_relocate(mp, rela, shtype, relasz/relaent,
- relaent, (Addr)mp->text) < 0)
+ if (do_relocate(mp, rela, relasz/relaent, relaent,
+ (Addr)mp->text) < 0)
return (-1);
} else {
if (do_relocations(mp) < 0)
@@ -2103,6 +2100,7 @@ kobj_load_primary_module(struct modctl *modp)
if (kobj_load_module(modp, 0) != 0)
return (-1);
+ dep = NULL;
mp = modp->mod_mp;
mp->flags |= KOBJ_PRIM;
@@ -2118,7 +2116,8 @@ kobj_load_primary_module(struct modctl *modp)
return (-1);
}
- add_dependent(mp, dep->mod_mp);
+ if (dep != NULL)
+ add_dependent(mp, dep->mod_mp);
/*
* Relocate it. This module may not be part of a link map, so we
diff --git a/usr/src/uts/common/os/bp_map.c b/usr/src/uts/common/os/bp_map.c
index 0fd5a5d216..b031514095 100644
--- a/usr/src/uts/common/os/bp_map.c
+++ b/usr/src/uts/common/os/bp_map.c
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/sysmacros.h>
#include <sys/systm.h>
@@ -94,6 +92,7 @@ bp_mapin_common(struct buf *bp, int flag)
pgcnt_t npages;
int color;
+ as = NULL;
/* return if already mapped in, no pageio/physio, or physio to kas */
if ((bp->b_flags & B_REMAPPED) ||
!(bp->b_flags & (B_PAGEIO | B_PHYS)) ||
@@ -283,8 +282,8 @@ bp_copy_common(bp_copydir_t dir, struct buf *bp, void *driverbuf,
page_t *pp;
pfn_t pfn;
-
ASSERT((offset + size) <= bp->b_bcount);
+ as = NULL;
/* if the buf_t already has a KVA, just do a bcopy */
if (!(bp->b_flags & (B_PHYS | B_PAGEIO))) {
diff --git a/usr/src/uts/common/os/lgrp.c b/usr/src/uts/common/os/lgrp.c
index d8039f1a1f..f3404a1cdf 100644
--- a/usr/src/uts/common/os/lgrp.c
+++ b/usr/src/uts/common/os/lgrp.c
@@ -848,6 +848,7 @@ lgrp_create(void)
int i;
ASSERT(!lgrp_initialized || MUTEX_HELD(&cpu_lock));
+ lgrpid = 0;
/*
* Find an open slot in the lgroup table and recycle unused lgroup
@@ -1346,6 +1347,10 @@ lgrp_mem_init(int mnode, lgrp_handle_t hand, boolean_t is_copy_rename)
klgrpset_add(changed, lgrp->lgrp_id);
count++;
}
+ } else {
+ if (drop_lock)
+ mutex_exit(&cpu_lock);
+ return;
}
/*
@@ -3570,6 +3575,8 @@ lgrp_shm_policy_get(struct anon_map *amp, ulong_t anon_index, vnode_t *vp,
avl_tree_t *tree;
avl_index_t where;
+ shm_locality = NULL;
+ tree = NULL;
/*
* Get policy segment tree from anon_map or vnode and use specified
* anon index or vnode offset as offset
diff --git a/usr/src/uts/common/os/mem_config.c b/usr/src/uts/common/os/mem_config.c
index 3571747e9c..c1a769d04d 100644
--- a/usr/src/uts/common/os/mem_config.c
+++ b/usr/src/uts/common/os/mem_config.c
@@ -144,7 +144,7 @@ kphysm_add_memory_dynamic(pfn_t base, pgcnt_t npgs)
void *mapva;
void *metabase = (void *)base;
pgcnt_t nkpmpgs = 0;
- offset_t kpm_pages_off;
+ offset_t kpm_pages_off = 0;
cmn_err(CE_CONT,
"?kphysm_add_memory_dynamic: adding %ldK at 0x%" PRIx64 "\n",
@@ -410,7 +410,7 @@ mapalloc:
*
* If a memseg is reused, invalidate memseg pointers in
* all cpu vm caches. We need to do this this since the check
- * pp >= seg->pages && pp < seg->epages
+ * pp >= seg->pages && pp < seg->epages
* used in various places is not atomic and so the first compare
* can happen before reuse and the second compare after reuse.
* The invalidation ensures that a memseg is not deferenced while
@@ -2642,7 +2642,7 @@ kphysm_del_cleanup(struct mem_handle *mhp)
{
struct memdelspan *mdsp;
struct memseg *seg;
- struct memseg **segpp;
+ struct memseg **segpp;
struct memseg *seglist;
pfn_t p_end;
uint64_t avmem;
diff --git a/usr/src/uts/common/sys/kobj_impl.h b/usr/src/uts/common/sys/kobj_impl.h
index 8b3ce3fdeb..a8488365b9 100644
--- a/usr/src/uts/common/sys/kobj_impl.h
+++ b/usr/src/uts/common/sys/kobj_impl.h
@@ -164,7 +164,7 @@ extern void kobj_init(void *romvec, void *dvec,
extern int kobj_notify_add(kobj_notify_list_t *);
extern int kobj_notify_remove(kobj_notify_list_t *);
extern int do_relocations(struct module *);
-extern int do_relocate(struct module *, char *, Word, int, int, Addr);
+extern int do_relocate(struct module *, char *, int, int, Addr);
extern struct bootops *ops;
extern void exitto(caddr_t);
extern void kobj_sync_instruction_memory(caddr_t, size_t);
diff --git a/usr/src/uts/common/vm/vm_pagelist.c b/usr/src/uts/common/vm/vm_pagelist.c
index f494c3d2b4..950b142588 100644
--- a/usr/src/uts/common/vm/vm_pagelist.c
+++ b/usr/src/uts/common/vm/vm_pagelist.c
@@ -318,16 +318,16 @@ static int mnode_maxmrange[MAX_MEM_NODES];
#define PAGE_COUNTERS(mnode, rg_szc, idx) \
(page_counters[(rg_szc)][(mnode)].hpm_counters[(idx)])
-#define PAGE_COUNTERS_COUNTERS(mnode, rg_szc) \
+#define PAGE_COUNTERS_COUNTERS(mnode, rg_szc) \
(page_counters[(rg_szc)][(mnode)].hpm_counters)
-#define PAGE_COUNTERS_SHIFT(mnode, rg_szc) \
+#define PAGE_COUNTERS_SHIFT(mnode, rg_szc) \
(page_counters[(rg_szc)][(mnode)].hpm_shift)
-#define PAGE_COUNTERS_ENTRIES(mnode, rg_szc) \
+#define PAGE_COUNTERS_ENTRIES(mnode, rg_szc) \
(page_counters[(rg_szc)][(mnode)].hpm_entries)
-#define PAGE_COUNTERS_BASE(mnode, rg_szc) \
+#define PAGE_COUNTERS_BASE(mnode, rg_szc) \
(page_counters[(rg_szc)][(mnode)].hpm_base)
#define PAGE_COUNTERS_CURRENT_COLOR_ARRAY(mnode, rg_szc, g) \
@@ -341,7 +341,7 @@ static int mnode_maxmrange[MAX_MEM_NODES];
(((pnum) - PAGE_COUNTERS_BASE((mnode), (rg_szc))) >> \
PAGE_COUNTERS_SHIFT((mnode), (rg_szc)))
-#define IDX_TO_PNUM(mnode, rg_szc, index) \
+#define IDX_TO_PNUM(mnode, rg_szc, index) \
(PAGE_COUNTERS_BASE((mnode), (rg_szc)) + \
((index) << PAGE_COUNTERS_SHIFT((mnode), (rg_szc))))
@@ -546,7 +546,7 @@ page_ctrs_sz(void)
pfn_t physbase;
pfn_t physmax;
uint_t ctrs_sz = 0;
- int i;
+ int i;
pgcnt_t colors_per_szc[MMU_PAGE_SIZES];
/*
@@ -1925,7 +1925,7 @@ static uint_t page_promote_noreloc_err;
* accounting which needs to be done for a returned page.
*
* RFE: For performance pass in pp instead of pfnum so
- * we can avoid excessive calls to page_numtopp_nolock().
+ * we can avoid excessive calls to page_numtopp_nolock().
* This would depend on an assumption that all contiguous
* pages are in the same memseg so we can just add/dec
* our pp.
@@ -1970,7 +1970,7 @@ page_promote(int mnode, pfn_t pfnum, uchar_t new_szc, int flags, int mtype)
uint_t bin;
pgcnt_t tmpnpgs, pages_left;
uint_t noreloc;
- int which_list;
+ int which_list;
ulong_t index;
kmutex_t *phm;
@@ -2270,9 +2270,9 @@ page_t *
page_freelist_coalesce(int mnode, uchar_t szc, uint_t color, uint_t ceq_mask,
int mtype, pfn_t pfnhi)
{
- int r = szc; /* region size */
+ int r = szc; /* region size */
int mrange;
- uint_t full, bin, color_mask, wrap = 0;
+ uint_t full, bin, color_mask, wrap = 0;
pfn_t pfnum, lo, hi;
size_t len, idx, idx0;
pgcnt_t cands = 0, szcpgcnt = page_get_pagecnt(szc);
@@ -2420,7 +2420,7 @@ page_freelist_coalesce(int mnode, uchar_t szc, uint_t color, uint_t ceq_mask,
/*
* RFE: For performance maybe we can do something less
* brutal than locking the entire freelist. So far
- * this doesn't seem to be a performance problem?
+ * this doesn't seem to be a performance problem?
*/
page_freelist_lock(mnode);
if (PAGE_COUNTERS(mnode, r, idx) == full) {
@@ -2490,8 +2490,8 @@ wrapit:
void
page_freelist_coalesce_all(int mnode)
{
- int r; /* region size */
- int idx, full;
+ int r; /* region size */
+ int idx, full;
size_t len;
int doall = interleaved_mnodes || mnode < 0;
int mlo = doall ? 0 : mnode;
@@ -2584,7 +2584,7 @@ page_freelist_split(uchar_t szc, uint_t color, int mnode, int mtype,
pfn_t pfnlo, pfn_t pfnhi, page_list_walker_t *plw)
{
uchar_t nszc = szc + 1;
- uint_t bin, sbin, bin_prev;
+ uint_t bin, sbin, bin_prev;
page_t *pp, *firstpp;
page_t *ret_pp = NULL;
uint_t color_mask;
@@ -4147,6 +4147,8 @@ page_get_replacement_page(page_t *orig_like_pp, struct lgrp *lgrp_target,
lgrp_mnode_cookie_t lgrp_cookie;
lgrp_t *lgrp;
+ mnode = 0;
+ lgrp = NULL;
REPL_STAT_INCR(ngets);
like_pp = orig_like_pp;
ASSERT(PAGE_EXCL(like_pp));
diff --git a/usr/src/uts/common/xen/io/xpvd.c b/usr/src/uts/common/xen/io/xpvd.c
index 5f8966fce7..4609580437 100644
--- a/usr/src/uts/common/xen/io/xpvd.c
+++ b/usr/src/uts/common/xen/io/xpvd.c
@@ -377,9 +377,11 @@ got_xs_prop:
break;
}
- if ((rv == DDI_PROP_SUCCESS) && (prop_len > 0)) {
- bcopy(prop_str, buff, prop_len);
- *lengthp = prop_len;
+ if (rv == DDI_PROP_SUCCESS) {
+ if (prop_op != PROP_LEN) {
+ bcopy(prop_str, buff, prop_len);
+ *lengthp = prop_len;
+ }
}
kmem_free(prop_str, len);
return (rv);
@@ -874,7 +876,7 @@ i_xpvd_parse_devname(char *name, xendev_devclass_t *devclassp,
int len = strlen(name) + 1;
char *device_name = i_ddi_strdup(name, KM_SLEEP);
char *cname = NULL, *caddr = NULL;
- boolean_t ret;
+ boolean_t ret = B_FALSE;
i_ddi_parse_name(device_name, &cname, &caddr, NULL);