summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2020-01-30 12:31:34 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2020-01-30 12:31:34 +0000
commitf0dcd619b1421138ac11033df8e0cf904ba1efcf (patch)
tree2e7668916bdeb41d7b6b70d455b3bea71a9bdc4d
parente0823b796aeea75fe40ec8888eb84ca5a25cff39 (diff)
parentc6f039c73ee9eb7e4acb232afaca51cdf9d30ff3 (diff)
downloadillumos-joyent-f0dcd619b1421138ac11033df8e0cf904ba1efcf.tar.gz
[illumos-gate merge]
commit c6f039c73ee9eb7e4acb232afaca51cdf9d30ff3 12172 genunix: variable may be used uninitialized commit 7093fd72e0be9a255aa4b1ed00a701f80699ac7d 12247 vtinfo and vtdaemon are missing CTF data
-rw-r--r--usr/src/cmd/vt/Makefile29
-rw-r--r--usr/src/common/devid/devid.c1
-rw-r--r--usr/src/uts/common/contract/device.c2
-rw-r--r--usr/src/uts/common/contract/process.c2
-rw-r--r--usr/src/uts/common/fs/fem.c3
-rw-r--r--usr/src/uts/common/fs/lookup.c5
-rw-r--r--usr/src/uts/common/fs/vfs.c4
-rw-r--r--usr/src/uts/common/fs/vnode.c4
-rw-r--r--usr/src/uts/common/os/contract.c11
-rw-r--r--usr/src/uts/common/os/devcfg.c2
-rw-r--r--usr/src/uts/common/os/devid_cache.c2
-rw-r--r--usr/src/uts/common/os/devpolicy.c6
-rw-r--r--usr/src/uts/common/os/dtrace_subr.c4
-rw-r--r--usr/src/uts/common/os/errorq.c4
-rw-r--r--usr/src/uts/common/os/evchannels.c2
-rw-r--r--usr/src/uts/common/os/exacct.c7
-rw-r--r--usr/src/uts/common/os/flock.c2
-rw-r--r--usr/src/uts/common/os/fork.c1
-rw-r--r--usr/src/uts/common/os/kmem.c1
-rw-r--r--usr/src/uts/common/os/log_sysevent.c2
-rw-r--r--usr/src/uts/common/os/modctl.c3
-rw-r--r--usr/src/uts/common/os/modsysfile.c6
-rw-r--r--usr/src/uts/common/os/ndifm.c11
-rw-r--r--usr/src/uts/common/os/pcifm.c1
-rw-r--r--usr/src/uts/common/os/pid.c3
-rw-r--r--usr/src/uts/common/os/pool.c4
-rw-r--r--usr/src/uts/common/os/sleepq.c5
-rw-r--r--usr/src/uts/common/os/streamio.c4
-rw-r--r--usr/src/uts/common/os/sunddi.c7
-rw-r--r--usr/src/uts/common/os/sunmdi.c11
-rw-r--r--usr/src/uts/common/os/sunndi.c1
-rw-r--r--usr/src/uts/common/os/sunpci.c3
-rw-r--r--usr/src/uts/common/os/sunpm.c8
-rw-r--r--usr/src/uts/common/os/taskq.c2
-rw-r--r--usr/src/uts/common/os/timer.c2
-rw-r--r--usr/src/uts/common/os/vmem.c2
-rw-r--r--usr/src/uts/common/os/waitq.c4
-rw-r--r--usr/src/uts/common/os/zone.c59
-rw-r--r--usr/src/uts/common/syscall/acl.c3
-rw-r--r--usr/src/uts/common/syscall/lgrpsys.c1
-rw-r--r--usr/src/uts/common/syscall/lwpsys.c1
-rw-r--r--usr/src/uts/common/syscall/memcntl.c1
-rw-r--r--usr/src/uts/common/syscall/psecflags.c5
-rw-r--r--usr/src/uts/common/syscall/sendfile.c8
-rw-r--r--usr/src/uts/common/vm/hat_refmod.c1
-rw-r--r--usr/src/uts/common/vm/seg_dev.c38
-rw-r--r--usr/src/uts/common/vm/seg_kp.c2
-rw-r--r--usr/src/uts/common/vm/seg_spt.c4
-rw-r--r--usr/src/uts/common/vm/seg_vn.c38
-rw-r--r--usr/src/uts/common/vm/vm_as.c7
-rw-r--r--usr/src/uts/common/vm/vm_usage.c2
51 files changed, 205 insertions, 136 deletions
diff --git a/usr/src/cmd/vt/Makefile b/usr/src/cmd/vt/Makefile
index a08e04c18b..30ed96000b 100644
--- a/usr/src/cmd/vt/Makefile
+++ b/usr/src/cmd/vt/Makefile
@@ -23,43 +23,42 @@
# Use is subject to license terms.
#
# Copyright 2015 RackTop Systems.
+# Copyright 2020 Joyent, Inc.
#
PROG= vtdaemon vtinfo vtxlock
VTDAEMON_SRC= vtdaemon.c
+VTDAEMON_OBJ= $(VTDAEMON_SRC:%.c=%.o)
+vtdaemon := OBJS = $(VTDAEMON_OBJ)
+
VTINFO_SRC= vtinfo.c
+VTINFO_OBJ= $(VTINFO_SRC:%.c=%.o)
+vtinfo := OBJS = $(VTINFO_OBJ)
-include ../Makefile.cmd
+include $(SRC)/cmd/Makefile.cmd
+include $(SRC)/cmd/Makefile.ctf
CFLAGS += $(CCVERBOSE)
CERRWARN += $(CNOWARN_UNINIT)
vtdaemon := LDLIBS += -lpam -lbsm
-lint_vtdaemon := LDLIBS += -lpam -lbsm
.KEEP_STATE:
-all: $(PROG)
+all: $(PROG)
-vtdaemon: $(VTDAEMON_SRC)
- $(LINK.c) -o $@ $(VTDAEMON_SRC) $(LDLIBS)
+vtdaemon: $(VTDAEMON_OBJ)
+ $(LINK.c) -o $@ $(VTDAEMON_OBJ) $(LDLIBS)
$(POST_PROCESS)
-vtinfo: $(VTINFO_SRC)
- $(LINK.c) -o $@ $(VTINFO_SRC) $(LDLIBS)
+vtinfo: $(VTINFO_OBJ)
+ $(LINK.c) -o $@ $(VTINFO_OBJ) $(LDLIBS)
$(POST_PROCESS)
install: all $(ROOTLIBPROG)
clean:
-
-lint: lint_vtdaemon lint_vtinfo
-
-lint_vtdaemon:
- $(LINT.c) $(VTDAEMON_SRC) $(LDLIBS)
-
-lint_vtinfo:
- $(LINT.c) $(VTINFO_SRC) $(LDLIBS)
+ -$(RM) $(VTDAEMON_OBJ) $(VTINFO_OBJ)
include ../Makefile.targ
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 6e43bd7aef..d5cf629276 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 50633859ce..769316bb4c 100644
--- a/usr/src/uts/common/fs/fem.c
+++ b/usr/src/uts/common/fs/fem.c
@@ -3715,8 +3715,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 f6910c07cf..093db5a4b4 100644
--- a/usr/src/uts/common/fs/lookup.c
+++ b/usr/src/uts/common/fs/lookup.c
@@ -829,8 +829,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;
@@ -841,6 +839,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 77bc7817a8..460d15bcbd 100644
--- a/usr/src/uts/common/fs/vfs.c
+++ b/usr/src/uts/common/fs/vfs.c
@@ -1099,7 +1099,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;
@@ -1489,8 +1489,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 6d6c4af5ca..e16dbbbc8d 100644
--- a/usr/src/uts/common/fs/vnode.c
+++ b/usr/src/uts/common/fs/vnode.c
@@ -2099,13 +2099,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 1a3502a710..e4b1db84e1 100644
--- a/usr/src/uts/common/os/contract.c
+++ b/usr/src/uts/common/os/contract.c
@@ -1546,6 +1546,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) {
@@ -1616,6 +1617,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) {
@@ -1630,13 +1632,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 7e198910b4..183e1f4333 100644
--- a/usr/src/uts/common/os/fork.c
+++ b/usr/src/uts/common/os/fork.c
@@ -169,6 +169,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 168e171919..d12928acc3 100644
--- a/usr/src/uts/common/os/kmem.c
+++ b/usr/src/uts/common/os/kmem.c
@@ -3874,6 +3874,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 f1003f7834..d8782b320e 100644
--- a/usr/src/uts/common/os/modctl.c
+++ b/usr/src/uts/common/os/modctl.c
@@ -416,6 +416,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);
@@ -502,6 +503,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)
@@ -2801,6 +2803,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 338e45bbc5..2015cfefae 100644
--- a/usr/src/uts/common/os/modsysfile.c
+++ b/usr/src/uts/common/os/modsysfile.c
@@ -3154,12 +3154,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 171a8253cc..d48be19c71 100644
--- a/usr/src/uts/common/os/pid.c
+++ b/usr/src/uts/common/os/pid.c
@@ -179,7 +179,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 15d612078c..1a1a734d5f 100644
--- a/usr/src/uts/common/os/streamio.c
+++ b/usr/src/uts/common/os/streamio.c
@@ -6588,7 +6588,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;
@@ -7154,7 +7154,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 e0cc20fa45..7abe676c14 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 5453ebf380..c965db6737 100644
--- a/usr/src/uts/common/os/timer.c
+++ b/usr/src/uts/common/os/timer.c
@@ -422,7 +422,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 ad35fd7187..933834aee9 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 3d4e7ed7cd..fa841df9ff 100644
--- a/usr/src/uts/common/os/zone.c
+++ b/usr/src/uts/common/os/zone.c
@@ -7023,6 +7023,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;
@@ -7036,28 +7037,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);
@@ -7066,14 +7064,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);
}
@@ -7093,8 +7089,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 721f884a7e..027ba7a2bc 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 16c6fdd27e..7cfd5bc188 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 fc77d874e0..1a9ef5223f 100644
--- a/usr/src/uts/common/vm/seg_spt.c
+++ b/usr/src/uts/common/vm/seg_spt.c
@@ -566,6 +566,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)
@@ -806,6 +807,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 da6393f792..75e3bf5acb 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(&amp->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;
@@ -7642,10 +7648,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;
@@ -8332,7 +8338,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;
@@ -8705,7 +8711,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;
@@ -8832,7 +8838,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;
@@ -9593,7 +9599,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 ec6d2b8920..69726d10c5 100644
--- a/usr/src/uts/common/vm/vm_as.c
+++ b/usr/src/uts/common/vm/vm_as.c
@@ -1439,7 +1439,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));
@@ -1643,7 +1643,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) {
@@ -2295,6 +2295,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 01c2666e91..88c694336d 100644
--- a/usr/src/uts/common/vm/vm_usage.c
+++ b/usr/src/uts/common/vm/vm_usage.c
@@ -1151,6 +1151,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;