summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/brand/lx/procfs/lx_prvnops.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c b/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
index 5cf9e753bb..e89388aa75 100644
--- a/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
+++ b/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
@@ -1836,13 +1836,15 @@ lxpr_kstat_read(kstat_t *kn, boolean_t byname, size_t *size, int *num)
size_t bufsize;
void *buf = NULL;
- if (byname == B_TRUE)
+ if (byname == B_TRUE) {
kp = kstat_hold_byname(kn->ks_module, kn->ks_instance,
kn->ks_name, getzoneid());
- else
+ } else {
kp = kstat_hold_bykid(kn->ks_kid, getzoneid());
- if (kp == NULL)
+ }
+ if (kp == NULL) {
return (NULL);
+ }
if (kp->ks_flags & KSTAT_FLAG_INVALID) {
kstat_rele(kp);
return (NULL);
@@ -1861,14 +1863,16 @@ lxpr_kstat_read(kstat_t *kn, boolean_t byname, size_t *size, int *num)
buf = kmem_alloc(bufsize, KM_SLEEP);
/* Check if bufsize still appropriate */
- if (byname == B_TRUE)
+ if (byname == B_TRUE) {
kp = kstat_hold_byname(kn->ks_module, kn->ks_instance,
kn->ks_name, getzoneid());
- else
+ } else {
kp = kstat_hold_bykid(kn->ks_kid, getzoneid());
+ }
if (kp == NULL || kp->ks_flags & KSTAT_FLAG_INVALID) {
- if (kp != NULL)
+ if (kp != NULL) {
kstat_rele(kp);
+ }
kmem_free(buf, bufsize);
return (NULL);
}
@@ -1876,6 +1880,7 @@ lxpr_kstat_read(kstat_t *kn, boolean_t byname, size_t *size, int *num)
(void) KSTAT_UPDATE(kp, KSTAT_READ);
if (bufsize < kp->ks_data_size) {
kmem_free(buf, bufsize);
+ buf = NULL;
bufsize = kp->ks_data_size + 1;
KSTAT_EXIT(kp);
kstat_rele(kp);