diff options
50 files changed, 191 insertions, 121 deletions
diff --git a/usr/src/common/devid/devid.c b/usr/src/common/devid/devid.c index 808a934096..6878092e1a 100644 --- a/usr/src/common/devid/devid.c +++ b/usr/src/common/devid/devid.c @@ -324,6 +324,7 @@ devid_str_decode_id(char *devidstr, ddi_devid_t *devidp, int slen, devid_len, ascii, i, n, c, pre_alloc = FALSE; unsigned short id_len, type; /* for hibyte/lobyte */ + devid_len = 0; if (devidp != NULL) *devidp = NULL; if (minor_namep != NULL) diff --git a/usr/src/uts/common/contract/device.c b/usr/src/uts/common/contract/device.c index 9eef7ee9b4..1879b99d8d 100644 --- a/usr/src/uts/common/contract/device.c +++ b/usr/src/uts/common/contract/device.c @@ -509,6 +509,7 @@ ctmpl_device_set(struct ct_template *tmpl, ct_kparam_t *kparam, ASSERT(MUTEX_HELD(&tmpl->ctmpl_lock)); + param_value = SAFE_EV; if (param->ctpm_id == CTDP_MINOR) { str_value = (char *)kparam->ctpm_kbuf; str_value[param->ctpm_size - 1] = '\0'; @@ -2046,6 +2047,7 @@ contract_device_negotiate(dev_info_t *dip, dev_t dev, int spec_type, ASSERT(dev != DDI_DEV_T_NONE); ASSERT(spec_type == S_IFBLK || spec_type == S_IFCHR); + result = CT_NACK; switch (evtype) { case CT_DEV_EV_OFFLINE: result = contract_device_offline(dip, dev, spec_type); diff --git a/usr/src/uts/common/contract/process.c b/usr/src/uts/common/contract/process.c index 8475549c74..2a78fbb630 100644 --- a/usr/src/uts/common/contract/process.c +++ b/usr/src/uts/common/contract/process.c @@ -229,7 +229,7 @@ ctmpl_process_set(struct ct_template *tmpl, ct_kparam_t *kparam, ct_param_t *param = &kparam->param; contract_t *ct; int error; - uint64_t param_value; + uint64_t param_value = 0; char *str_value; if ((param->ctpm_id == CTPP_SVC_FMRI) || diff --git a/usr/src/uts/common/fs/fem.c b/usr/src/uts/common/fs/fem.c index ca0952642a..9f7f284842 100644 --- a/usr/src/uts/common/fs/fem.c +++ b/usr/src/uts/common/fs/fem.c @@ -3129,8 +3129,9 @@ remove_node(struct fem_list *sp, void **baseops, void *opset, void *datap) int i; struct fem_node *fn; + fn = NULL; for (i = sp->feml_tos; i > 0; i--) { - fn = sp->feml_nodes+i; + fn = sp->feml_nodes + i; if (fn->fn_op.anon == opset && (fn->fn_available == datap || datap == NULL)) { break; diff --git a/usr/src/uts/common/fs/lookup.c b/usr/src/uts/common/fs/lookup.c index 69c9efff97..b75ccc03d6 100644 --- a/usr/src/uts/common/fs/lookup.c +++ b/usr/src/uts/common/fs/lookup.c @@ -827,8 +827,6 @@ dirfindvp(vnode_t *vrootp, vnode_t *dvp, vnode_t *tvp, cred_t *cr, char *dbuf, */ bzero(&pnp, sizeof (pnp)); - eof = 0; - uio.uio_iov = &iov; uio.uio_iovcnt = 1; uio.uio_segflg = UIO_SYSSPACE; @@ -839,6 +837,9 @@ dirfindvp(vnode_t *vrootp, vnode_t *dvp, vnode_t *tvp, cred_t *cr, char *dbuf, if ((error = VOP_ACCESS(dvp, VREAD, 0, cr, NULL)) != 0) return (error); + dp = NULL; + eof = 0; + while (!eof) { uio.uio_resid = dlen; iov.iov_base = dbuf; diff --git a/usr/src/uts/common/fs/vfs.c b/usr/src/uts/common/fs/vfs.c index 1bee02bfe6..3cd2feebef 100644 --- a/usr/src/uts/common/fs/vfs.c +++ b/usr/src/uts/common/fs/vfs.c @@ -1097,7 +1097,7 @@ domount(char *fsname, struct mounta *uap, vnode_t *vp, struct cred *credp, mntopts_t mnt_mntopts; int error = 0; int copyout_error = 0; - int ovflags; + int ovflags = 0; char *opts = uap->optptr; char *inargs = opts; int optlen = uap->optlen; @@ -1487,8 +1487,6 @@ domount(char *fsname, struct mounta *uap, vnode_t *vp, struct cred *credp, */ if (!remount) { if (error = vfs_lock(vfsp)) { - vfsp->vfs_flag = ovflags; - lofi_remove(vfsp); if (splice) diff --git a/usr/src/uts/common/fs/vnode.c b/usr/src/uts/common/fs/vnode.c index 6e8f65cacb..eeb34524d9 100644 --- a/usr/src/uts/common/fs/vnode.c +++ b/usr/src/uts/common/fs/vnode.c @@ -2094,13 +2094,13 @@ vn_vfslocks_rele(vn_vfslocks_entry_t *vepent) if ((int32_t)vepent->ve_refcnt < 0) cmn_err(CE_PANIC, "vn_vfslocks_rele: refcount negative"); + pvep = NULL; if (vepent->ve_refcnt == 0) { for (vep = bp->vb_list; vep != NULL; vep = vep->ve_next) { if (vep->ve_vpvfs == vepent->ve_vpvfs) { - if (bp->vb_list == vep) + if (pvep == NULL) bp->vb_list = vep->ve_next; else { - /* LINTED */ pvep->ve_next = vep->ve_next; } mutex_exit(&bp->vb_lock); diff --git a/usr/src/uts/common/os/contract.c b/usr/src/uts/common/os/contract.c index 909a6c2860..9e498dc1c7 100644 --- a/usr/src/uts/common/os/contract.c +++ b/usr/src/uts/common/os/contract.c @@ -1542,6 +1542,7 @@ ctmpl_set(ct_template_t *template, ct_kparam_t *kparam, const cred_t *cr) ct_param_t *param = &kparam->param; uint64_t param_value; + param_value = 0; if (param->ctpm_id == CTP_COOKIE || param->ctpm_id == CTP_EV_INFO || param->ctpm_id == CTP_EV_CRITICAL) { @@ -1612,6 +1613,7 @@ ctmpl_get(ct_template_t *template, ct_kparam_t *kparam) ct_param_t *param = &kparam->param; uint64_t *param_value; + param_value = NULL; if (param->ctpm_id == CTP_COOKIE || param->ctpm_id == CTP_EV_INFO || param->ctpm_id == CTP_EV_CRITICAL) { @@ -1626,13 +1628,16 @@ ctmpl_get(ct_template_t *template, ct_kparam_t *kparam) mutex_enter(&template->ctmpl_lock); switch (param->ctpm_id) { case CTP_COOKIE: - *param_value = template->ctmpl_cookie; + if (param_value != NULL) + *param_value = template->ctmpl_cookie; break; case CTP_EV_INFO: - *param_value = template->ctmpl_ev_info; + if (param_value != NULL) + *param_value = template->ctmpl_ev_info; break; case CTP_EV_CRITICAL: - *param_value = template->ctmpl_ev_crit; + if (param_value != NULL) + *param_value = template->ctmpl_ev_crit; break; default: result = template->ctmpl_ops->ctop_get(template, kparam); diff --git a/usr/src/uts/common/os/devcfg.c b/usr/src/uts/common/os/devcfg.c index 4a654317c9..cbcc4db3d8 100644 --- a/usr/src/uts/common/os/devcfg.c +++ b/usr/src/uts/common/os/devcfg.c @@ -311,6 +311,7 @@ i_ddi_alloc_node(dev_info_t *pdip, char *node_name, pnode_t nodeid, * auto-assigned nodeids are also auto-freed. */ devi->devi_node_attributes = 0; + elem = NULL; switch (nodeid) { case DEVI_SID_HIDDEN_NODEID: devi->devi_node_attributes |= DDI_HIDDEN_NODE; @@ -2220,6 +2221,7 @@ find_sibling(dev_info_t *head, char *cname, char *caddr, uint_t flag, return (NULL); } + buf = NULL; /* preallocate buffer of naming node by callback */ if (flag & FIND_ADDR_BY_CALLBACK) buf = kmem_alloc(MAXNAMELEN, KM_SLEEP); diff --git a/usr/src/uts/common/os/devid_cache.c b/usr/src/uts/common/os/devid_cache.c index 1e871b1049..3e1a06a844 100644 --- a/usr/src/uts/common/os/devid_cache.c +++ b/usr/src/uts/common/os/devid_cache.c @@ -1079,6 +1079,8 @@ e_devid_cache_path_to_devid(char *path, char *ua, *devidp = NULL; + pathlen = 0; + ualen = 0; if (ua) { pathlen = strlen(path); ualen = strlen(ua); diff --git a/usr/src/uts/common/os/devpolicy.c b/usr/src/uts/common/os/devpolicy.c index 7acc3cef86..be40866f42 100644 --- a/usr/src/uts/common/os/devpolicy.c +++ b/usr/src/uts/common/os/devpolicy.c @@ -417,12 +417,12 @@ devpolicy_load(int nitems, size_t sz, devplcysys_t *uitmp) int lastlen; int lastwild; -#ifdef lint - /* Lint can't figure out that the "i == 1" test protects all */ + /* gcc 9 can't figure out that the "i == 1" test protects all */ lastlen = 0; lastwild = 0; lastmajor = 0; -#endif + newpolicy = NULL; + /* * The application must agree with the kernel on the size of each * item; it must not exceed the maximum number and must be diff --git a/usr/src/uts/common/os/dtrace_subr.c b/usr/src/uts/common/os/dtrace_subr.c index 680f04a958..a6af6ff4ce 100644 --- a/usr/src/uts/common/os/dtrace_subr.c +++ b/usr/src/uts/common/os/dtrace_subr.c @@ -186,6 +186,7 @@ dtrace_vtime_enable(void) { dtrace_vtime_state_t state, nstate; + nstate = DTRACE_VTIME_INACTIVE; do { state = dtrace_vtime_active; @@ -213,6 +214,7 @@ dtrace_vtime_disable(void) { dtrace_vtime_state_t state, nstate; + nstate = DTRACE_VTIME_INACTIVE; do { state = dtrace_vtime_active; @@ -240,6 +242,7 @@ dtrace_vtime_enable_tnf(void) { dtrace_vtime_state_t state, nstate; + nstate = DTRACE_VTIME_INACTIVE; do { state = dtrace_vtime_active; @@ -267,6 +270,7 @@ dtrace_vtime_disable_tnf(void) { dtrace_vtime_state_t state, nstate; + nstate = DTRACE_VTIME_INACTIVE; do { state = dtrace_vtime_active; diff --git a/usr/src/uts/common/os/errorq.c b/usr/src/uts/common/os/errorq.c index 0924da6eda..8b41e7e8c1 100644 --- a/usr/src/uts/common/os/errorq.c +++ b/usr/src/uts/common/os/errorq.c @@ -649,7 +649,8 @@ errorq_drain(errorq_t *eqp) * errorq elements on the dump list. Find the tail of * the list ready for append. */ - if (panicstr && (dep = eqp->eq_dump) != NULL) { + dep = eqp->eq_dump; + if (panicstr && dep != NULL) { while (dep->eqe_dump != NULL) dep = dep->eqe_dump; } @@ -744,6 +745,7 @@ errorq_panic_drain(uint_t what) uint64_t loggedtmp; uint64_t logged = 0; + dep = NULL; for (eqp = errorq_list; eqp != NULL; eqp = eqp->eq_next) { if ((eqp->eq_flags & (ERRORQ_VITAL | ERRORQ_NVLIST)) != what) continue; /* do not drain this queue on this pass */ diff --git a/usr/src/uts/common/os/evchannels.c b/usr/src/uts/common/os/evchannels.c index cef23555f6..6af0c10340 100644 --- a/usr/src/uts/common/os/evchannels.c +++ b/usr/src/uts/common/os/evchannels.c @@ -1655,6 +1655,8 @@ evch_chrdevent_init(evch_chan_t *chp, char *subid) pmqstat = evch_evq_status(chp->ch_queue); if (pmqstat == 0) evch_evq_stop(chp->ch_queue); + + psqstat = 0; if (sdp != NULL) { psqstat = evch_evq_status(sdp->sd_queue); if (psqstat == 0) diff --git a/usr/src/uts/common/os/exacct.c b/usr/src/uts/common/os/exacct.c index 9babfd1d0f..c9214cec84 100644 --- a/usr/src/uts/common/os/exacct.c +++ b/usr/src/uts/common/os/exacct.c @@ -656,6 +656,8 @@ exacct_assemble_task_usage(ac_info_t *ac_task, task_t *tk, case EW_INTERVAL: record_type = EXD_GROUP_TASK_INTERVAL; break; + default: + return (0); } /* @@ -1045,6 +1047,9 @@ exacct_assemble_proc_usage(ac_info_t *ac_proc, proc_usage_t *pu, case EW_PARTIAL: record_type = EXD_GROUP_PROC_PARTIAL; break; + default: + record_type = EXD_NONE; + break; } proc_record = exacct_assemble_proc_record(pu, mask, record_type); @@ -1372,6 +1377,8 @@ exacct_assemble_net_usage(ac_info_t *ac_net, void *ninfo, case EX_NET_FLSTAT_REC: record_type = EXD_GROUP_NET_FLOW_STATS; break; + default: + return (0); } net_desc = exacct_assemble_net_record(ninfo, mask, record_type, what); diff --git a/usr/src/uts/common/os/flock.c b/usr/src/uts/common/os/flock.c index c79038aca7..78907db25c 100644 --- a/usr/src/uts/common/os/flock.c +++ b/usr/src/uts/common/os/flock.c @@ -1362,6 +1362,8 @@ flk_wait_execute_request(lock_descriptor_t *request) flk_insert_sleeping_lock(request); + index = 0; /* quiesce compiler warning. */ + fg = NULL; if (IS_LOCKMGR(request)) { index = HASH_INDEX(request->l_vnode); fg = flk_get_globals(); diff --git a/usr/src/uts/common/os/fork.c b/usr/src/uts/common/os/fork.c index a63931459f..1caa0b9b7b 100644 --- a/usr/src/uts/common/os/fork.c +++ b/usr/src/uts/common/os/fork.c @@ -168,6 +168,7 @@ cfork(int isvfork, int isfork1, int flags) lwpent_t *lep; lwpent_t *clep; + clone = NULL; /* * Allow only these two flags. */ diff --git a/usr/src/uts/common/os/kmem.c b/usr/src/uts/common/os/kmem.c index c125b43c6c..1bb90a27a7 100644 --- a/usr/src/uts/common/os/kmem.c +++ b/usr/src/uts/common/os/kmem.c @@ -3873,6 +3873,7 @@ kmem_cache_create( size_t chunks, bestfit, waste, slabsize; size_t minwaste = LONG_MAX; + bestfit = 0; for (chunks = 1; chunks <= KMEM_VOID_FRACTION; chunks++) { slabsize = P2ROUNDUP(chunksize * chunks, vmp->vm_quantum); diff --git a/usr/src/uts/common/os/log_sysevent.c b/usr/src/uts/common/os/log_sysevent.c index 0b4fe18af3..35e0048ee7 100644 --- a/usr/src/uts/common/os/log_sysevent.c +++ b/usr/src/uts/common/os/log_sysevent.c @@ -1345,7 +1345,7 @@ log_sysevent_register(char *channel_name, char *udatabuf, se_pubsub_t *udata) char *kchannel, *databuf = NULL; size_t bufsz; se_pubsub_t kdata; - sysevent_channel_descriptor_t *chan; + sysevent_channel_descriptor_t *chan = NULL; if (copyin(udata, &kdata, sizeof (se_pubsub_t)) == -1) { return (EFAULT); diff --git a/usr/src/uts/common/os/modctl.c b/usr/src/uts/common/os/modctl.c index e2a3335eb4..7463cdb92f 100644 --- a/usr/src/uts/common/os/modctl.c +++ b/usr/src/uts/common/os/modctl.c @@ -415,6 +415,7 @@ modctl_modinfo(modid_t id, struct modinfo *umodi) struct modinfo32 modi32; #endif + nobase = 0; if (get_udatamodel() == DATAMODEL_NATIVE) { if (copyin(umodi, &modi, sizeof (struct modinfo)) != 0) return (EFAULT); @@ -501,6 +502,7 @@ modctl_update_driver_aliases(int add, int *data) int alias_resid; } *aliases, *aip; + aliases = NULL; bzero(&mc, sizeof (struct modconfig)); if (get_udatamodel() == DATAMODEL_NATIVE) { if (copyin(data, &mc, sizeof (struct modconfig)) != 0) @@ -2800,6 +2802,7 @@ modloadonly(const char *subdir, const char *filename) fullname = (char *)filename; } + id = -1; modp = mod_hold_loaded_mod(NULL, fullname, &retval); if (modp) { id = modp->mod_id; diff --git a/usr/src/uts/common/os/modsysfile.c b/usr/src/uts/common/os/modsysfile.c index de5c106782..7875824a86 100644 --- a/usr/src/uts/common/os/modsysfile.c +++ b/usr/src/uts/common/os/modsysfile.c @@ -3142,12 +3142,14 @@ process_rtc_config_file(void) static void append(struct hwc_spec *spec, struct par_list *par) { - struct hwc_spec *hwc, *last; + struct hwc_spec *hwc, *last = NULL; ASSERT(par->par_specs); for (hwc = par->par_specs; hwc; hwc = hwc->hwc_next) last = hwc; - last->hwc_next = spec; + + if (last != NULL) + last->hwc_next = spec; } /* diff --git a/usr/src/uts/common/os/ndifm.c b/usr/src/uts/common/os/ndifm.c index 3edc5425cf..16613a9203 100644 --- a/usr/src/uts/common/os/ndifm.c +++ b/usr/src/uts/common/os/ndifm.c @@ -226,20 +226,21 @@ ndi_fmc_insert(dev_info_t *dip, int flag, void *resource, void *bus_specific) struct i_ddi_fmhdl *fmhdl; ASSERT(devi); - ASSERT(flag == DMA_HANDLE || flag == ACC_HANDLE); fmhdl = devi->devi_fmhdl; if (fmhdl == NULL) { return; } - if (flag == DMA_HANDLE) { + switch (flag) { + case DMA_HANDLE: if (!DDI_FM_DMA_ERR_CAP(fmhdl->fh_cap)) { return; } fcp = fmhdl->fh_dma_cache; fpp = &((ddi_dma_impl_t *)resource)->dmai_error.err_fep; - } else if (flag == ACC_HANDLE) { + break; + case ACC_HANDLE: if (!DDI_FM_ACC_ERR_CAP(fmhdl->fh_cap)) { i_ddi_drv_ereport_post(dip, DVR_EFMCAP, NULL, DDI_NOSLEEP); @@ -247,6 +248,10 @@ ndi_fmc_insert(dev_info_t *dip, int flag, void *resource, void *bus_specific) } fcp = fmhdl->fh_acc_cache; fpp = &((ddi_acc_impl_t *)resource)->ahi_err->err_fep; + break; + default: + ASSERT(0); + return; } fep = kmem_cache_alloc(ndi_fm_entry_cache, KM_NOSLEEP); diff --git a/usr/src/uts/common/os/pcifm.c b/usr/src/uts/common/os/pcifm.c index 863b3a5105..219307b957 100644 --- a/usr/src/uts/common/os/pcifm.c +++ b/usr/src/uts/common/os/pcifm.c @@ -1172,6 +1172,7 @@ pci_fm_ereport_post(dev_info_t *dip, const char *error_class, uint64_t ena, errorq_elem_t *eqep; va_list ap; + eqep = NULL; if (panicstr) { eqep = errorq_reserve(ereport_errorq); if (eqep == NULL) diff --git a/usr/src/uts/common/os/pid.c b/usr/src/uts/common/os/pid.c index b555bb82b7..7a379cf419 100644 --- a/usr/src/uts/common/os/pid.c +++ b/usr/src/uts/common/os/pid.c @@ -166,7 +166,8 @@ pid_allocate(proc_t *prp, pid_t pid, int flags) pidp = kmem_zalloc(sizeof (struct pid), KM_SLEEP); mutex_enter(&pidlinklock); - if ((flags & PID_ALLOC_PROC) && (pep = procentfree) == NULL) { + pep = procentfree; + if ((flags & PID_ALLOC_PROC) && pep == NULL) { /* * ran out of /proc directory entries */ diff --git a/usr/src/uts/common/os/pool.c b/usr/src/uts/common/os/pool.c index 6d183cd71c..f9fe8649c0 100644 --- a/usr/src/uts/common/os/pool.c +++ b/usr/src/uts/common/os/pool.c @@ -1354,9 +1354,9 @@ pool_do_bind(pool_t *pool, idtype_t idtype, id_t id, int flags) proc_t **pp, **procs; proc_t *prstart; int procs_count = 0; - kproject_t *kpj; + kproject_t *kpj = NULL; procset_t set; - zone_t *zone; + zone_t *zone = NULL; int procs_size; int rv = 0; proc_t *p; diff --git a/usr/src/uts/common/os/sleepq.c b/usr/src/uts/common/os/sleepq.c index bd9a9d628c..11b4bd8b72 100644 --- a/usr/src/uts/common/os/sleepq.c +++ b/usr/src/uts/common/os/sleepq.c @@ -24,8 +24,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/param.h> #include <sys/systm.h> #include <sys/thread.h> @@ -141,6 +139,7 @@ sleepq_insert(sleepq_t *spq, kthread_t *t) tpri = CMP_PRIO(t); tpp = &spq->sq_first; + last_tp = NULL; while ((next_tp = *tpp) != NULL) { next_pri = CMP_PRIO(next_tp); if (tpri > next_pri) @@ -151,7 +150,7 @@ sleepq_insert(sleepq_t *spq, kthread_t *t) } *tpp = t; t->t_link = next_tp; - if (last_pri == tpri) { + if (last_tp != NULL && last_pri == tpri) { /* last_tp points to the last thread of this priority */ t->t_priback = last_tp; t->t_priforw = last_tp->t_priforw; diff --git a/usr/src/uts/common/os/streamio.c b/usr/src/uts/common/os/streamio.c index 9abbf03fe8..102c803f5f 100644 --- a/usr/src/uts/common/os/streamio.c +++ b/usr/src/uts/common/os/streamio.c @@ -6550,7 +6550,7 @@ strgetmsg( mblk_t *savemp = NULL; mblk_t *savemptail = NULL; uint_t old_sd_flag; - int flg; + int flg = MSG_BAND; int more = 0; int error = 0; char first = 1; @@ -7116,7 +7116,7 @@ kstrgetmsg( mblk_t *savemptail = NULL; int flags; uint_t old_sd_flag; - int flg; + int flg = MSG_BAND; int more = 0; int error = 0; char first = 1; diff --git a/usr/src/uts/common/os/sunddi.c b/usr/src/uts/common/os/sunddi.c index c39819156d..dce7c40462 100644 --- a/usr/src/uts/common/os/sunddi.c +++ b/usr/src/uts/common/os/sunddi.c @@ -1222,7 +1222,7 @@ ddi_prop_search_common(dev_t dev, dev_info_t *dip, ddi_prop_op_t prop_op, { ddi_prop_t *propp; int i; - caddr_t buffer; + caddr_t buffer = NULL; caddr_t prealloc = NULL; int plength = 0; dev_info_t *pdip; @@ -1370,7 +1370,8 @@ ddi_prop_search_common(dev_t dev, dev_info_t *dip, ddi_prop_op_t prop_op, /* * Do the copy. */ - bcopy(propp->prop_val, buffer, propp->prop_len); + if (buffer != NULL) + bcopy(propp->prop_val, buffer, propp->prop_len); mutex_exit(&(DEVI(dip)->devi_lock)); return (DDI_PROP_SUCCESS); } @@ -4302,7 +4303,7 @@ impl_ddi_bus_prop_op(dev_t dev, dev_info_t *dip, dev_info_t *ch_dip, char *name, caddr_t valuep, int *lengthp) { int len; - caddr_t buffer; + caddr_t buffer = NULL; /* * If requested dev is DDI_DEV_T_NONE or DDI_DEV_T_ANY, then diff --git a/usr/src/uts/common/os/sunmdi.c b/usr/src/uts/common/os/sunmdi.c index 0905a0852b..0cdfd30392 100644 --- a/usr/src/uts/common/os/sunmdi.c +++ b/usr/src/uts/common/os/sunmdi.c @@ -3245,13 +3245,13 @@ mdi_pi_free(mdi_pathinfo_t *pip, int flags) MDI_CLIENT_LOCK(ct); MDI_CLIENT_CLEAR_PATH_FREE_IN_PROGRESS(ct); + rv = MDI_SUCCESS; if (!MDI_PI_IS_INITING(pip)) { f = vh->vh_ops->vo_pi_uninit; if (f != NULL) { rv = (*f)(vh->vh_dip, pip, 0); } - } else - rv = MDI_SUCCESS; + } /* * If vo_pi_uninit() completed successfully. @@ -3895,6 +3895,7 @@ i_mdi_pi_offline(mdi_pathinfo_t *pip, int flags) ASSERT(vh->vh_ops); f = vh->vh_ops->vo_pi_state_change; + rv = MDI_SUCCESS; if (f != NULL) { MDI_PI_UNLOCK(pip); if ((rv = (*f)(vdip, pip, MDI_PATHINFO_STATE_OFFLINE, 0, @@ -3996,9 +3997,9 @@ i_mdi_pi_online(mdi_pathinfo_t *pip, int flags) MDI_PI_SET_ONLINING(pip) MDI_PI_UNLOCK(pip); f = vh->vh_ops->vo_pi_state_change; + rv = MDI_SUCCESS; if (f != NULL) - rv = (*f)(vh->vh_dip, pip, MDI_PATHINFO_STATE_ONLINE, 0, - flags); + rv = (*f)(vh->vh_dip, pip, MDI_PATHINFO_STATE_ONLINE, 0, flags); MDI_CLIENT_LOCK(ct); MDI_PI_LOCK(pip); cv_broadcast(&MDI_PI(pip)->pi_state_cv); @@ -4006,7 +4007,6 @@ i_mdi_pi_online(mdi_pathinfo_t *pip, int flags) if (rv == MDI_SUCCESS) { dev_info_t *cdip = ct->ct_dip; - rv = MDI_SUCCESS; i_mdi_client_update_state(ct); if (MDI_CLIENT_STATE(ct) == MDI_CLIENT_STATE_OPTIMAL || MDI_CLIENT_STATE(ct) == MDI_CLIENT_STATE_DEGRADED) { @@ -6300,6 +6300,7 @@ i_mdi_enable_disable_path(mdi_pathinfo_t *pip, mdi_vhci_t *vh, int flags, * Do a callback into the mdi consumer to let it * know that path is about to get enabled/disabled. */ + rv = MDI_SUCCESS; if (f != NULL) { rv = (*f)(vh->vh_dip, pip, 0, MDI_PI_EXT_STATE(pip), diff --git a/usr/src/uts/common/os/sunndi.c b/usr/src/uts/common/os/sunndi.c index 93c66fbcf9..bb68bf6f9a 100644 --- a/usr/src/uts/common/os/sunndi.c +++ b/usr/src/uts/common/os/sunndi.c @@ -2368,6 +2368,7 @@ i_ddi_fault_logger(dev_info_t *rdip, struct ddi_fault_event_data *fedp) default: bad = 1; + still = 0; break; } diff --git a/usr/src/uts/common/os/sunpci.c b/usr/src/uts/common/os/sunpci.c index 0dd4f4c206..209b269838 100644 --- a/usr/src/uts/common/os/sunpci.c +++ b/usr/src/uts/common/os/sunpci.c @@ -1006,7 +1006,7 @@ int pci_post_suspend(dev_info_t *dip) { pci_pm_context_t *p; - uint16_t pmcap, pmcsr, pcicmd; + uint16_t pmcap, pmcsr, pcicmd; uint_t length; int ret; int fromprop = 1; /* source of memory *p */ @@ -1023,6 +1023,7 @@ pci_post_suspend(dev_info_t *dip) return (DDI_FAILURE); } + pmcsr = 0; if (ddi_prop_lookup_byte_array(DDI_DEV_T_ANY, dip, DDI_PROP_DONTPASS | DDI_PROP_NOTPROM, SAVED_PM_CONTEXT, (uchar_t **)&p, &length) != DDI_PROP_SUCCESS) { diff --git a/usr/src/uts/common/os/sunpm.c b/usr/src/uts/common/os/sunpm.c index 2fde5dfd89..3ce7cc530d 100644 --- a/usr/src/uts/common/os/sunpm.c +++ b/usr/src/uts/common/os/sunpm.c @@ -1981,6 +1981,7 @@ pm_free_kept(char *path) size_t length; char **paths; + paths = NULL; for (dp = pm_dep_head; dp; dp = dp->pdr_next) { if (dp->pdr_kept_count == 0) continue; @@ -2010,10 +2011,7 @@ pm_free_kept(char *path) } /* Now free the old array and point to the new one */ kmem_free(dp->pdr_kept_paths, count * sizeof (char **)); - if (dp->pdr_kept_count) - dp->pdr_kept_paths = paths; - else - dp->pdr_kept_paths = NULL; + dp->pdr_kept_paths = paths; } } @@ -3959,6 +3957,7 @@ digit: return (NULL); hexval: + offset = 0; for (np = numbuf; *np; np++) { if (*np >= 'a' && *np <= 'f') offset = 'a' - 10; @@ -6430,6 +6429,7 @@ pm_process_dep_request(pm_dep_wk_t *work) (work->pdw_keeper ? work->pdw_keeper : "NULL"), (work->pdw_kept ? work->pdw_kept : "NULL"))) + ret = 0; switch (work->pdw_type) { case PM_DEP_WK_POWER_ON: /* Bring up the kept devices and put a hold on them */ diff --git a/usr/src/uts/common/os/taskq.c b/usr/src/uts/common/os/taskq.c index fcdfe292dd..d038af68cb 100644 --- a/usr/src/uts/common/os/taskq.c +++ b/usr/src/uts/common/os/taskq.c @@ -1704,7 +1704,7 @@ taskq_d_thread(taskq_ent_t *tqe) kmutex_t *lock = &bucket->tqbucket_lock; kcondvar_t *cv = &tqe->tqent_cv; callb_cpr_t cprinfo; - clock_t w; + clock_t w = 0; CALLB_CPR_INIT(&cprinfo, lock, callb_generic_cpr, tq->tq_name); diff --git a/usr/src/uts/common/os/timer.c b/usr/src/uts/common/os/timer.c index b25a6cbcf1..c8d3da26e2 100644 --- a/usr/src/uts/common/os/timer.c +++ b/usr/src/uts/common/os/timer.c @@ -410,7 +410,7 @@ timer_signal(sigqueue_t *sigq) static void timer_fire(itimer_t *it) { - proc_t *p; + proc_t *p = NULL; int proc_lock_held; if (it->it_flags & IT_SIGNAL) { diff --git a/usr/src/uts/common/os/vmem.c b/usr/src/uts/common/os/vmem.c index c177ecfd75..7d2b89408a 100644 --- a/usr/src/uts/common/os/vmem.c +++ b/usr/src/uts/common/os/vmem.c @@ -972,6 +972,8 @@ vmem_xalloc(vmem_t *vmp, size_t size, size_t align_arg, size_t phase, (vmflag & (VM_NOSLEEP | VM_PANIC)) == VM_NOSLEEP) return (NULL); + addr = 0; + xsize = 0; mutex_enter(&vmp->vm_lock); for (;;) { if (vmp->vm_nsegfree < VMEM_MINFREE && diff --git a/usr/src/uts/common/os/waitq.c b/usr/src/uts/common/os/waitq.c index 7ef7d630f9..6bf9c914fa 100644 --- a/usr/src/uts/common/os/waitq.c +++ b/usr/src/uts/common/os/waitq.c @@ -119,7 +119,7 @@ static void waitq_link(waitq_t *wq, kthread_t *t) { kthread_t *next_tp; - kthread_t *last_tp; + kthread_t *last_tp = NULL; kthread_t **tpp; pri_t tpri, next_pri, last_pri = -1; @@ -137,7 +137,7 @@ waitq_link(waitq_t *wq, kthread_t *t) } *tpp = t; t->t_link = next_tp; - if (last_pri == tpri) { + if (last_tp != NULL && last_pri == tpri) { /* last_tp points to the last thread of this priority */ t->t_priback = last_tp; t->t_priforw = last_tp->t_priforw; diff --git a/usr/src/uts/common/os/zone.c b/usr/src/uts/common/os/zone.c index c759f7e010..255937c694 100644 --- a/usr/src/uts/common/os/zone.c +++ b/usr/src/uts/common/os/zone.c @@ -6315,6 +6315,7 @@ zone_list(zoneid_t *zoneidlist, uint_t *numzones) return (set_errno(EFAULT)); myzone = curproc->p_zone; + ASSERT(zonecount > 0); if (myzone != global_zone) { bslabel_t *mybslab; @@ -6328,28 +6329,25 @@ zone_list(zoneid_t *zoneidlist, uint_t *numzones) mutex_enter(&zonehash_lock); real_nzones = zonecount; domi_nzones = 0; - if (real_nzones > 0) { - zoneids = kmem_alloc(real_nzones * - sizeof (zoneid_t), KM_SLEEP); - mybslab = label2bslabel(myzone->zone_slabel); - for (zone = list_head(&zone_active); - zone != NULL; - zone = list_next(&zone_active, zone)) { - if (zone->zone_id == GLOBAL_ZONEID) - continue; - if (zone != myzone && - (zone->zone_flags & ZF_IS_SCRATCH)) - continue; - /* - * Note that a label always dominates - * itself, so myzone is always included - * in the list. - */ - if (bldominates(mybslab, - label2bslabel(zone->zone_slabel))) { - zoneids[domi_nzones++] = - zone->zone_id; - } + zoneids = kmem_alloc(real_nzones * + sizeof (zoneid_t), KM_SLEEP); + mybslab = label2bslabel(myzone->zone_slabel); + for (zone = list_head(&zone_active); + zone != NULL; + zone = list_next(&zone_active, zone)) { + if (zone->zone_id == GLOBAL_ZONEID) + continue; + if (zone != myzone && + (zone->zone_flags & ZF_IS_SCRATCH)) + continue; + /* + * Note that a label always dominates + * itself, so myzone is always included + * in the list. + */ + if (bldominates(mybslab, + label2bslabel(zone->zone_slabel))) { + zoneids[domi_nzones++] = zone->zone_id; } } mutex_exit(&zonehash_lock); @@ -6358,14 +6356,12 @@ zone_list(zoneid_t *zoneidlist, uint_t *numzones) mutex_enter(&zonehash_lock); real_nzones = zonecount; domi_nzones = 0; - if (real_nzones > 0) { - zoneids = kmem_alloc(real_nzones * sizeof (zoneid_t), - KM_SLEEP); - for (zone = list_head(&zone_active); zone != NULL; - zone = list_next(&zone_active, zone)) - zoneids[domi_nzones++] = zone->zone_id; - ASSERT(domi_nzones == real_nzones); - } + zoneids = kmem_alloc(real_nzones * sizeof (zoneid_t), KM_SLEEP); + for (zone = list_head(&zone_active); zone != NULL; + zone = list_next(&zone_active, zone)) + zoneids[domi_nzones++] = zone->zone_id; + + ASSERT(domi_nzones == real_nzones); mutex_exit(&zonehash_lock); } @@ -6385,8 +6381,7 @@ zone_list(zoneid_t *zoneidlist, uint_t *numzones) error = EFAULT; } - if (real_nzones > 0) - kmem_free(zoneids, real_nzones * sizeof (zoneid_t)); + kmem_free(zoneids, real_nzones * sizeof (zoneid_t)); if (error != 0) return (set_errno(error)); diff --git a/usr/src/uts/common/syscall/acl.c b/usr/src/uts/common/syscall/acl.c index 4895e7ade9..7b4b85a30a 100644 --- a/usr/src/uts/common/syscall/acl.c +++ b/usr/src/uts/common/syscall/acl.c @@ -31,8 +31,6 @@ * under license from the Regents of the University of California. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/param.h> #include <sys/isa_defs.h> #include <sys/types.h> @@ -136,6 +134,7 @@ cacl(int cmd, int nentries, void *aclbufp, vnode_t *vp, int *rv) ASSERT(vp); bzero(&vsecattr, sizeof (vsecattr_t)); + dfaclbsize = 0; switch (cmd) { diff --git a/usr/src/uts/common/syscall/lgrpsys.c b/usr/src/uts/common/syscall/lgrpsys.c index 34bd08fd12..37ab75326f 100644 --- a/usr/src/uts/common/syscall/lgrpsys.c +++ b/usr/src/uts/common/syscall/lgrpsys.c @@ -747,6 +747,7 @@ lgrp_affinity_set(lgrp_affinity_args_t *ap) if (idtype != P_LWPID && idtype != P_PID) return (set_errno(EINVAL)); + retval = EINVAL; /* * Set given LWP's or process' affinity for specified lgroup */ diff --git a/usr/src/uts/common/syscall/lwpsys.c b/usr/src/uts/common/syscall/lwpsys.c index 4c5b280677..7ae3b8819a 100644 --- a/usr/src/uts/common/syscall/lwpsys.c +++ b/usr/src/uts/common/syscall/lwpsys.c @@ -191,6 +191,7 @@ lwp_wait(id_t lwpid, id_t *departed) curthread->t_waitfor = lwpid; p->p_lwpwait++; p->p_lwpdwait += daemon; + target_lep = NULL; if (lwpid != 0) { if ((ldp = lwp_hash_lookup(p, lwpid)) == NULL) diff --git a/usr/src/uts/common/syscall/memcntl.c b/usr/src/uts/common/syscall/memcntl.c index 1ee4b6a395..9b932af275 100644 --- a/usr/src/uts/common/syscall/memcntl.c +++ b/usr/src/uts/common/syscall/memcntl.c @@ -109,6 +109,7 @@ memcntl(caddr_t addr, size_t len, int cmd, caddr_t arg, int attr, int mask) attr |= PROT_USER; } + oszc = 0; switch (cmd) { case MC_SYNC: /* diff --git a/usr/src/uts/common/syscall/psecflags.c b/usr/src/uts/common/syscall/psecflags.c index 08d923e76b..17afbbc669 100644 --- a/usr/src/uts/common/syscall/psecflags.c +++ b/usr/src/uts/common/syscall/psecflags.c @@ -54,8 +54,6 @@ psecdo(proc_t *p, struct psdargs *args) goto out; } - ASSERT(args->which != PSF_EFFECTIVE); - if (!psecflags_validate_delta(&p->p_secflags, args->delta)) { ret = EINVAL; goto out; @@ -74,6 +72,9 @@ psecdo(proc_t *p, struct psdargs *args) case PSF_UPPER: set = &p->p_secflags.psf_upper; break; + default: + ASSERT(0); + goto out; } secflags_apply_delta(set, args->delta); diff --git a/usr/src/uts/common/syscall/sendfile.c b/usr/src/uts/common/syscall/sendfile.c index 0cfafbf13f..4a7f034e01 100644 --- a/usr/src/uts/common/syscall/sendfile.c +++ b/usr/src/uts/common/syscall/sendfile.c @@ -702,14 +702,18 @@ sendvec_chunk(file_t *fp, u_offset_t *fileoff, struct sendfilevec *sfv, #endif mblk_t *dmp = NULL; char *buf = NULL; - size_t extra; + size_t extra = 0; int maxblk, wroff, tail_len; struct sonode *so; stdata_t *stp; struct nmsghdr msg; + maxblk = 0; + wroff = 0; fflag = fp->f_flag; vp = fp->f_vnode; + so = NULL; + stp = NULL; if (vp->v_type == VSOCK) { so = VTOSO(vp); @@ -1137,7 +1141,7 @@ sendfilev(int opcode, int fildes, const struct sendfilevec *vec, int sfvcnt, int first_vector_error = 0; file_t *fp; struct vnode *vp; - struct sonode *so; + struct sonode *so = NULL; u_offset_t fileoff; int copy_cnt; const struct sendfilevec *copy_vec; diff --git a/usr/src/uts/common/vm/hat_refmod.c b/usr/src/uts/common/vm/hat_refmod.c index 31a85d4cf6..218c7b5a91 100644 --- a/usr/src/uts/common/vm/hat_refmod.c +++ b/usr/src/uts/common/vm/hat_refmod.c @@ -180,6 +180,7 @@ hat_setstat(struct as *as, caddr_t addr, size_t len, uint_t rmbits) */ if (vbits != as->a_vbits) { newbits = (vbits ^ as->a_vbits) & as->a_vbits; + nb = 0; while (newbits) { if (ffs(newbits)) nb = 1 << (ffs(newbits)-1); diff --git a/usr/src/uts/common/vm/seg_dev.c b/usr/src/uts/common/vm/seg_dev.c index 29896a6374..67c646049a 100644 --- a/usr/src/uts/common/vm/seg_dev.c +++ b/usr/src/uts/common/vm/seg_dev.c @@ -2385,10 +2385,10 @@ segdev_advise(struct seg *seg, caddr_t addr, size_t len, uint_t behav) /* * segdev pages are not dumped, so we just return */ -/*ARGSUSED*/ static void -segdev_dump(struct seg *seg) -{} +segdev_dump(struct seg *seg __unused) +{ +} /* * ddi_segmap_setup: Used by drivers who wish specify mapping attributes @@ -2405,7 +2405,7 @@ ddi_segmap_setup(dev_t dev, off_t offset, struct as *as, caddr_t *addrp, int (*mapfunc)(dev_t dev, off_t off, int prot); uint_t hat_attr; pfn_t pfn; - int error, i; + int error, i; TRACE_0(TR_FAC_DEVMAP, TR_DEVMAP_SEGMAP_SETUP, "ddi_segmap_setup:start"); @@ -2427,25 +2427,25 @@ ddi_segmap_setup(dev_t dev, off_t offset, struct as *as, caddr_t *addrp, if (ddi_device_mapping_check(dev, accattrp, rnumber, &hat_attr) == -1) return (ENXIO); + if (len == 0) + return (ENXIO); + /* * Check to ensure that the entire range is * legal and we are not trying to map in * more than the device will let us. */ - for (i = 0; i < len; i += PAGESIZE) { - if (i == 0) { - /* - * Save the pfn at offset here. This pfn will be - * used later to get user address. - */ - if ((pfn = (pfn_t)cdev_mmap(mapfunc, dev, offset, - maxprot)) == PFN_INVALID) - return (ENXIO); - } else { - if (cdev_mmap(mapfunc, dev, offset + i, maxprot) == - PFN_INVALID) - return (ENXIO); - } + /* + * Save the pfn at offset here. This pfn will be + * used later to get user address. + */ + pfn = (pfn_t)cdev_mmap(mapfunc, dev, offset, maxprot); + if (pfn == PFN_INVALID) + return (ENXIO); + + for (i = PAGESIZE; i < len; i += PAGESIZE) { + if (cdev_mmap(mapfunc, dev, offset + i, maxprot) == PFN_INVALID) + return (ENXIO); } as_rangelock(as); @@ -2727,6 +2727,8 @@ devmap_roundup(devmap_handle_t *dhp, ulong_t offset, size_t len, * the page size to use. The same calculations can use the * virtual address to determine the page size. */ + pg = 0; + poff = 0; base = (ulong_t)ptob(dhp->dh_pfn); for (level = dhp->dh_mmulevel; level >= 0; level--) { pg = page_get_pagesize(level); diff --git a/usr/src/uts/common/vm/seg_kp.c b/usr/src/uts/common/vm/seg_kp.c index 02c844bff6..1f080d3079 100644 --- a/usr/src/uts/common/vm/seg_kp.c +++ b/usr/src/uts/common/vm/seg_kp.c @@ -399,6 +399,7 @@ segkp_get_internal( int kmflag = (flags & KPD_NOWAIT) ? KM_NOSLEEP : KM_SLEEP; caddr_t s_base = (segkp_fromheap) ? kvseg.s_base : seg->s_base; + segkpindex = 0; if (len & PAGEOFFSET) { panic("segkp_get: len is not page-aligned"); /*NOTREACHED*/ @@ -647,6 +648,7 @@ segkp_release_internal(struct seg *seg, struct segkp_data *kpd, size_t len) struct anon *ap; pgcnt_t segkpindex; + segkpindex = 0; ASSERT(kpd != NULL); ASSERT((kpd->kp_flags & KPD_HASAMP) == 0 || kpd->kp_cookie == -1); np = btop(len); diff --git a/usr/src/uts/common/vm/seg_spt.c b/usr/src/uts/common/vm/seg_spt.c index 77d20d7e45..faddc47278 100644 --- a/usr/src/uts/common/vm/seg_spt.c +++ b/usr/src/uts/common/vm/seg_spt.c @@ -549,6 +549,7 @@ segspt_create(struct seg **segpp, void *argsp) if ((sptd = kmem_zalloc(sizeof (*sptd), KM_NOSLEEP)) == NULL) goto out1; + ppa = NULL; if ((sptcargs->flags & SHM_PAGEABLE) == 0) { if ((ppa = kmem_zalloc(((sizeof (page_t *)) * npages), KM_NOSLEEP)) == NULL) @@ -789,6 +790,9 @@ segspt_free_pages(struct seg *seg, caddr_t addr, size_t len) ASSERT(amp != NULL); + proj = NULL; + rootpp = NULL; + sp = NULL; if ((sptd->spt_flags & SHM_PAGEABLE) == 0) { sp = amp->a_sp; proj = sp->shm_perm.ipc_proj; diff --git a/usr/src/uts/common/vm/seg_vn.c b/usr/src/uts/common/vm/seg_vn.c index 8046d10212..e1b5b79b8d 100644 --- a/usr/src/uts/common/vm/seg_vn.c +++ b/usr/src/uts/common/vm/seg_vn.c @@ -2574,7 +2574,7 @@ segvn_softunlock(struct seg *seg, caddr_t addr, size_t len, enum seg_rw rw) caddr_t adr; struct vnode *vp; u_offset_t offset; - ulong_t anon_index; + ulong_t anon_index = 0; struct anon_map *amp; struct anon *ap = NULL; @@ -2725,7 +2725,7 @@ segvn_faultpage( int cow; int claim; int steal = 0; - ulong_t anon_index; + ulong_t anon_index = 0; struct anon *ap, *oldap; struct anon_map *amp; int hat_flag = (type == F_SOFTLOCK) ? HAT_LOAD_LOCK : HAT_LOAD; @@ -3890,6 +3890,7 @@ segvn_fault_vnodepages(struct hat *hat, struct seg *seg, caddr_t lpgaddr, } if (svd->pageprot) { + prot = PROT_NONE; switch (rw) { case S_READ: protchk = PROT_READ; @@ -3906,6 +3907,7 @@ segvn_fault_vnodepages(struct hat *hat, struct seg *seg, caddr_t lpgaddr, break; } } else { + protchk = PROT_NONE; prot = svd->prot; /* caller has already done segment level protection check. */ } @@ -3921,6 +3923,7 @@ segvn_fault_vnodepages(struct hat *hat, struct seg *seg, caddr_t lpgaddr, VM_STAT_COND_ADD(amp != NULL, segvnvmstats.fltvnpages[3]); + ierr = 0; for (;;) { adjszc_chk = 0; for (; a < lpgeaddr; a += pgsz, off += pgsz, aindx += pages) { @@ -4681,6 +4684,7 @@ segvn_fault_anonpages(struct hat *hat, struct seg *seg, caddr_t lpgaddr, } if (svd->pageprot) { + prot = PROT_NONE; switch (rw) { case S_READ: protchk = PROT_READ; @@ -4698,12 +4702,14 @@ segvn_fault_anonpages(struct hat *hat, struct seg *seg, caddr_t lpgaddr, } VM_STAT_ADD(segvnvmstats.fltanpages[2]); } else { + protchk = PROT_NONE; prot = svd->prot; /* caller has already done segment level protection check. */ } ppa = kmem_cache_alloc(segvn_szc_cache[ppaszc], KM_SLEEP); ANON_LOCK_ENTER(&->a_rwlock, RW_READER); + ierr = 0; for (;;) { adjszc_chk = 0; for (; a < lpgeaddr; a += pgsz, aindx += pages) { @@ -4932,12 +4938,12 @@ segvn_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, u_offset_t off; caddr_t a; struct vpage *vpage; - uint_t vpprot, prot; + uint_t vpprot, prot = 0; int err; page_t *pl[PVN_GETPAGE_NUM + 1]; size_t plsz, pl_alloc_sz; size_t page; - ulong_t anon_index; + ulong_t anon_index = 0; struct anon_map *amp; int dogetpage = 0; caddr_t lpgaddr, lpgeaddr; @@ -5235,8 +5241,8 @@ slow: */ if ((page != 0) && fltadvice && svd->tr_state != SEGVN_TR_ON) { - struct vpage *vpp; - ulong_t fanon_index; + struct vpage *vpp = NULL; + ulong_t fanon_index = 0; size_t fpage; u_offset_t pgoff, fpgoff; struct vnode *fvp; @@ -5674,10 +5680,10 @@ static int segvn_setprot(struct seg *seg, caddr_t addr, size_t len, uint_t prot) { struct segvn_data *svd = (struct segvn_data *)seg->s_data; - struct vpage *cvp, *svp, *evp; + struct vpage *cvp, *svp = NULL, *evp = NULL; struct vnode *vp; size_t pgsz; - pgcnt_t pgcnt; + pgcnt_t pgcnt = 0; anon_sync_obj_t cookie; int unload_done = 0; @@ -7256,9 +7262,9 @@ segvn_sync(struct seg *seg, caddr_t addr, size_t len, int attr, uint_t flags) int bflags; int err = 0; int segtype; - int pageprot; + int pageprot = 0; int prot; - ulong_t anon_index; + ulong_t anon_index = 0; struct anon_map *amp; struct anon *ap; anon_sync_obj_t cookie; @@ -7641,10 +7647,10 @@ segvn_lockop(struct seg *seg, caddr_t addr, size_t len, u_offset_t offset; u_offset_t off; int segtype; - int pageprot; + int pageprot = 0; int claim; struct vnode *vp; - ulong_t anon_index; + ulong_t anon_index = 0; struct anon_map *amp; struct anon *ap; struct vattr va; @@ -8331,7 +8337,7 @@ segvn_advise(struct seg *seg, caddr_t addr, size_t len, uint_t behav) } else { caddr_t eaddr; struct seg *new_seg; - struct segvn_data *new_svd; + struct segvn_data *new_svd = NULL; u_offset_t off; caddr_t oldeaddr; @@ -8704,7 +8710,7 @@ segvn_dump(struct seg *seg) struct segvn_data *svd; page_t *pp; struct anon_map *amp; - ulong_t anon_index; + ulong_t anon_index = 0; struct vnode *vp; u_offset_t off, offset; pfn_t pfn; @@ -8831,7 +8837,7 @@ segvn_pagelock(struct seg *seg, caddr_t addr, size_t len, struct page ***ppp, seg_preclaim_cbfunc_t preclaim_callback; size_t pgsz; int use_pcache; - size_t wlen; + size_t wlen = 0; uint_t pflags = 0; int sftlck_sbase = 0; int sftlck_send = 0; @@ -9592,7 +9598,7 @@ segvn_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp) { struct segvn_data *svd = (struct segvn_data *)seg->s_data; struct anon *ap = NULL; - ulong_t anon_index; + ulong_t anon_index = 0; struct anon_map *amp; anon_sync_obj_t cookie; diff --git a/usr/src/uts/common/vm/vm_as.c b/usr/src/uts/common/vm/vm_as.c index 853b092e6d..e4accd6fc8 100644 --- a/usr/src/uts/common/vm/vm_as.c +++ b/usr/src/uts/common/vm/vm_as.c @@ -1438,7 +1438,7 @@ as_map_segvn_segs(struct as *as, caddr_t addr, size_t size, uint_t szcvec, uint_t szc, nszc, save_szcvec; int error; caddr_t a, eaddr; - size_t pgsz; + size_t pgsz = 0; const boolean_t do_off = (vn_a->vp != NULL || vn_a->amp != NULL); ASSERT(AS_WRITE_HELD(as)); @@ -1642,7 +1642,7 @@ as_map_ansegs(struct as *as, caddr_t addr, size_t size, segcreate_func_t crfp, struct segvn_crargs *vn_a, boolean_t *segcreated) { uint_t szcvec; - uchar_t type; + uchar_t type = 0; ASSERT(vn_a->type == MAP_SHARED || vn_a->type == MAP_PRIVATE); if (vn_a->type == MAP_SHARED) { @@ -2280,6 +2280,9 @@ as_ctl(struct as *as, caddr_t addr, size_t size, int func, int attr, ulong_t *mlock_map; /* pointer to bitmap used */ /* to represent the locked */ /* pages. */ + + mlock_size = 0; + mlock_map = NULL; retry: if (error == IE_RETRY) AS_LOCK_ENTER(as, RW_WRITER); diff --git a/usr/src/uts/common/vm/vm_usage.c b/usr/src/uts/common/vm/vm_usage.c index e542e8e479..98ed21d059 100644 --- a/usr/src/uts/common/vm/vm_usage.c +++ b/usr/src/uts/common/vm/vm_usage.c @@ -1104,6 +1104,8 @@ vmu_calculate_seg(vmu_entity_t *vmu_entities, struct seg *seg) pgcnt_t swresv = 0; pgcnt_t panon = 0; + s_start = 0; + p_end = 0; /* Can zero-length segments exist? Not sure, so paranoia. */ if (seg->s_size <= 0) return; |