summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorPatrick Mooney <pmooney@pfmooney.com>2016-06-13 18:25:25 +0000
committerPatrick Mooney <pmooney@pfmooney.com>2016-06-16 02:06:21 +0000
commit1f08385768db431ea5cf7fa5d3c37d4991908a2f (patch)
tree9b65dd195e13cbfb057c42cfda6c58ac91dfe697 /usr/src
parent3112412ca585c56db075bfd875b942c104281f36 (diff)
downloadillumos-joyent-1f08385768db431ea5cf7fa5d3c37d4991908a2f.tar.gz
OS-5462 lxbrand kernel should be lint clean
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/brand/lx/cgroups/cgrps.h3
-rw-r--r--usr/src/uts/common/brand/lx/cgroups/cgrps_node.c29
-rw-r--r--usr/src/uts/common/brand/lx/cgroups/cgrps_vfsops.c9
-rw-r--r--usr/src/uts/common/brand/lx/cgroups/cgrps_vnops.c38
-rw-r--r--usr/src/uts/common/brand/lx/devfs/lxd.h5
-rw-r--r--usr/src/uts/common/brand/lx/devfs/lxd_node.c19
-rw-r--r--usr/src/uts/common/brand/lx/devfs/lxd_vfsops.c5
-rw-r--r--usr/src/uts/common/brand/lx/devfs/lxd_vnops.c15
-rw-r--r--usr/src/uts/common/brand/lx/io/lx_netlink.c14
-rw-r--r--usr/src/uts/common/brand/lx/os/lx_brand.c83
-rw-r--r--usr/src/uts/common/brand/lx/os/lx_misc.c3
-rw-r--r--usr/src/uts/common/brand/lx/os/lx_syscall.c16
-rw-r--r--usr/src/uts/common/brand/lx/procfs/lx_prvnops.c92
-rw-r--r--usr/src/uts/common/brand/lx/sys/lx_brand.h4
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_cpu.c3
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_getdents.c32
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_id.c4
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_ioctl.c40
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_open.c4
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_prctl.c11
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_socket.c29
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_thread_area.c3
-rw-r--r--usr/src/uts/common/brand/lx/syscall/lx_timer.c6
-rw-r--r--usr/src/uts/common/brand/lx/sysfs/lx_syssubr.c19
-rw-r--r--usr/src/uts/common/brand/lx/sysfs/lx_sysvnops.c14
-rw-r--r--usr/src/uts/common/brand/sn1/sn1_brand.c10
-rw-r--r--usr/src/uts/common/brand/solaris10/s10_brand.c10
-rw-r--r--usr/src/uts/common/os/sysent.c9
-rw-r--r--usr/src/uts/common/sys/brand.h2
-rw-r--r--usr/src/uts/common/syscall/brandsys.c6
-rw-r--r--usr/src/uts/intel/brand/lx/lx_archdep.c15
-rw-r--r--usr/src/uts/intel/lx_brand/Makefile.rules5
-rw-r--r--usr/src/uts/intel/sys/machbrand.h3
33 files changed, 306 insertions, 254 deletions
diff --git a/usr/src/uts/common/brand/lx/cgroups/cgrps.h b/usr/src/uts/common/brand/lx/cgroups/cgrps.h
index df938adcea..82005fd1d8 100644
--- a/usr/src/uts/common/brand/lx/cgroups/cgrps.h
+++ b/usr/src/uts/common/brand/lx/cgroups/cgrps.h
@@ -202,8 +202,7 @@ extern struct vnodeops *cgrp_vnodeops;
int cgrp_dirdelete(cgrp_node_t *, cgrp_node_t *, char *, enum dr_op, cred_t *);
int cgrp_direnter(cgrp_mnt_t *, cgrp_node_t *, char *, enum de_op,
- cgrp_node_t *, struct vattr *, cgrp_node_t **, cred_t *,
- caller_context_t *);
+ cgrp_node_t *, struct vattr *, cgrp_node_t **, cred_t *);
void cgrp_dirinit(cgrp_node_t *, cgrp_node_t *, cred_t *);
int cgrp_dirlookup(cgrp_node_t *, char *, cgrp_node_t **, cred_t *);
void cgrp_dirtrunc(cgrp_node_t *);
diff --git a/usr/src/uts/common/brand/lx/cgroups/cgrps_node.c b/usr/src/uts/common/brand/lx/cgroups/cgrps_node.c
index 8950be1966..66b6f60376 100644
--- a/usr/src/uts/common/brand/lx/cgroups/cgrps_node.c
+++ b/usr/src/uts/common/brand/lx/cgroups/cgrps_node.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/types.h>
@@ -32,7 +32,7 @@
static int cgrp_dirmakecgnode(cgrp_node_t *, cgrp_mnt_t *, struct vattr *,
enum de_op, cgrp_node_t **, struct cred *);
-static int cgrp_diraddentry(cgrp_node_t *, cgrp_node_t *, char *, enum de_op);
+static int cgrp_diraddentry(cgrp_node_t *, cgrp_node_t *, char *);
static cgrp_subsys_dirent_t cgrp_generic_dir[] = {
{ CG_PROCS, "cgroup.procs" },
@@ -128,7 +128,7 @@ cgrp_hash_out(cgrp_dirent_t *c)
static cgrp_dirent_t *
cgrp_hash_lookup(char *name, cgrp_node_t *parent, cgrp_nodehold_t hold,
- cgrp_node_t **found)
+ cgrp_node_t **found)
{
cgrp_dirent_t *l;
uint_t hash;
@@ -222,15 +222,13 @@ cgrp_cg_hash_remove(cgrp_mnt_t *cgm, cgrp_node_t *cn)
* We have to look at all of the processes to find applicable ones.
*/
static void
-cgrp_cg_hash_init(cgrp_mnt_t *cgm, cgrp_node_t *cn)
+cgrp_cg_hash_init(cgrp_node_t *cn)
{
int i;
int cnt = 0;
zoneid_t zoneid = curproc->p_zone->zone_id;
pid_t schedpid = curproc->p_zone->zone_zsched->p_pid;
- ASSERT(MUTEX_HELD(&cgm->cg_contents));
-
/* Scan all of the process entries */
mutex_enter(&pidlock);
for (i = 1; i < v.v_proc; i++) {
@@ -351,10 +349,9 @@ int
cgrp_dirlookup(cgrp_node_t *parent, char *name, cgrp_node_t **foundcp,
cred_t *cred)
{
- cgrp_mnt_t *cgm = VTOCGM(parent->cgn_vnode);
int error;
- ASSERT(MUTEX_HELD(&cgm->cg_contents));
+ ASSERT(MUTEX_HELD(&VTOCGM(parent->cgn_vnode)->cg_contents));
*foundcp = NULL;
if (parent->cgn_type != CG_CGROUP_DIR)
return (ENOTDIR);
@@ -398,8 +395,7 @@ cgrp_direnter(
cgrp_node_t *cn, /* existing cgrp_node, if rename */
struct vattr *va,
cgrp_node_t **cnp, /* return cgrp_node, if create/mkdir */
- cred_t *cred,
- caller_context_t *ctp)
+ cred_t *cred)
{
cgrp_dirent_t *cdp;
cgrp_node_t *found = NULL;
@@ -484,7 +480,7 @@ cgrp_direnter(
}
}
- error = cgrp_diraddentry(dir, cn, name, op);
+ error = cgrp_diraddentry(dir, cn, name);
if (error != 0) {
if (op == DE_CREATE || op == DE_MKDIR) {
/*
@@ -715,8 +711,8 @@ cgrp_addnode(cgrp_mnt_t *cgm, cgrp_node_t *dir, char *name,
ASSERT(MUTEX_HELD(&cgm->cg_contents));
- cgrp_direnter(cgm, dir, name, DE_CREATE, (cgrp_node_t *)NULL, nattr,
- &ncn, cr, NULL);
+ VERIFY0(cgrp_direnter(cgm, dir, name, DE_CREATE, (cgrp_node_t *)NULL,
+ nattr, &ncn, cr));
/*
* Fix the inode and assign the pseudo file type to be correct.
@@ -772,7 +768,7 @@ cgrp_dirinit(cgrp_node_t *parent, cgrp_node_t *dir, cred_t *cr)
cgrp_cg_hash_insert(cgm, dir);
/* Initialise the first cgroup if this is top-level group */
if (parent == dir)
- cgrp_cg_hash_init(cgm, dir);
+ cgrp_cg_hash_init(dir);
/*
* Initialize the entries
@@ -844,9 +840,8 @@ cgrp_dirtrunc(cgrp_node_t *dir)
{
cgrp_dirent_t *cgdp;
timestruc_t now;
- cgrp_mnt_t *cgm = VTOCGM(dir->cgn_vnode);
- ASSERT(MUTEX_HELD(&cgm->cg_contents));
+ ASSERT(MUTEX_HELD(&VTOCGM(dir->cgn_vnode)->cg_contents));
ASSERT(dir->cgn_type == CG_CGROUP_DIR);
for (cgdp = dir->cgn_dir; cgdp; cgdp = dir->cgn_dir) {
@@ -884,7 +879,7 @@ cgrp_dirtrunc(cgrp_node_t *dir)
}
static int
-cgrp_diraddentry(cgrp_node_t *dir, cgrp_node_t *cn, char *name, enum de_op op)
+cgrp_diraddentry(cgrp_node_t *dir, cgrp_node_t *cn, char *name)
{
cgrp_dirent_t *cdp, *cpdp;
size_t namelen, alloc_size;
diff --git a/usr/src/uts/common/brand/lx/cgroups/cgrps_vfsops.c b/usr/src/uts/common/brand/lx/cgroups/cgrps_vfsops.c
index a9bd783569..22966295e0 100644
--- a/usr/src/uts/common/brand/lx/cgroups/cgrps_vfsops.c
+++ b/usr/src/uts/common/brand/lx/cgroups/cgrps_vfsops.c
@@ -484,7 +484,7 @@ cgrp_mount(vfs_t *vfsp, vnode_t *mvp, struct mounta *uap, cred_t *cr)
cgm->cg_rootnode = cp;
cp->cgn_type = CG_CGROUP_DIR;
- cp->cgn_nodeid = cgrp_inode(ssid, cgm->cg_gen);
+ cp->cgn_nodeid = cgrp_inode(CG_CGROUP_DIR, cgm->cg_gen);
cgrp_dirinit(cp, cp, cr);
mutex_exit(&cgm->cg_contents);
@@ -915,7 +915,6 @@ cgrp_rel_agent_event(cgrp_mnt_t *cgm, cgrp_node_t *cn)
char nm[MAXNAMELEN];
char *argstr, *oldstr, *tmp;
id_t cid;
- int agent_err;
proc_t *p = ttoproc(curthread);
zone_t *z = p->p_zone;
lx_lwp_data_t *plwpd = ttolxlwp(curthread);
@@ -944,7 +943,7 @@ cgrp_rel_agent_event(cgrp_mnt_t *cgm, cgrp_node_t *cn)
* Iterate up the directory tree to construct the agent argument string.
*/
do {
- cgrp_get_dirname(cn, nm, sizeof (nm));
+ VERIFY0(cgrp_get_dirname(cn, nm, sizeof (nm)));
DTRACE_PROBE1(cgrp__dir__name, char *, nm);
if (*argstr == '\0') {
(void) snprintf(argstr, MAXPATHLEN, "/%s", nm);
@@ -999,8 +998,8 @@ cgrp_rel_agent_event(cgrp_mnt_t *cgm, cgrp_node_t *cn)
if (cid == -1)
cid = defaultcid;
- if ((agent_err = newproc(cgrp_run_rel_agent, (void *)rarg, cid,
- minclsyspri - 1, NULL, -1)) != 0) {
+ if (newproc(cgrp_run_rel_agent, (void *)rarg, cid, minclsyspri - 1,
+ NULL, -1) != 0) {
/* There's nothing we can do if creating the proc fails. */
kmem_free(rarg->crraa_event_path, MAXPATHLEN);
kmem_free(rarg->crraa_agent_path, sizeof (cgm->cg_agent));
diff --git a/usr/src/uts/common/brand/lx/cgroups/cgrps_vnops.c b/usr/src/uts/common/brand/lx/cgroups/cgrps_vnops.c
index bd571c8c18..08136ddfdb 100644
--- a/usr/src/uts/common/brand/lx/cgroups/cgrps_vnops.c
+++ b/usr/src/uts/common/brand/lx/cgroups/cgrps_vnops.c
@@ -401,15 +401,12 @@ cgrp_wr_proc_or_task(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio,
}
static int
-cgrp_wr(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio, struct cred *cr,
- caller_context_t *ct)
+cgrp_wr(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio)
{
- struct vnode *vp;
int error = 0;
rlim64_t limit = uio->uio_llimit;
- vp = CGNTOV(cn);
- ASSERT(vp->v_type == VREG);
+ ASSERT(CGNTOV(cn)->v_type == VREG);
if (uio->uio_loffset < 0)
return (EINVAL);
@@ -610,7 +607,7 @@ cgrp_rd_procs(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio)
/* Scan all of the process entries */
for (i = 1; i < v.v_proc && (uresid = uio->uio_resid) > 0; i++) {
proc_t *p;
- int len;
+ ssize_t len;
pid_t pid;
char buf[16];
char *rdp;
@@ -780,12 +777,11 @@ cgrp_rd_proc_tasks(uint_t cg_id, proc_t *p, pid_t initpid, ssize_t *offset,
* can change if we fill up the read buffer and come back later for a
* subsequent read).
*/
-int
+static int
cgrp_rd_tasks(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio)
{
int i;
ssize_t offset = 0;
- ssize_t uresid;
zoneid_t zoneid = curproc->p_zone->zone_id;
int error = 0;
pid_t initpid = curproc->p_zone->zone_proc_initpid;
@@ -794,7 +790,7 @@ cgrp_rd_tasks(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio)
uint_t cg_id = cn->cgn_parent->cgn_id;
/* Scan all of the process entries */
- for (i = 1; i < v.v_proc && (uresid = uio->uio_resid) > 0; i++) {
+ for (i = 1; i < v.v_proc && uio->uio_resid > 0; i++) {
proc_t *p;
mutex_enter(&pidlock);
@@ -843,7 +839,7 @@ cgrp_rd_tasks(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio)
}
static int
-cgrp_rd(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio, caller_context_t *ct)
+cgrp_rd(cgrp_mnt_t *cgm, cgrp_node_t *cn, struct uio *uio)
{
int error = 0;
@@ -890,11 +886,12 @@ cgrp_read(struct vnode *vp, struct uio *uiop, int ioflag, cred_t *cred,
return (EISDIR);
if (vp->v_type != VREG)
return (EINVAL);
- error = cgrp_rd(cgm, cn, uiop, ct);
+ error = cgrp_rd(cgm, cn, uiop);
return (error);
}
+/* ARGSUSED */
static int
cgrp_write(struct vnode *vp, struct uio *uiop, int ioflag, struct cred *cred,
struct caller_context *ct)
@@ -914,7 +911,7 @@ cgrp_write(struct vnode *vp, struct uio *uiop, int ioflag, struct cred *cred,
uiop->uio_loffset = cn->cgn_size;
}
- error = cgrp_wr(cgm, cn, uiop, cred, ct);
+ error = cgrp_wr(cgm, cn, uiop);
return (error);
}
@@ -926,15 +923,9 @@ cgrp_getattr(struct vnode *vp, struct vattr *vap, int flags, struct cred *cred,
{
cgrp_node_t *cn = VTOCGN(vp);
cgrp_mnt_t *cgm;
- struct vattr va;
- int attrs = 1;
cgm = VTOCGM(cn->cgn_vnode);
mutex_enter(&cgm->cg_contents);
- if (attrs == 0) {
- cn->cgn_uid = va.va_uid;
- cn->cgn_gid = va.va_gid;
- }
vap->va_type = vp->v_type;
vap->va_mode = cn->cgn_mode & MODEMASK;
vap->va_uid = cn->cgn_uid;
@@ -1065,7 +1056,7 @@ cgrp_lookup(struct vnode *dvp, char *nm, struct vnode **vpp,
return (error);
}
-/*ARGSUSED7*/
+/* ARGSUSED */
static int
cgrp_create(struct vnode *dvp, char *nm, struct vattr *vap,
enum vcexcl exclusive, int mode, struct vnode **vpp, struct cred *cred,
@@ -1141,7 +1132,7 @@ cgrp_remove(struct vnode *dvp, char *nm, struct cred *cred,
return (EPERM);
}
-/* ARGSUSED4 */
+/* ARGSUSED */
static int
cgrp_link(struct vnode *dvp, struct vnode *srcvp, char *cnm, struct cred *cred,
caller_context_t *ct, int flags)
@@ -1222,7 +1213,7 @@ cgrp_rename(
*/
error = cgrp_direnter(cgm, fromparent, nnm, DE_RENAME,
fromcn, (struct vattr *)NULL,
- (cgrp_node_t **)NULL, cred, ct);
+ (cgrp_node_t **)NULL, cred);
if (error)
goto done;
@@ -1282,7 +1273,7 @@ cgrp_mkdir(struct vnode *dvp, char *nm, struct vattr *va, struct vnode **vpp,
}
error = cgrp_direnter(cgm, parent, nm, DE_MKDIR, (cgrp_node_t *)NULL,
- va, &self, cred, ct);
+ va, &self, cred);
if (error) {
mutex_exit(&cgm->cg_contents);
if (self != NULL)
@@ -1422,6 +1413,7 @@ cgrp_readdir(struct vnode *vp, struct uio *uiop, struct cred *cred, int *eofp,
bufsize = total_bytes_wanted + sizeof (struct dirent64);
outbuf = kmem_alloc(bufsize, KM_SLEEP);
+ /* LINTED: alignment */
dp = (struct dirent64 *)outbuf;
offset = 0;
@@ -1478,7 +1470,7 @@ cgrp_readdir(struct vnode *vp, struct uio *uiop, struct cred *cred, int *eofp,
return (error);
}
-/* ARGSUSED5 */
+/* ARGSUSED */
static int
cgrp_symlink(struct vnode *dvp, char *lnm, struct vattr *cva, char *cnm,
struct cred *cred, caller_context_t *ct, int flags)
diff --git a/usr/src/uts/common/brand/lx/devfs/lxd.h b/usr/src/uts/common/brand/lx/devfs/lxd.h
index cd256c27c5..a0813a9a12 100644
--- a/usr/src/uts/common/brand/lx/devfs/lxd.h
+++ b/usr/src/uts/common/brand/lx/devfs/lxd.h
@@ -215,9 +215,8 @@ vnode_t *lxd_make_back_node(vnode_t *, lxd_mnt_t *);
void lxd_free_back_node(lxd_node_t *);
int lxd_dirdelete(lxd_node_t *, lxd_node_t *, char *, enum dr_op, cred_t *);
int lxd_direnter(lxd_mnt_t *, lxd_node_t *, char *, enum de_op, lxd_node_t *,
- lxd_node_t *, struct vattr *, lxd_node_t **, cred_t *,
- caller_context_t *);
-void lxd_dirinit(lxd_node_t *, lxd_node_t *, cred_t *);
+ lxd_node_t *, struct vattr *, lxd_node_t **, cred_t *);
+void lxd_dirinit(lxd_node_t *, lxd_node_t *);
int lxd_dirlookup(lxd_node_t *, char *, lxd_node_t **, cred_t *);
void lxd_dirtrunc(lxd_node_t *);
void lxd_node_init(lxd_mnt_t *, lxd_node_t *, vnode_t *, vattr_t *, cred_t *);
diff --git a/usr/src/uts/common/brand/lx/devfs/lxd_node.c b/usr/src/uts/common/brand/lx/devfs/lxd_node.c
index 9e67f988bc..0d056ab167 100644
--- a/usr/src/uts/common/brand/lx/devfs/lxd_node.c
+++ b/usr/src/uts/common/brand/lx/devfs/lxd_node.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/types.h>
@@ -318,7 +318,7 @@ lxd_dirlookup(lxd_node_t *parent, char *name, lxd_node_t **foundnp, cred_t *cr)
* The target directory is locked by the caller.
*/
static int
-lxd_dircheckpath(lxd_node_t *fromnode, lxd_node_t *toparent, cred_t *cr)
+lxd_dircheckpath(lxd_node_t *fromnode, lxd_node_t *toparent)
{
int error = 0;
lxd_node_t *dir, *dotdot;
@@ -402,7 +402,7 @@ lxd_dir_make_node(lxd_node_t *dir, lxd_mnt_t *lxdm, struct vattr *va,
ldn->lxdn_mtime = va->va_mtime;
if (op == DE_MKDIR) {
- lxd_dirinit(dir, ldn, cred);
+ lxd_dirinit(dir, ldn);
}
*newnode = ldn;
@@ -410,7 +410,7 @@ lxd_dir_make_node(lxd_node_t *dir, lxd_mnt_t *lxdm, struct vattr *va,
}
static int
-lxd_diraddentry(lxd_node_t *dir, lxd_node_t *ldn, char *name, enum de_op op)
+lxd_diraddentry(lxd_node_t *dir, lxd_node_t *ldn, char *name)
{
lxd_dirent_t *dp, *pdp;
size_t namelen, alloc_size;
@@ -525,8 +525,7 @@ lxd_direnter(
lxd_node_t *ldn, /* existing lxd_node, if rename */
struct vattr *va,
lxd_node_t **rnp, /* return lxd_node, if create/mkdir */
- cred_t *cr,
- caller_context_t *ctp)
+ cred_t *cr)
{
lxd_dirent_t *dirp;
lxd_node_t *found = NULL;
@@ -591,7 +590,7 @@ lxd_direnter(
}
if ((ldn->lxdn_vnode->v_type) == VDIR) {
if ((fromparent != dir) &&
- (error = lxd_dircheckpath(ldn, dir, cr)) != 0) {
+ (error = lxd_dircheckpath(ldn, dir)) != 0) {
goto out;
}
}
@@ -634,7 +633,7 @@ lxd_direnter(
if (error != 0)
goto out;
- error = lxd_diraddentry(dir, ldn, name, op);
+ error = lxd_diraddentry(dir, ldn, name);
if (error == 0 && rnp != NULL)
*rnp = ldn;
break;
@@ -657,7 +656,7 @@ lxd_direnter(
goto out;
}
- error = lxd_diraddentry(dir, ldn, name, op);
+ error = lxd_diraddentry(dir, ldn, name);
if (error != 0) {
if (op == DE_CREATE || op == DE_MKDIR) {
/*
@@ -895,7 +894,7 @@ lxd_node_init(lxd_mnt_t *lxdm, lxd_node_t *ldn, vnode_t *realvp, vattr_t *vap,
* directory.
*/
void
-lxd_dirinit(lxd_node_t *parent, lxd_node_t *dir, cred_t *cr)
+lxd_dirinit(lxd_node_t *parent, lxd_node_t *dir)
{
lxd_dirent_t *dot, *dotdot;
timestruc_t now;
diff --git a/usr/src/uts/common/brand/lx/devfs/lxd_vfsops.c b/usr/src/uts/common/brand/lx/devfs/lxd_vfsops.c
index b474c329ad..e176bec7a4 100644
--- a/usr/src/uts/common/brand/lx/devfs/lxd_vfsops.c
+++ b/usr/src/uts/common/brand/lx/devfs/lxd_vfsops.c
@@ -320,7 +320,7 @@ lxd_xlate_init()
if (lookupnameat(tpath, UIO_SYSSPACE, FOLLOW, NULL,
&vp, NULL) != 0) {
- mt[j].lxd_mt_minor = -1;
+ mt[j].lxd_mt_minor = UINT_MAX;
continue;
}
@@ -476,7 +476,7 @@ lxd_mount(vfs_t *vfsp, vnode_t *mvp, struct mounta *uap, cred_t *cr)
lxdm->lxdm_rootnode = ldn;
ldn->lxdn_nodeid = lxdm->lxdm_gen++;
- lxd_dirinit(ldn, ldn, cr);
+ lxd_dirinit(ldn, ldn);
rw_exit(&ldn->lxdn_rwlock);
@@ -823,6 +823,7 @@ lxd_pts_devt_translator(dev_t dev, dev_t *jdev)
*jdev = LX_MAKEDEVICE(lx_maj, lx_min);
}
+/* ARGSUSED */
static void
lxd_ptm_devt_translator(dev_t dev, dev_t *jdev)
{
diff --git a/usr/src/uts/common/brand/lx/devfs/lxd_vnops.c b/usr/src/uts/common/brand/lx/devfs/lxd_vnops.c
index bee93f6aad..a39cd5a0db 100644
--- a/usr/src/uts/common/brand/lx/devfs/lxd_vnops.c
+++ b/usr/src/uts/common/brand/lx/devfs/lxd_vnops.c
@@ -355,6 +355,7 @@ lxd_fsync(vnode_t *vp, int syncflag, struct cred *cr, caller_context_t *ct)
return (VOP_FSYNC(vp, syncflag, cr, ct));
}
+/* ARGSUSED */
static void
lxd_front_inactive(struct vnode *vp, struct cred *cred, caller_context_t *ct)
{
@@ -658,7 +659,7 @@ lxd_create(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
lnp = NULL;
rw_enter(&parent->lxdn_rwlock, RW_WRITER);
error = lxd_direnter(lxdm, parent, nm, DE_CREATE, NULL, NULL,
- va, &lnp, cr, ct);
+ va, &lnp, cr);
rw_exit(&parent->lxdn_rwlock);
if (error == 0) {
@@ -677,6 +678,7 @@ lxd_create(vnode_t *dvp, char *nm, struct vattr *va, enum vcexcl exclusive,
return (error);
}
+/* ARGSUSED */
static int
lxd_remove(vnode_t *dvp, char *nm, struct cred *cr, caller_context_t *ct,
int flags)
@@ -706,6 +708,7 @@ lxd_remove(vnode_t *dvp, char *nm, struct cred *cr, caller_context_t *ct,
return (error);
}
+/* ARGSUSED */
static int
lxd_link(vnode_t *tdvp, vnode_t *vp, char *tnm, struct cred *cr,
caller_context_t *ct, int flags)
@@ -713,6 +716,7 @@ lxd_link(vnode_t *tdvp, vnode_t *vp, char *tnm, struct cred *cr,
return (ENOTSUP);
}
+/* ARGSUSED */
static int
lxd_rename(vnode_t *odvp, char *onm, vnode_t *ndvp, char *nnm, struct cred *cr,
caller_context_t *ct, int flags)
@@ -780,7 +784,7 @@ lxd_rename(vnode_t *odvp, char *onm, vnode_t *ndvp, char *nnm, struct cred *cr,
rw_enter(&newparent->lxdn_rwlock, RW_WRITER);
error = lxd_direnter(lxdm, newparent, nnm, DE_RENAME,
oldparent, fromnode, (struct vattr *)NULL, (lxd_node_t **)NULL,
- cr, ct);
+ cr);
rw_exit(&newparent->lxdn_rwlock);
if (error)
@@ -810,6 +814,7 @@ done:
return (error);
}
+/* ARGSUSED */
static int
lxd_mkdir(vnode_t *dvp, char *nm, struct vattr *va, vnode_t **vpp,
struct cred *cr, caller_context_t *ct, int flags, vsecattr_t *vsecp)
@@ -830,7 +835,7 @@ lxd_mkdir(vnode_t *dvp, char *nm, struct vattr *va, vnode_t **vpp,
/* make front directory */
rw_enter(&parent->lxdn_rwlock, RW_WRITER);
error = lxd_direnter(lxdm, parent, nm, DE_MKDIR, NULL, NULL,
- va, &ndir, cr, ct);
+ va, &ndir, cr);
rw_exit(&parent->lxdn_rwlock);
if (error != 0) {
@@ -862,6 +867,7 @@ lxd_realvp(vnode_t *vp, vnode_t **vpp, caller_context_t *ct)
return (0);
}
+/* ARGSUSED */
static int
lxd_rmdir(vnode_t *dvp, char *nm, vnode_t *cdir, struct cred *cr,
caller_context_t *ct, int flags)
@@ -936,6 +942,7 @@ err:
}
/* Not static so it can be used during mount. */
+/* ARGSUSED */
int
lxd_symlink(vnode_t *dvp, char *nm, struct vattr *tva, char *tnm,
struct cred *cr, caller_context_t *ct, int flags)
@@ -958,7 +965,7 @@ lxd_symlink(vnode_t *dvp, char *nm, struct vattr *tva, char *tnm,
/* make symlink in the front */
rw_enter(&parent->lxdn_rwlock, RW_WRITER);
error = lxd_direnter(lxdm, parent, nm, DE_CREATE, NULL, NULL,
- tva, &self, cr, ct);
+ tva, &self, cr);
rw_exit(&parent->lxdn_rwlock);
if (error) {
diff --git a/usr/src/uts/common/brand/lx/io/lx_netlink.c b/usr/src/uts/common/brand/lx/io/lx_netlink.c
index 6fec9ef4cb..d25a5d1296 100644
--- a/usr/src/uts/common/brand/lx/io/lx_netlink.c
+++ b/usr/src/uts/common/brand/lx/io/lx_netlink.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
/*
@@ -591,7 +591,7 @@ lx_netlink_alloc_mp1(lx_netlink_sock_t *lxsock)
mp->b_datap->db_type = M_PROTO;
tunit->PRIM_type = T_UNITDATA_IND;
tunit->SRC_length = sizeof (*lxsa);
- tunit->SRC_offset = (caddr_t)lxsa - (caddr_t)mp->b_rptr;
+ tunit->SRC_offset = sizeof (*tunit);
lxsa->lxnl_family = AF_LX_NETLINK;
lxsa->lxnl_port = 0;
@@ -613,7 +613,7 @@ lx_netlink_alloc_mp1(lx_netlink_sock_t *lxsock)
tunit->OPT_length = sizeof (*cmsg) +
ROUNDUP_cmsglen(sizeof (*ucred));
- tunit->OPT_offset = (caddr_t)cmsg - (caddr_t)mp->b_rptr;
+ tunit->OPT_offset = tunit->SRC_offset + tunit->SRC_length;
} else {
tunit->OPT_length = 0;
tunit->OPT_offset = 0;
@@ -917,7 +917,8 @@ lx_netlink_parse_msg_attrs(mblk_t *mp, void **msgp, unsigned int msg_size,
* Takes an IPv4 address (in network byte order) and returns the address scope.
*/
static uint8_t
-lx_ipv4_rtscope(in_addr_t nbo_addr) {
+lx_ipv4_rtscope(in_addr_t nbo_addr)
+{
in_addr_t addr = ntohl(nbo_addr);
if ((addr >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET) {
return (LX_RTSCOPE_HOST);
@@ -936,7 +937,8 @@ lx_ipv4_rtscope(in_addr_t nbo_addr) {
* Takes an IPv6 address and returns the address scope.
*/
static uint8_t
-lx_ipv6_rtscope(const in6_addr_t *addr) {
+lx_ipv6_rtscope(const in6_addr_t *addr)
+{
if (IN6_ARE_ADDR_EQUAL(addr, &ipv6_loopback)) {
return (LX_RTSCOPE_HOST);
} else if (IN6_IS_ADDR_LINKLOCAL(addr)) {
@@ -1029,7 +1031,7 @@ lx_netlink_getlink_lifreq(lx_netlink_reply_t *reply, struct lifreq *lifr)
sdl = (struct sockaddr_dl *)&lifr->lifr_addr;
bzero(sdl, sizeof (*sdl));
if (!is_loopback) {
- lx_netlink_reply_ioctl(reply, SIOCGLIFHWADDR, lifr);
+ (void) lx_netlink_reply_ioctl(reply, SIOCGLIFHWADDR, lifr);
} else {
/* Simulate an empty hwaddr for loopback */
sdl->sdl_type = DL_LOOP;
diff --git a/usr/src/uts/common/brand/lx/os/lx_brand.c b/usr/src/uts/common/brand/lx/os/lx_brand.c
index 6cff045a80..c74d5e8ebd 100644
--- a/usr/src/uts/common/brand/lx/os/lx_brand.c
+++ b/usr/src/uts/common/brand/lx/os/lx_brand.c
@@ -182,8 +182,7 @@ void lx_free_brand_data(zone_t *);
void lx_setbrand(proc_t *);
int lx_getattr(zone_t *, int, void *, size_t *);
int lx_setattr(zone_t *, int, void *, size_t);
-int lx_brandsys(int, int64_t *, uintptr_t, uintptr_t, uintptr_t,
- uintptr_t, uintptr_t);
+int lx_brandsys(int, int64_t *, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
void lx_set_kern_version(zone_t *, char *);
void lx_copy_procdata(proc_t *, proc_t *);
@@ -333,7 +332,7 @@ lx_proc_exit(proc_t *p)
proc_t *cp;
mutex_enter(&p->p_lock);
- VERIFY(lxpd = ptolxproc(p));
+ VERIFY((lxpd = ptolxproc(p)) != NULL);
VERIFY(lxpd->l_ptrace == 0);
if ((lxpd->l_flags & LX_PROC_CHILD_DEATHSIG) == 0) {
mutex_exit(&p->p_lock);
@@ -471,7 +470,7 @@ lx_map32limit(proc_t *p)
* This is only relevant for 64-bit processes.
*/
if (p->p_model == DATAMODEL_LP64)
- return (1 << 31);
+ return ((uint32_t)1 << 31);
return ((uint32_t)USERLIMIT32);
}
@@ -549,6 +548,7 @@ lx_pagefault(proc_t *p, klwp_t *lwp, caddr_t addr, enum fault_type type,
* Critically, this routine should _not_ modify any LWP state as the
* savecontext() does not run until after this hook.
*/
+/* ARGSUSED */
static caddr_t
lx_sendsig_stack(int sig)
{
@@ -583,6 +583,7 @@ lx_sendsig_stack(int sig)
* per-LWP mode flags for system calls and stacks. The pre-signal
* context has already been saved and delivered to the user at this point.
*/
+/* ARGSUSED */
static void
lx_sendsig(int sig)
{
@@ -832,7 +833,7 @@ lx_zone_zfs_open(ldi_handle_t *lh, dev_t *zfs_dev)
}
ldi_ident_release(li);
if (ldi_get_dev(*lh, zfs_dev) != 0) {
- ldi_close(*lh, FREAD|FWRITE, kcred);
+ (void) ldi_close(*lh, FREAD|FWRITE, kcred);
return (-1);
}
return (0);
@@ -990,7 +991,7 @@ lx_zone_get_zvols(zone_t *zone, ldi_handle_t lh, minor_t *emul_minor)
(*emul_minor)++);
if (zvol_name2minor(znm, &m) != 0) {
(void) zvol_create_minor(znm);
- zvol_name2minor(znm, &m);
+ VERIFY(zvol_name2minor(znm, &m) == 0);
}
if (m != 0) {
vd->lxvd_real_dev = makedevice(
@@ -1044,7 +1045,7 @@ lx_zone_get_zfsds(zone_t *zone, minor_t *emul_minor)
vd->lxvd_type = LXVD_ZFS_DS;
vd->lxvd_real_dev = vfsp->vfs_dev;
vd->lxvd_emul_dev = makedevice(LX_MAJOR_DISK, (*emul_minor)++);
- snprintf(vd->lxvd_name, sizeof (vd->lxvd_name),
+ (void) snprintf(vd->lxvd_name, sizeof (vd->lxvd_name),
"zfsds%u", 0);
(void) strlcpy(vd->lxvd_real_name,
refstr_value(vfsp->vfs_resource),
@@ -1121,7 +1122,7 @@ lx_init_brand_data(zone_t *zone, kmutex_t *zsl)
lx_zone_get_zfsds(zone, &emul_minor);
lx_zone_get_zvols(zone, lh, &emul_minor);
- ldi_close(lh, FREAD|FWRITE, kcred);
+ (void) ldi_close(lh, FREAD|FWRITE, kcred);
} else {
/* Avoid matching any devices */
data->lxzd_zfs_dev = makedevice(-1, 0);
@@ -1140,7 +1141,7 @@ lx_free_brand_data(zone_t *zone)
* Since zone_kcred has been cleaned up already, close the
* socket using the global kcred.
*/
- ksocket_close(data->lxzd_ioctl_sock, kcred);
+ (void) ksocket_close(data->lxzd_ioctl_sock, kcred);
data->lxzd_ioctl_sock = NULL;
}
ASSERT(data->lxzd_cgroup == NULL);
@@ -1228,7 +1229,7 @@ lx_trace_sysreturn(int syscall_num, long ret)
*/
int
lx_brandsys(int cmd, int64_t *rval, uintptr_t arg1, uintptr_t arg2,
- uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
+ uintptr_t arg3, uintptr_t arg4)
{
kthread_t *t = curthread;
klwp_t *lwp = ttolwp(t);
@@ -1433,18 +1434,19 @@ lx_brandsys(int cmd, int64_t *rval, uintptr_t arg1, uintptr_t arg2,
*/
int native_sig = lx_ltos_signo((int)arg2, 0);
- pid_t native_pid;
- int native_tid;
+ pid_t spid;
+ int stid;
sigqueue_t *sqp;
if (native_sig == 0)
return (EINVAL);
- lx_lpid_to_spair((pid_t)arg1, &native_pid, &native_tid);
+ if (lx_lpid_to_spair((pid_t)arg1, &spid, &stid) != 0) {
+ return (ESRCH);
+ }
sqp = kmem_zalloc(sizeof (sigqueue_t), KM_SLEEP);
mutex_enter(&curproc->p_lock);
-
- if ((t = idtot(curproc, native_tid)) == NULL) {
+ if ((t = idtot(curproc, stid)) == NULL) {
mutex_exit(&curproc->p_lock);
kmem_free(sqp, sizeof (sigqueue_t));
return (ESRCH);
@@ -1483,45 +1485,6 @@ lx_brandsys(int cmd, int64_t *rval, uintptr_t arg1, uintptr_t arg2,
return (lx_ptrace_set_clone_inherit((int)arg1, arg2 == 0 ?
B_FALSE : B_TRUE));
- case B_HELPER_WAITID: {
- idtype_t idtype = (idtype_t)arg1;
- id_t id = (id_t)arg2;
- siginfo_t *infop = (siginfo_t *)arg3;
- int options = (int)arg4;
-
- lwpd = ttolxlwp(curthread);
-
- /*
- * Our brand-specific waitid helper only understands a subset of
- * the possible idtypes. Ensure we keep to that subset here:
- */
- if (idtype != P_ALL && idtype != P_PID && idtype != P_PGID) {
- return (EINVAL);
- }
-
- /*
- * Enable the return of emulated ptrace(2) stop conditions
- * through lx_waitid_helper, and stash the Linux-specific
- * extra waitid() flags.
- */
- lwpd->br_waitid_emulate = B_TRUE;
- lwpd->br_waitid_flags = (int)arg5;
-
-#if defined(_SYSCALL32_IMPL)
- if (get_udatamodel() != DATAMODEL_NATIVE) {
- return (waitsys32(idtype, id, infop, options));
- } else
-#endif
- {
- return (waitsys(idtype, id, infop, options));
- }
-
- lwpd->br_waitid_emulate = B_FALSE;
- lwpd->br_waitid_flags = 0;
-
- return (0);
- }
-
case B_UNSUPPORTED: {
char dmsg[256];
@@ -1744,7 +1707,7 @@ lx_brandsys(int cmd, int64_t *rval, uintptr_t arg1, uintptr_t arg2,
* lx_syscall_return() looks at the errno in the LWP,
* so set it here:
*/
- set_errno(error);
+ (void) set_errno(error);
}
lx_syscall_return(ttolwp(curthread), (int)arg2, (long)arg3);
@@ -1842,6 +1805,7 @@ lx_kern_release_cmp(zone_t *zone, const char *vers)
* file ownership. This brand hook overrides the illumos native behaviour,
* which is based on the PRIV_FILE_SETID privilege.
*/
+/* ARGSUSED */
static int
lx_setid_clear(vattr_t *vap, cred_t *cr)
{
@@ -1875,11 +1839,11 @@ lx_copy_procdata(proc_t *cp, proc_t *pp)
* be required.
*/
VERIFY(cp->p_brand == &lx_brand);
- VERIFY(cpd = cp->p_brand_data);
+ VERIFY((cpd = cp->p_brand_data) != NULL);
mutex_enter(&pp->p_lock);
VERIFY(pp->p_brand == &lx_brand);
- VERIFY(ppd = pp->p_brand_data);
+ VERIFY((ppd = pp->p_brand_data) != NULL);
bcopy(ppd, cpd, sizeof (lx_proc_data_t));
mutex_exit(&pp->p_lock);
@@ -2003,6 +1967,7 @@ lx_map_vdso(struct uarg *args, struct cred *cred)
* Exec routine called by elfexec() to load either 32-bit or 64-bit Linux
* binaries.
*/
+/* ARGSUSED4 */
static int
lx_elfexec(struct vnode *vp, struct execa *uap, struct uarg *args,
struct intpdata *idata, int level, long *execsz, int setid,
@@ -2084,6 +2049,7 @@ lx_elfexec(struct vnode *vp, struct execa *uap, struct uarg *args,
}
hsize = ehdr.e_phentsize;
+ /* LINTED: alignment */
phdrp = (Phdr *)phdrbase;
for (i = nphdrs; i > 0; i--) {
switch (phdrp->p_type) {
@@ -2093,6 +2059,7 @@ lx_elfexec(struct vnode *vp, struct execa *uap, struct uarg *args,
}
break;
}
+ /* LINTED: alignment */
phdrp = (Phdr *)((caddr_t)phdrp + hsize);
}
kmem_free(phdrbase, phdrsize);
@@ -2111,6 +2078,7 @@ lx_elfexec(struct vnode *vp, struct execa *uap, struct uarg *args,
}
hsize = ehdr.e_phentsize;
+ /* LINTED: alignment */
phdrp = (Elf32_Phdr *)phdrbase;
for (i = nphdrs; i > 0; i--) {
switch (phdrp->p_type) {
@@ -2120,6 +2088,7 @@ lx_elfexec(struct vnode *vp, struct execa *uap, struct uarg *args,
}
break;
}
+ /* LINTED: alignment */
phdrp = (Elf32_Phdr *)((caddr_t)phdrp + hsize);
}
kmem_free(phdrbase, phdrsize);
diff --git a/usr/src/uts/common/brand/lx/os/lx_misc.c b/usr/src/uts/common/brand/lx/os/lx_misc.c
index 7ede833ca4..267c720e67 100644
--- a/usr/src/uts/common/brand/lx/os/lx_misc.c
+++ b/usr/src/uts/common/brand/lx/os/lx_misc.c
@@ -146,7 +146,7 @@ lx_exec()
* function is called that the exec has succeeded.
*/
rp->r_r0 = 0;
- lx_ptrace_stop(LX_PR_SYSEXIT);
+ (void) lx_ptrace_stop(LX_PR_SYSEXIT);
}
static void
@@ -765,6 +765,7 @@ lx_exit_with_sig(proc_t *cp, sigqueue_t *sqp)
* More information on wait in lx brands can be found at
* usr/src/lib/brand/lx/lx_brand/common/wait.c.
*/
+/* ARGSUSED */
boolean_t
lx_wait_filter(proc_t *pp, proc_t *cp)
{
diff --git a/usr/src/uts/common/brand/lx/os/lx_syscall.c b/usr/src/uts/common/brand/lx/os/lx_syscall.c
index f48b043aa3..421de407d1 100644
--- a/usr/src/uts/common/brand/lx/os/lx_syscall.c
+++ b/usr/src/uts/common/brand/lx/os/lx_syscall.c
@@ -208,7 +208,7 @@ lx_emulate_args(klwp_t *lwp, const lx_sysent_t *s, uintptr_t *args)
}
#endif
-int
+void
lx_syscall_return(klwp_t *lwp, int syscall_num, long ret)
{
lx_lwp_data_t *lwpd = lwptolxlwp(lwp);
@@ -242,7 +242,7 @@ lx_syscall_return(klwp_t *lwp, int syscall_num, long ret)
* PTRACE_SYSCALL. Note that the register state may be modified by
* tracer.
*/
- lx_ptrace_stop(LX_PR_SYSEXIT);
+ (void) lx_ptrace_stop(LX_PR_SYSEXIT);
/*
* Fire the DTrace "lx-syscall:::return" probe:
@@ -265,8 +265,6 @@ lx_syscall_return(klwp_t *lwp, int syscall_num, long ret)
lwp->lwp_eosys = JUSTRETURN;
curthread->t_post_sys = 1;
aston(curthread);
-
- return (0);
}
static void
@@ -346,7 +344,7 @@ lx_syscall_enter(void)
* PTRACE_SYSCALL. The system call number and arguments may be
* modified by the tracer.
*/
- lx_ptrace_stop(LX_PR_SYSENTRY);
+ (void) lx_ptrace_stop(LX_PR_SYSENTRY);
/*
* Check that the system call number is within the bounds we expect.
@@ -355,7 +353,7 @@ lx_syscall_enter(void)
if (syscall_num < 0 || syscall_num > LX_MAX_SYSCALL(lwp)) {
lx_syscall_unsup_msg(NULL, syscall_num, 0);
- set_errno(ENOTSUP);
+ (void) set_errno(ENOTSUP);
lx_syscall_return(lwp, syscall_num, -1);
return (0);
}
@@ -380,7 +378,7 @@ lx_syscall_enter(void)
* Could not read and process the arguments. Return the error
* to the process.
*/
- set_errno(error);
+ (void) set_errno(error);
lx_syscall_return(lwp, syscall_num, -1);
return (0);
}
@@ -422,7 +420,7 @@ lx_syscall_enter(void)
*/
lx_syscall_unsup_msg(s, syscall_num, unsup_reason);
- set_errno(ENOTSUP);
+ (void) set_errno(ENOTSUP);
lx_syscall_return(lwp, syscall_num, -1);
return (0);
}
@@ -479,7 +477,7 @@ lx_vsyscall_enter(proc_t *p, klwp_t *lwp, int scnum)
rp->r_rip = raddr;
rp->r_rsp += sizeof (uintptr_t);
- lx_syscall_enter();
+ (void) lx_syscall_enter();
}
boolean_t
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 262339c31c..24d0fc03c2 100644
--- a/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
+++ b/usr/src/uts/common/brand/lx/procfs/lx_prvnops.c
@@ -282,7 +282,7 @@ extern rctl_hndl_t rc_zone_semmni;
extern rctl_hndl_t rc_zone_msgmni;
extern rctl_hndl_t rc_zone_shmmax;
extern rctl_hndl_t rc_zone_shmmni;
-#define FOURGB 4294967295
+#define FOURGB 4294967295ULL
/*
* The maximum length of the concatenation of argument vector strings we
@@ -695,6 +695,7 @@ static int
lxpr_close(vnode_t *vp, int flag, int count, offset_t offset, cred_t *cr,
caller_context_t *ct)
{
+#ifdef DEBUG
lxpr_node_t *lxpr = VTOLXP(vp);
lxpr_nodetype_t type = lxpr->lxpr_type;
@@ -706,6 +707,7 @@ lxpr_close(vnode_t *vp, int flag, int count, offset_t offset, cred_t *cr,
type != LXPR_PID_CURDIR &&
type != LXPR_PID_ROOTDIR &&
type != LXPR_PID_EXE);
+#endif /* DEBUG */
return (0);
}
@@ -1433,7 +1435,7 @@ lxpr_read_pid_comm(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_seterr(uiobuf, EINVAL);
return;
}
- strlcpy(buf, p->p_user.u_comm, sizeof (buf));
+ (void) strlcpy(buf, p->p_user.u_comm, sizeof (buf));
lxpr_unlock(p);
lxpr_uiobuf_printf(uiobuf, "%s\n", buf);
}
@@ -2224,7 +2226,7 @@ lxpr_read_status_common(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf,
crhold(cr = p->p_cred);
mutex_exit(&p->p_crlock);
- strlcpy(buf_comm, up->u_comm, sizeof (buf_comm));
+ (void) strlcpy(buf_comm, up->u_comm, sizeof (buf_comm));
fdlim = p->p_fno_ctl;
lwpcnt = p->p_lwpcnt;
@@ -2533,12 +2535,13 @@ lxpr_read_stat_common(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf,
stime = p->p_stime;
} else {
/* tid: utime & stime for the thread set in block above */
+ /* EMPTY */
}
cutime = p->p_cutime;
cstime = p->p_cstime;
lwpcnt = p->p_lwpcnt;
vmem_ctl = p->p_vmem_ctl;
- strlcpy(buf_comm, p->p_user.u_comm, sizeof (buf_comm));
+ (void) strlcpy(buf_comm, p->p_user.u_comm, sizeof (buf_comm));
ticks = p->p_user.u_ticks; /* lbolt at process start */
/* adjust ticks to account for zone boot time */
boottime = LXPTOZ(lxpnp)->zone_zsched->p_user.u_ticks;
@@ -3050,21 +3053,19 @@ lxpr_read_net_sockstat(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
typedef struct lxpr_snmp_table {
const char *lst_proto;
- const char *lst_fields[];
+ const char **lst_fields;
} lxpr_snmp_table_t;
-static lxpr_snmp_table_t lxpr_snmp_ip = { "ip",
- {
+static const char *lxpr_snmp_ip_fields[] = {
"forwarding", "defaultTTL", "inReceives", "inHdrErrors",
"inAddrErrors", "forwDatagrams", "inUnknownProtos", "inDiscards",
"inDelivers", "outRequests", "outDiscards", "outNoRoutes",
"reasmTimeout", "reasmReqds", "reasmOKs", "reasmFails", "fragOKs",
"fragFails", "fragCreates",
NULL
- }
};
-static lxpr_snmp_table_t lxpr_snmp_icmp = { "icmp",
- {
+
+static const char *lxpr_snmp_icmp_fields[] = {
"inMsgs", "inErrors", "inCsumErrors", "inDestUnreachs", "inTimeExcds",
"inParmProbs", "inSrcQuenchs", "inRedirects", "inEchos", "inEchoReps",
"inTimestamps", "inTimestampReps", "inAddrMasks", "inAddrMaskReps",
@@ -3073,24 +3074,26 @@ static lxpr_snmp_table_t lxpr_snmp_icmp = { "icmp",
"outEchoReps", "outTimestamps", "outTimestampReps", "outAddrMasks",
"outAddrMaskReps",
NULL
- }
};
-static lxpr_snmp_table_t lxpr_snmp_tcp = { "tcp",
- {
+
+static const char *lxpr_snmp_tcp_fields[] = {
"rtoAlgorithm", "rtoMin", "rtoMax", "maxConn", "activeOpens",
"passiveOpens", "attemptFails", "estabResets", "currEstab", "inSegs",
"outSegs", "retransSegs", "inErrs", "outRsts", "inCsumErrors",
NULL
- }
};
-static lxpr_snmp_table_t lxpr_snmp_udp = { "udp",
- {
+
+static const char *lxpr_snmp_udp_fields[] = {
"inDatagrams", "noPorts", "inErrors", "outDatagrams", "rcvbufErrors",
"sndbufErrors", "inCsumErrors",
NULL
- }
};
+static lxpr_snmp_table_t lxpr_snmp_ip = { "ip", lxpr_snmp_ip_fields };
+static lxpr_snmp_table_t lxpr_snmp_icmp = { "icmp", lxpr_snmp_icmp_fields };
+static lxpr_snmp_table_t lxpr_snmp_tcp = { "tcp", lxpr_snmp_tcp_fields };
+static lxpr_snmp_table_t lxpr_snmp_udp = { "udp", lxpr_snmp_udp_fields };
+
static lxpr_snmp_table_t *lxpr_net_snmptab[] = {
&lxpr_snmp_ip,
&lxpr_snmp_icmp,
@@ -3587,6 +3590,7 @@ lxpr_read_net_unix(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
#define LX_KMSG_PRI "<0>"
+/* ARGSUSED */
static void
lxpr_read_kmsg(lxpr_node_t *lxpnp, struct lxpr_uiobuf *uiobuf, ldi_handle_t lh)
{
@@ -3918,8 +3922,8 @@ lxpr_read_diskstats(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* Use the zone_vfs kstat, which is a superset of a kstat_io_t, since
* it tracks IO at the zone level.
*/
- strlcpy(kn.ks_module, "zone_vfs", sizeof (kn.ks_module));
- strlcpy(kn.ks_name, zone->zone_name, sizeof (kn.ks_name));
+ (void) strlcpy(kn.ks_module, "zone_vfs", sizeof (kn.ks_module));
+ (void) strlcpy(kn.ks_name, zone->zone_name, sizeof (kn.ks_name));
kn.ks_instance = getzoneid();
kip = (zone_vfs_kstat_t *)lxpr_kstat_read(&kn, B_TRUE, &size, &num);
@@ -4327,6 +4331,7 @@ extern int inotify_maxevents;
extern int inotify_maxinstances;
extern int inotify_maxwatches;
+/* ARGSUSED */
static void
lxpr_read_sys_fs_inotify_max_queued_events(lxpr_node_t *lxpnp,
lxpr_uiobuf_t *uiobuf)
@@ -4335,6 +4340,7 @@ lxpr_read_sys_fs_inotify_max_queued_events(lxpr_node_t *lxpnp,
lxpr_uiobuf_printf(uiobuf, "%d\n", inotify_maxevents);
}
+/* ARGSUSED */
static void
lxpr_read_sys_fs_inotify_max_user_instances(lxpr_node_t *lxpnp,
lxpr_uiobuf_t *uiobuf)
@@ -4343,6 +4349,7 @@ lxpr_read_sys_fs_inotify_max_user_instances(lxpr_node_t *lxpnp,
lxpr_uiobuf_printf(uiobuf, "%d\n", inotify_maxinstances);
}
+/* ARGSUSED */
static void
lxpr_read_sys_fs_inotify_max_user_watches(lxpr_node_t *lxpnp,
lxpr_uiobuf_t *uiobuf)
@@ -4351,6 +4358,7 @@ lxpr_read_sys_fs_inotify_max_user_watches(lxpr_node_t *lxpnp,
lxpr_uiobuf_printf(uiobuf, "%d\n", inotify_maxwatches);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_caplcap(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4358,6 +4366,7 @@ lxpr_read_sys_kernel_caplcap(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", LX_CAP_MAX_VALID);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_corepatt(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4400,6 +4409,7 @@ lxpr_read_sys_kernel_corepatt(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%s\n", tr);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_hostname(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4407,6 +4417,7 @@ lxpr_read_sys_kernel_hostname(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%s\n", uts_nodename());
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_msgmni(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4422,6 +4433,7 @@ lxpr_read_sys_kernel_msgmni(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%u\n", (uint_t)val);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_ngroups_max(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4429,6 +4441,7 @@ lxpr_read_sys_kernel_ngroups_max(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", ngroups_max);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_osrel(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4449,6 +4462,7 @@ lxpr_read_sys_kernel_osrel(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
}
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_pid_max(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4456,6 +4470,7 @@ lxpr_read_sys_kernel_pid_max(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", maxpid);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_rand_bootid(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4486,7 +4501,6 @@ lxpr_read_sys_kernel_rand_bootid(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
br_data = ztolxzd(curproc->p_zone);
mutex_enter(&br_data->lxzd_lock);
if (br_data->lxzd_bootid[0] == '\0') {
- extern int getrandom(void *, size_t, int);
int i;
for (i = 0; i < 5; i++) {
@@ -4506,9 +4520,9 @@ lxpr_read_sys_kernel_rand_bootid(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
break;
}
if (i > 0)
- strlcat(br_data->lxzd_bootid, "-",
+ (void) strlcat(br_data->lxzd_bootid, "-",
sizeof (br_data->lxzd_bootid));
- strlcat(br_data->lxzd_bootid, s,
+ (void) strlcat(br_data->lxzd_bootid, s,
sizeof (br_data->lxzd_bootid));
}
}
@@ -4519,6 +4533,7 @@ lxpr_read_sys_kernel_rand_bootid(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_sem(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4547,6 +4562,7 @@ lxpr_read_sys_kernel_sem(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
vmsl, vmns, vopm, vmni);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_shmall(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4563,6 +4579,7 @@ lxpr_read_sys_kernel_shmall(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%u\n", (uint_t)btop(val));
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_shmmax(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4581,6 +4598,7 @@ lxpr_read_sys_kernel_shmmax(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%u\n", (uint_t)val);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_shmmni(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4599,6 +4617,7 @@ lxpr_read_sys_kernel_shmmni(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%u\n", (uint_t)val);
}
+/* ARGSUSED */
static void
lxpr_read_sys_kernel_threads_max(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4606,6 +4625,7 @@ lxpr_read_sys_kernel_threads_max(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", curproc->p_zone->zone_nlwps_ctl);
}
+/* ARGSUSED */
static void
lxpr_read_sys_net_core_somaxc(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4634,6 +4654,7 @@ lxpr_read_sys_net_core_somaxc(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* illumos: tcp_smallest_anon_port & tcp_largest_anon_port
* Not in tcp(7p) man page.
*/
+/* ARGSUSED */
static void
lxpr_read_sys_net_ipv4_ip_lport_range(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4667,6 +4688,7 @@ lxpr_read_sys_net_ipv4_ip_lport_range(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* in the tcp_input_data() function on the use of tcp_fin_wait_2_flush_interval.
* The value is in milliseconds.
*/
+/* ARGSUSED */
static void
lxpr_read_sys_net_ipv4_tcp_fin_to(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4700,6 +4722,7 @@ lxpr_read_sys_net_ipv4_tcp_fin_to(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* 9 times (giving a total of 11.25 minutes) so we emulate this by dividing out
* tcps_keepalive_abort_interval by 9.
*/
+/* ARGSUSED */
static void
lxpr_read_sys_net_ipv4_tcp_ka_int(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4730,6 +4753,7 @@ lxpr_read_sys_net_ipv4_tcp_ka_int(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* The interval for sending out the first probe in milliseconds. The default is
* two hours.
*/
+/* ARGSUSED */
static void
lxpr_read_sys_net_ipv4_tcp_ka_tim(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4759,6 +4783,7 @@ lxpr_read_sys_net_ipv4_tcp_ka_tim(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* tcp_sack_permitted 0 == disabled, 1 == no initiate but accept,
* 2 == initiate and accept. default is 2.
*/
+/* ARGSUSED */
static void
lxpr_read_sys_net_ipv4_tcp_sack(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4791,6 +4816,7 @@ lxpr_read_sys_net_ipv4_tcp_sack(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* window scale option will be set only if the user has requested a send or
* receive window larger than 64K. The default value of is 1.
*/
+/* ARGSUSED */
static void
lxpr_read_sys_net_ipv4_tcp_winscale(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4810,6 +4836,7 @@ lxpr_read_sys_net_ipv4_tcp_winscale(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
netstack_rele(ns);
}
+/* ARGSUSED */
static void
lxpr_read_sys_vm_max_map_cnt(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4818,6 +4845,7 @@ lxpr_read_sys_vm_max_map_cnt(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", 16777215);
}
+/* ARGSUSED */
static void
lxpr_read_sys_vm_minfr_kb(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4825,6 +4853,7 @@ lxpr_read_sys_vm_minfr_kb(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", 0);
}
+/* ARGSUSED */
static void
lxpr_read_sys_vm_nhpages(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4832,6 +4861,7 @@ lxpr_read_sys_vm_nhpages(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", 0);
}
+/* ARGSUSED */
static void
lxpr_read_sys_vm_overcommit_mem(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4839,6 +4869,7 @@ lxpr_read_sys_vm_overcommit_mem(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
lxpr_uiobuf_printf(uiobuf, "%d\n", 0);
}
+/* ARGSUSED */
static void
lxpr_read_sys_vm_swappiness(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4972,6 +5003,7 @@ static const char *intc_ecx[] = {
* cgroup subsystems as being installed. The commented example below shows
* how to print a subsystem entry.
*/
+/* ARGSUSED */
static void
lxpr_read_cgroups(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -4984,6 +5016,7 @@ lxpr_read_cgroups(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
*/
}
+/* ARGSUSED */
static void
lxpr_read_cpuinfo(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -5157,6 +5190,7 @@ lxpr_read_fd(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
* which we support and which may be checked by various components to see if
* they are loaded.
*/
+/* ARGSUSED */
static void
lxpr_read_filesystems(lxpr_node_t *lxpnp, lxpr_uiobuf_t *uiobuf)
{
@@ -5576,10 +5610,8 @@ lxpr_lookup_task_tid_dir(vnode_t *dp, char *comp)
static vnode_t *
lxpr_lookup_fddir(vnode_t *dp, char *comp)
{
- lxpr_node_t *dlxpnp = VTOLXP(dp);
-
- ASSERT(dlxpnp->lxpr_type == LXPR_PID_FDDIR ||
- dlxpnp->lxpr_type == LXPR_PID_TID_FDDIR);
+ ASSERT(VTOLXP(dp)->lxpr_type == LXPR_PID_FDDIR ||
+ VTOLXP(dp)->lxpr_type == LXPR_PID_TID_FDDIR);
return (lxpr_lookup_fdnode(dp, comp));
}
@@ -5759,7 +5791,7 @@ lxpr_readdir(vnode_t *dp, uio_t *uiop, cred_t *cr, int *eofp,
if (uoffset % LXPR_SDSIZE)
return (ENOENT);
- return (lxpr_readdir_function[lxpnp->lxpr_type](lxpnp, uiop, eofp));
+ return (lxpr_readdir_function[type](lxpnp, uiop, eofp));
}
/* ARGSUSED */
@@ -6580,6 +6612,7 @@ lxpr_xlate_sack(char *val, int size)
* set two properties on the netstack_tcp, so we can't reuse
* lxpr_write_tcp_property.
*/
+/* ARGSUSED */
static int
lxpr_write_sys_net_ipv4_ip_lport_range(lxpr_node_t *lxpnp, struct uio *uio,
struct cred *cr, caller_context_t *ct)
@@ -6962,6 +6995,7 @@ lxpr_realvp(vnode_t *vp, vnode_t **vpp, caller_context_t *ct)
return (0);
}
+/* ARGSUSED */
static int
lxpr_write(vnode_t *vp, uio_t *uiop, int ioflag, cred_t *cr,
caller_context_t *ct)
@@ -6986,6 +7020,7 @@ lxpr_write(vnode_t *vp, uio_t *uiop, int ioflag, cred_t *cr,
}
/* Needed for writable files which are first "truncated" */
+/* ARGSUSED */
static int
lxpr_space(vnode_t *vp, int cmd, flock64_t *bfp, int flag, offset_t offset,
cred_t *cred, caller_context_t *ct)
@@ -7004,6 +7039,7 @@ lxpr_space(vnode_t *vp, int cmd, flock64_t *bfp, int flag, offset_t offset,
* Needed for writable files which are first "truncated". We only support
* truncation.
*/
+/* ARGSUSED */
static int
lxpr_setattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
caller_context_t *ct)
@@ -7021,7 +7057,7 @@ lxpr_setattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
/*
* We need to allow open with O_CREAT for the writable files.
*/
-/*ARGSUSED7*/
+/* ARGSUSED */
static int
lxpr_create(vnode_t *dvp, char *nm, vattr_t *vap, enum vcexcl exclusive,
int mode, vnode_t **vpp, cred_t *cr, int flag, caller_context_t *ct,
diff --git a/usr/src/uts/common/brand/lx/sys/lx_brand.h b/usr/src/uts/common/brand/lx/sys/lx_brand.h
index 4906e444f1..88546dbe80 100644
--- a/usr/src/uts/common/brand/lx/sys/lx_brand.h
+++ b/usr/src/uts/common/brand/lx/sys/lx_brand.h
@@ -100,7 +100,7 @@ extern "C" {
#define B_JUMP_TO_LINUX 139
#define B_SET_THUNK_PID 140
#define B_EXIT_AS_SIG 141
-#define B_HELPER_WAITID 142
+/* formerly B_HELPER_WAITID 142 */
#define B_HELPER_CLONE 143
#define B_HELPER_SETGROUPS 144
#define B_HELPER_SIGQUEUE 145
@@ -630,7 +630,7 @@ extern int lx_runexe(klwp_t *, void *);
extern void lx_switch_to_native(klwp_t *);
extern int lx_syscall_enter(void);
-extern int lx_syscall_return(klwp_t *, int, long);
+extern void lx_syscall_return(klwp_t *, int, long);
extern int lx_syscall_fast_enter(void);
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_cpu.c b/usr/src/uts/common/brand/lx/syscall/lx_cpu.c
index ec8b7576d8..b0a92394dc 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_cpu.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_cpu.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/systm.h>
@@ -23,6 +23,7 @@
* We support neither the second argument (NUMA node), nor the third (obsolete
* pre-2.6.24 caching functionality which was ultimately broken).
*/
+/* ARGSUSED1 */
long
lx_getcpu(unsigned int *cpu, uintptr_t p2, uintptr_t p3)
{
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_getdents.c b/usr/src/uts/common/brand/lx/syscall/lx_getdents.c
index 102d521e02..101d8b2911 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_getdents.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_getdents.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/systm.h>
@@ -92,7 +92,7 @@ lx_getdents_common(int fd, caddr_t uptr, size_t count,
file_t *fp;
struct uio auio;
struct iovec aiov;
- int error;
+ int error, at_eof;
int sbufsz, lbufsz, bufsz;
void *lbuf, *sbuf;
size_t outb = 0;
@@ -158,8 +158,9 @@ lx_getdents_common(int fd, caddr_t uptr, size_t count,
* When this happens, we can simply repeat the READDIR operation until
* the available records are exhausted or we've filled the user buffer.
*/
- while (1) {
- int at_eof, res;
+ do {
+ int res;
+
(void) VOP_RWLOCK(vp, V_WRITELOCK_FALSE, NULL);
error = VOP_READDIR(vp, &auio, fp->f_cred, &at_eof, NULL, 0);
VOP_RWUNLOCK(vp, V_WRITELOCK_FALSE, NULL);
@@ -187,15 +188,6 @@ lx_getdents_common(int fd, caddr_t uptr, size_t count,
}
outb += res;
- if (at_eof != 0 || (count - outb) < (lx_size + MAXPATHLEN)) {
- /*
- * If there are no records left or the remaining buffer
- * space is not large enough to hold a max-length
- * filename, do not continue iteration.
- */
- break;
- }
-
/*
* We undershot the request buffer.
* Reset for another READDIR, taking care not to overshoot.
@@ -204,7 +196,13 @@ lx_getdents_common(int fd, caddr_t uptr, size_t count,
auio.uio_resid = bufsz;
aiov.iov_len = bufsz;
aiov.iov_base = sbuf;
- }
+
+ /*
+ * Continued progress is allowed only if EOF has not been
+ * reached and there is enough remaining buffer space to hold
+ * an entry with a max-length filename.
+ */
+ } while (at_eof == 0 && (count - outb) >= (lx_size + MAXPATHLEN));
kmem_free(lbuf, lbufsz);
kmem_free(sbuf, sbufsz);
@@ -229,7 +227,9 @@ lx_getdents_format32(caddr_t sbuf, caddr_t lbuf, int len)
int size = 0;
while (len > 0) {
+ /* LINTED: alignment */
sd = (struct dirent *)sbuf;
+ /* LINTED: alignment */
ld = (struct lx_dirent_32 *)lbuf;
namelen = MIN(strlen(sd->d_name), LX_NAMEMAX - 1);
@@ -260,7 +260,9 @@ lx_getdents_format64(caddr_t sbuf, caddr_t lbuf, int len)
int size = 0;
while (len > 0) {
+ /* LINTED: alignment */
sd = (struct dirent *)sbuf;
+ /* LINTED: alignment */
ld = (struct lx_dirent_64 *)lbuf;
namelen = MIN(strlen(sd->d_name), LX_NAMEMAX - 1);
@@ -320,7 +322,9 @@ lx_getdents64_format(caddr_t sbuf, caddr_t lbuf, int len)
int size = 0;
while (len > 0) {
+ /* LINTED: alignment */
sd = (struct dirent *)sbuf;
+ /* LINTED: alignment */
ld = (struct lx_dirent64 *)lbuf;
namelen = MIN(strlen(sd->d_name), LX_NAMEMAX - 1);
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_id.c b/usr/src/uts/common/brand/lx/syscall/lx_id.c
index baa41f52fa..f940b9763a 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_id.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_id.c
@@ -23,7 +23,7 @@
* Use is subject to license terms.
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/types.h>
@@ -284,7 +284,7 @@ lx_setresgid16(l_gid16_t rgid16, l_gid16_t egid16, l_gid16_t sgid16)
* Linux defines NGROUPS_MAX to be 32, but on illumos it is only 16. We employ
* the terrible hack below so that tests may proceed, if only on DEBUG kernels.
*/
-long
+int
lx_helper_setgroups(int ngroups, gid_t *grouplist)
{
#ifdef DEBUG
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_ioctl.c b/usr/src/uts/common/brand/lx/syscall/lx_ioctl.c
index 2bd5da9961..c1966731ff 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_ioctl.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_ioctl.c
@@ -466,7 +466,7 @@ typedef struct lx_ifreq32 {
char ifr_name[IFNAMSIZ];
union {
struct sockaddr ifru_addr;
- };
+ } ifr_ifrn;
} lx_ifreq32_t;
typedef struct lx_ifreq64 {
@@ -475,7 +475,7 @@ typedef struct lx_ifreq64 {
struct sockaddr ifru_addr;
/* pad this out to the Linux size */
uint64_t ifmap[3];
- };
+ } ifr_ifrn;
} lx_ifreq64_t;
typedef struct lx_ifconf32 {
@@ -491,6 +491,7 @@ typedef struct lx_ifconf64 {
/* Generic translators */
+/* ARGSUSED */
static int
ict_pass(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -502,6 +503,7 @@ ict_pass(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return ((error != 0) ? set_errno(error) : 0);
}
+/* ARGSUSED */
static int
ict_fionbio(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -527,6 +529,7 @@ ict_fionbio(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return ((error != 0) ? set_errno(error) : 0);
}
+/* ARGSUSED */
static int
ict_fionread(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -596,6 +599,7 @@ lx_lookup_zvol(lx_zone_data_t *lxzd, dev_t dev)
* See zvol_ioctl() which always fails for DKIOCGGEOM. The geometry for a
* zvol (or really any modern disk) is made up, so we do that here as well.
*/
+/* ARGSUSED */
static int
ict_hdgetgeo(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -655,6 +659,7 @@ ict_hdgetgeo(file_t *fp, int cmd, intptr_t arg, int lxcmd)
* Per the Linux sd(4) man page, get the number of sectors. The linux/fs.h
* header says its 512 byte blocks.
*/
+/* ARGSUSED */
static int
ict_blkgetsize(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -703,6 +708,7 @@ ict_blkgetsize(file_t *fp, int cmd, intptr_t arg, int lxcmd)
/*
* Get the sector size (i.e. the logical block size).
*/
+/* ARGSUSED */
static int
ict_blkgetssize(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -746,6 +752,7 @@ ict_blkgetssize(file_t *fp, int cmd, intptr_t arg, int lxcmd)
/*
* Get the size. The linux/fs.h header says its in bytes.
*/
+/* ARGSUSED */
static int
ict_blkgetsize64(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -786,8 +793,10 @@ ict_blkgetsize64(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
/* Terminal-related translators */
+/* ARGSUSED */
static int
ict_tcsets(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -813,6 +822,7 @@ ict_tcsets(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_tcseta(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -838,6 +848,7 @@ ict_tcseta(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_tcgets_ptm(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -862,6 +873,7 @@ ict_tcgets_ptm(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_tcgets_native(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -892,6 +904,7 @@ ict_tcgets_native(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_tcgets(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -901,6 +914,7 @@ ict_tcgets(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (ict_tcgets_native(fp, cmd, arg, lxcmd));
}
+/* ARGSUSED */
static int
ict_tcgeta(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -928,6 +942,7 @@ ict_tcgeta(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_tiocspgrp(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -945,6 +960,7 @@ ict_tiocspgrp(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return ((error != 0) ? set_errno(error) : 0);
}
+/* ARGSUSED */
static int
ict_tcsbrkp(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -956,6 +972,7 @@ ict_tcsbrkp(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return ((error != 0) ? set_errno(error) : 0);
}
+/* ARGSUSED */
static int
ict_tiocgpgrp(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -975,6 +992,7 @@ ict_tiocgpgrp(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return ((error != 0) ? set_errno(error) : 0);
}
+/* ARGSUSED */
static int
ict_sptlock(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -995,6 +1013,7 @@ ict_sptlock(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return ((error != 0) ? set_errno(error) : 0);
}
+/* ARGSUSED */
static int
ict_gptn(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1029,6 +1048,7 @@ ict_gptn(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_tiocgwinsz(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1069,6 +1089,7 @@ ict_tiocgwinsz(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_tiocsctty(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1109,6 +1130,7 @@ ict_tiocsctty(file_t *fp, int cmd, intptr_t arg, int lxcmd)
/* Socket-related translators */
+/* ARGSUSED */
static int
ict_siocatmark(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1200,6 +1222,7 @@ ict_sioghwaddr(file_t *fp, struct lifreq *lreq)
return (error);
}
+/* ARGSUSED */
static int
ict_siocgifname(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1233,7 +1256,7 @@ ict_siocgifname(file_t *fp, int cmd, intptr_t arg, int lxcmd)
phyi = avl_find(&ipst->ips_phyint_g_list->phyint_list_avl_by_index,
(void *) &req.ifr_index, NULL);
if (phyi != NULL) {
- strncpy(name, phyi->phyint_name, LIFNAMSIZ);
+ (void) strncpy(name, phyi->phyint_name, LIFNAMSIZ);
lx_ifname_convert(name, LX_IF_FROMNATIVE);
} else {
name[0] = '\0';
@@ -1244,7 +1267,7 @@ ict_siocgifname(file_t *fp, int cmd, intptr_t arg, int lxcmd)
if (strlen(name) != 0) {
/* Truncate for ifreq and copyout */
- strncpy(req.ifr_name, name, IFNAMSIZ);
+ (void) strncpy(req.ifr_name, name, IFNAMSIZ);
if (copyout(&req, (struct ifreq *)arg, len) != 0) {
return (set_errno(EFAULT));
}
@@ -1254,6 +1277,7 @@ ict_siocgifname(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (set_errno(EINVAL));
}
+/* ARGSUSED */
static int
ict_siolifreq(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1269,7 +1293,7 @@ ict_siolifreq(file_t *fp, int cmd, intptr_t arg, int lxcmd)
if (copyin((struct ifreq *)arg, &req, len) != 0)
return (set_errno(EFAULT));
bzero(&lreq, sizeof (lreq));
- strncpy(lreq.lifr_name, req.ifr_name, IFNAMSIZ);
+ (void) strncpy(lreq.lifr_name, req.ifr_name, IFNAMSIZ);
bcopy(&req.ifr_ifru, &lreq.lifr_lifru, len - IFNAMSIZ);
lx_ifname_convert(lreq.lifr_name, LX_IF_TONATIVE);
@@ -1352,7 +1376,7 @@ ict_siolifreq(file_t *fp, int cmd, intptr_t arg, int lxcmd)
/* Convert back to a Linux ifreq */
lx_ifname_convert(lreq.lifr_name, LX_IF_FROMNATIVE);
bzero(&req, sizeof (req));
- strncpy(req.ifr_name, lreq.lifr_name, IFNAMSIZ);
+ (void) strncpy(req.ifr_name, lreq.lifr_name, IFNAMSIZ);
bcopy(&lreq.lifr_lifru, &req.ifr_ifru, len - IFNAMSIZ);
if (copyout(&req, (struct lifreq *)arg, len) != 0)
@@ -1361,6 +1385,7 @@ ict_siolifreq(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (0);
}
+/* ARGSUSED */
static int
ict_siocgifconf32(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1418,6 +1443,7 @@ ict_siocgifconf32(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (error);
}
+/* ARGSUSED */
static int
ict_siocgifconf64(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1475,6 +1501,7 @@ ict_siocgifconf64(file_t *fp, int cmd, intptr_t arg, int lxcmd)
return (error);
}
+/* ARGSUSED */
static int
ict_siocgifconf(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
@@ -1490,6 +1517,7 @@ ict_siocgifconf(file_t *fp, int cmd, intptr_t arg, int lxcmd)
* rest of the code, we'll treat a positive return as an errno and a negative
* return as the non-error return (which we then negate).
*/
+/* ARGSUSED */
static int
ict_autofs(file_t *fp, int cmd, intptr_t arg, int lxcmd)
{
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_open.c b/usr/src/uts/common/brand/lx/syscall/lx_open.c
index 431c2ed1ba..a6d6877326 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_open.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_open.c
@@ -22,7 +22,7 @@
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
- * Copyright 2015 Joyent, Inc. All rights reserved.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/systm.h>
@@ -242,7 +242,7 @@ lx_openat(int atfd, char *path, int fmode, int cmode)
if (error != 0)
return (set_errno(ENOTDIR));
- set_errno(oerror);
+ (void) set_errno(oerror);
}
return (ttolwp(curthread)->lwp_errno);
}
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_prctl.c b/usr/src/uts/common/brand/lx/syscall/lx_prctl.c
index 091a6f547b..ac125b9b2d 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_prctl.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_prctl.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/systm.h>
@@ -146,7 +146,7 @@ lx_prctl(int opt, uintptr_t data)
lx_proc_data_t *lxpd;
mutex_enter(&curproc->p_lock);
- VERIFY(lxpd = ptolxproc(curproc));
+ VERIFY((lxpd = ptolxproc(curproc)) != NULL);
sig = lxpd->l_parent_deathsig;
mutex_exit(&curproc->p_lock);
@@ -165,7 +165,7 @@ lx_prctl(int opt, uintptr_t data)
mutex_enter(&pidlock);
/* Set signal on our self */
mutex_enter(&curproc->p_lock);
- VERIFY(lxpd = ptolxproc(curproc));
+ VERIFY((lxpd = ptolxproc(curproc)) != NULL);
lxpd->l_parent_deathsig = sig;
pp = curproc->p_parent;
mutex_exit(&curproc->p_lock);
@@ -173,7 +173,7 @@ lx_prctl(int opt, uintptr_t data)
/* Configure parent to potentially signal children on death */
mutex_enter(&pp->p_lock);
if (PROC_IS_BRANDED(pp)) {
- VERIFY(lxpd = ptolxproc(pp));
+ VERIFY((lxpd = ptolxproc(pp)) != NULL);
/*
* Mark the parent as having children which wish to be
* signaled on death of parent.
@@ -185,6 +185,7 @@ lx_prctl(int opt, uintptr_t data)
* hooks to facilitate this mechanism will not fire
* when it dies. We lie about success in this case.
*/
+ /* EMPTY */
}
mutex_exit(&pp->p_lock);
mutex_exit(&pidlock);
@@ -204,7 +205,7 @@ lx_prctl(int opt, uintptr_t data)
break;
}
- snprintf(ebuf, 64, "prctl option %d", opt);
+ (void) snprintf(ebuf, 64, "prctl option %d", opt);
lx_unsupported(ebuf);
return (set_errno(EINVAL));
}
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_socket.c b/usr/src/uts/common/brand/lx/syscall/lx_socket.c
index e8e9714143..2a049adb46 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_socket.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_socket.c
@@ -129,8 +129,8 @@ static const int ltos_family[LX_AF_MAX + 1] = {
AF_NOTSUPPORTED, /* LX_AF_PPOX */
AF_NOTSUPPORTED, /* LX_AF_WANPIPE */
AF_NOTSUPPORTED, /* LX_AF_LLC */
- AF_NOTSUPPORTED, /* EMPTY */
- AF_NOTSUPPORTED, /* EMPTY */
+ AF_NOTSUPPORTED, /* NONE */
+ AF_NOTSUPPORTED, /* NONE */
AF_NOTSUPPORTED, /* LX_AF_CAN */
AF_NOTSUPPORTED, /* LX_AF_TIPC */
AF_NOTSUPPORTED, /* LX_AF_BLUETOOTH */
@@ -200,7 +200,7 @@ static const int stol_socktype[SOCK_SEQPACKET + 1] = {
#define LTOS_SOCKTYPE(t) \
((t) <= LX_SOCK_PACKET ? ltos_socktype[(t)] : SOCK_INVAL)
#define STOL_SOCKTYPE(t) \
- ((t) <= SOCK_SEQPACKET ? ltos_socktype[(t)] : SOCK_INVAL)
+ ((t) <= SOCK_SEQPACKET ? stol_socktype[(t)] : SOCK_INVAL)
/*
@@ -316,15 +316,15 @@ lx_xlate_sock_flags(int inflags, lx_xlate_dir_t dir)
break;
case LXFM_UNSUP:
if (match != 0) {
- snprintf(buf, LX_UNSUP_BUFSZ,
+ (void) snprintf(buf, LX_UNSUP_BUFSZ,
"unsupported sock flag %s", map->lxfm_name);
lx_unsupported(buf);
}
}
}
if (inflags != 0) {
- snprintf(buf, LX_UNSUP_BUFSZ, "unsupported sock flags 0x%08x",
- inflags);
+ (void) snprintf(buf, LX_UNSUP_BUFSZ,
+ "unsupported sock flags 0x%08x", inflags);
lx_unsupported(buf);
}
@@ -472,6 +472,7 @@ ltos_sockaddr_copyin(const struct sockaddr *inaddr, const socklen_t inlen,
*outlen = sizeof (struct sockaddr_ll);
/* sll_protocol must be translated */
+ /* LINTED: alignment */
sal = (struct sockaddr_ll *)laddr;
proto = ltos_pkt_proto(sal->sll_protocol);
if (proto < 0) {
@@ -726,11 +727,13 @@ stol_conv_ucred(struct cmsghdr *inmsg, struct cmsghdr *omsg)
* Format the data correctly in the omsg buffer.
*/
if (omsg != NULL) {
- struct ucred_s *scred = (struct ucred_s *)CMSG_CONTENT(inmsg);
+ struct ucred_s *scred;
prcred_t *cr;
lx_ucred_t lcred;
+ scred = (struct ucred_s *)CMSG_CONTENT(inmsg);
lcred.lxu_pid = scred->uc_pid;
+ /* LINTED: alignment */
cr = UCCRED(scred);
if (cr != NULL) {
lcred.lxu_uid = cr->pr_euid;
@@ -754,6 +757,7 @@ ltos_conv_ucred(struct cmsghdr *inmsg, struct cmsghdr *omsg)
lx_ucred_t *lcred;
uc = (struct ucred_s *)CMSG_CONTENT(omsg);
+ /* LINTED: alignment */
pc = (prcred_t *)((char *)uc + sizeof (struct ucred_s));
uc->uc_credoff = sizeof (struct ucred_s);
@@ -2860,6 +2864,7 @@ lx_setsockopt_socket(sonode_t *so, int optname, void *optval, socklen_t optlen)
}
lbp = (struct lx_bpf_program *)optval;
bp.bf_len = lbp->bf_len;
+ /* LINTED: alignment */
bp.bf_insns = (struct bpf_insn *)lbp->bf_insns;
optval = &bp;
break;
@@ -3091,7 +3096,7 @@ lx_getsockopt_tcp(sonode_t *so, int optname, void *optval, socklen_t *optlen)
socklen_t len = sizeof (fi);
if ((error = socket_getsockopt(so, SOL_FILTER,
- FIL_LIST, fi, &len, 0, CRED()) != 0)) {
+ FIL_LIST, fi, &len, 0, CRED())) != 0) {
*optlen = sizeof (int);
return (error);
}
@@ -3340,8 +3345,8 @@ lx_setsockopt(int sock, int level, int optname, void *optval, socklen_t optlen)
if (error == ENOPROTOOPT) {
char buf[LX_UNSUP_BUFSZ];
- snprintf(buf, LX_UNSUP_BUFSZ, "setsockopt(%d, %d)", level,
- optname);
+ (void) snprintf(buf, LX_UNSUP_BUFSZ, "setsockopt(%d, %d)",
+ level, optname);
lx_unsupported(buf);
}
if (buflen != 0) {
@@ -3431,8 +3436,8 @@ lx_getsockopt(int sock, int level, int optname, void *optval,
if (error == ENOPROTOOPT) {
char buf[LX_UNSUP_BUFSZ];
- snprintf(buf, LX_UNSUP_BUFSZ, "getsockopt(%d, %d)", level,
- optname);
+ (void) snprintf(buf, LX_UNSUP_BUFSZ, "getsockopt(%d, %d)",
+ level, optname);
lx_unsupported(buf);
}
if (copyout(&optlen, optlenp, sizeof (optlen)) != 0) {
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_thread_area.c b/usr/src/uts/common/brand/lx/syscall/lx_thread_area.c
index 48d91b09cc..50607fac9b 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_thread_area.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_thread_area.c
@@ -21,7 +21,7 @@
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/types.h>
@@ -38,6 +38,7 @@
#include <sys/controlregs.h>
#include <lx_syscall.h>
+/* ARGSUSED */
long
lx_arch_prctl(int code, ulong_t addr)
{
diff --git a/usr/src/uts/common/brand/lx/syscall/lx_timer.c b/usr/src/uts/common/brand/lx/syscall/lx_timer.c
index c2fb4a4c7d..c102334156 100644
--- a/usr/src/uts/common/brand/lx/syscall/lx_timer.c
+++ b/usr/src/uts/common/brand/lx/syscall/lx_timer.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
/*
@@ -93,6 +93,7 @@ static lx_clock_backend_t lx_clock_backends[] = {
#define LX_CLOCK_BACKEND(clk) \
((clk) < LX_CLOCK_MAX && (clk) >= 0 ? &lx_clock_backends[(clk)] : NULL)
+/* ARGSUSED */
static int
lx_emul_clock_settime(clockid_t clock, timespec_t *tp)
{
@@ -369,7 +370,8 @@ lx_time(time_t *tp)
return (tv32.tv_sec);
}
-#endif
+#endif /* _SYSCALL32_IMPL */
+ /* NOTREACHED */
}
long
diff --git a/usr/src/uts/common/brand/lx/sysfs/lx_syssubr.c b/usr/src/uts/common/brand/lx/sysfs/lx_syssubr.c
index 3184b34d08..e80acbcfe5 100644
--- a/usr/src/uts/common/brand/lx/sysfs/lx_syssubr.c
+++ b/usr/src/uts/common/brand/lx/sysfs/lx_syssubr.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
/*
@@ -171,11 +171,10 @@ lxsys_node_t *
lxsys_getnode_static(vnode_t *dp, unsigned int instance)
{
lxsys_mnt_t *lxsm = VTOLXSM(dp);
- lxsys_node_t *lnp;
+ lxsys_node_t *lnp, *tail = NULL;
mutex_enter(&lxsm->lxsysm_lock);
- lnp = lxsm->lxsysm_node;
- while (1) {
+ for (lnp = lxsm->lxsysm_node; lnp != NULL; lnp = lnp->lxsys_next) {
if (lnp->lxsys_instance == instance) {
VERIFY(lnp->lxsys_parentvp == dp);
@@ -183,20 +182,16 @@ lxsys_getnode_static(vnode_t *dp, unsigned int instance)
mutex_exit(&lxsm->lxsysm_lock);
return (lnp);
} else if (lnp->lxsys_next == NULL) {
+ /* Found no match by the end of the list */
+ tail = lnp;
break;
}
- lnp = lnp->lxsys_next;
}
- /*
- * No persistent node found.
- * Create one and add it to the end of the list.
- */
- lnp->lxsys_next = lxsys_getnode(dp, LXSYS_STATIC, instance, 0);
- lnp = lnp->lxsys_next;
+ tail->lxsys_next = lxsys_getnode(dp, LXSYS_STATIC, instance, 0);
+ lnp = tail->lxsys_next;
/* Allow mounts on static entries */
LXSTOV(lnp)->v_flag &= (~VNOMOUNT);
-
mutex_exit(&lxsm->lxsysm_lock);
return (lnp);
}
diff --git a/usr/src/uts/common/brand/lx/sysfs/lx_sysvnops.c b/usr/src/uts/common/brand/lx/sysfs/lx_sysvnops.c
index f3df77428c..3fe074540b 100644
--- a/usr/src/uts/common/brand/lx/sysfs/lx_sysvnops.c
+++ b/usr/src/uts/common/brand/lx/sysfs/lx_sysvnops.c
@@ -193,7 +193,6 @@ static lxsys_dirent_t dirlist_root[] = {
{ LXSYS_INST_DEVICESDIR, "devices" },
{ LXSYS_INST_FSDIR, "fs" }
};
-static lxsys_dirent_t dirlist_empty[] = {};
static lxsys_dirent_t dirlist_class[] = {
{ LXSYS_INST_CLASS_NETDIR, "net" }
};
@@ -258,7 +257,7 @@ static lxsys_dirlookup_t lxsys_dirlookup[] = {
SYSDLENT(LXSYS_INST_ROOT, dirlist_root),
SYSDLENT(LXSYS_INST_CLASSDIR, dirlist_class),
SYSDLENT(LXSYS_INST_FSDIR, dirlist_fs),
- SYSDLENT(LXSYS_INST_FS_CGROUPDIR, dirlist_empty),
+ { LXSYS_INST_FS_CGROUPDIR, NULL, 0 },
SYSDLENT(LXSYS_INST_DEVICESDIR, dirlist_devices),
SYSDLENT(LXSYS_INST_DEVICES_SYSTEMDIR, dirlist_devices_system),
SYSDLENT(LXSYS_INST_DEVICES_VIRTUALDIR, dirlist_devices_virtual),
@@ -334,6 +333,7 @@ typedef struct lxsys_cpu_info {
/*
* lxsys_open(): Vnode operation for VOP_OPEN()
*/
+/* ARGSUSED */
static int
lxsys_open(vnode_t **vpp, int flag, cred_t *cr, caller_context_t *ct)
{
@@ -397,6 +397,7 @@ lxsys_read(vnode_t *vp, uio_t *uiop, int ioflag, cred_t *cr,
/*
* lxsys_getattr(): Vnode operation for VOP_GETATTR()
*/
+/* ARGSUSED */
static int
lxsys_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
caller_context_t *ct)
@@ -422,6 +423,7 @@ lxsys_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
/*
* lxsys_access(): Vnode operation for VOP_ACCESS()
*/
+/* ARGSUSED */
static int
lxsys_access(vnode_t *vp, int mode, int flags, cred_t *cr, caller_context_t *ct)
{
@@ -793,11 +795,13 @@ lxsys_lookup_devices_syscpu(lxsys_node_t *ldp, char *comp)
}
} else if (ldp->lxsys_endpoint == 0) {
/* cpu-level sub-item listing, currently empty */
+ /* EMPTY */
}
return (NULL);
}
+/* ARGSUSED */
static vnode_t *
lxsys_lookup_devices_syscpuinfo(lxsys_node_t *ldp, char *comp)
{
@@ -916,6 +920,7 @@ lxsys_read_devices_virtual_net(lxsys_node_t *lnp, lxsys_uiobuf_t *luio)
return (error);
}
+/* ARGSUSED1 */
static int
lxsys_read_devices_zfs_block(lxsys_node_t *lnp, lxsys_uiobuf_t *luio)
{
@@ -1129,6 +1134,8 @@ lxsys_readdir_subdir(lxsys_node_t *lxsnp, uio_t *uiop, int *eofp,
ssize_t oresid; /* save a copy for testing later */
ssize_t uresid;
+ VERIFY(dirtab != NULL || dirtablen == 0);
+
oresid = uiop->uio_resid;
/* clear out the dirent buffer */
@@ -1559,8 +1566,7 @@ lxsys_readdir_devices_syscpu(lxsys_node_t *lnp, uio_t *uiop, int *eofp)
error = lxsys_readdir_cpu(lnp, uiop, eofp);
} else if (lnp->lxsys_endpoint == 0) {
/* cpu-level sub-item listing */
- error = lxsys_readdir_subdir(lnp, uiop, eofp,
- dirlist_empty, SYSDIRLISTSZ(dirlist_empty));
+ error = lxsys_readdir_subdir(lnp, uiop, eofp, NULL, 0);
} else {
/*
* Currently there shouldn't be subdirs below this but
diff --git a/usr/src/uts/common/brand/sn1/sn1_brand.c b/usr/src/uts/common/brand/sn1/sn1_brand.c
index 32fb7d9127..3d3acd6036 100644
--- a/usr/src/uts/common/brand/sn1/sn1_brand.c
+++ b/usr/src/uts/common/brand/sn1/sn1_brand.c
@@ -49,7 +49,7 @@ void sn1_setbrand(proc_t *);
int sn1_getattr(zone_t *, int, void *, size_t *);
int sn1_setattr(zone_t *, int, void *, size_t);
int sn1_brandsys(int, int64_t *, uintptr_t, uintptr_t, uintptr_t,
- uintptr_t, uintptr_t);
+ uintptr_t);
void sn1_copy_procdata(proc_t *, proc_t *);
void sn1_proc_exit(struct proc *);
void sn1_exec();
@@ -179,10 +179,10 @@ sn1_setattr(zone_t *zone, int attr, void *buf, size_t bufsize)
return (EINVAL);
}
-/*ARGSUSED*/
+/* ARGSUSED5 */
int
sn1_brandsys(int cmd, int64_t *rval, uintptr_t arg1, uintptr_t arg2,
- uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
+ uintptr_t arg3, uintptr_t arg4)
{
int res;
@@ -251,8 +251,8 @@ sn1_init_brand_data(zone_t *zone, kmutex_t *zsl)
int
sn1_elfexec(vnode_t *vp, execa_t *uap, uarg_t *args, intpdata_t *idatap,
- int level, long *execsz, int setid, caddr_t exec_file, cred_t *cred,
- int *brand_action)
+ int level, long *execsz, int setid, caddr_t exec_file, cred_t *cred,
+ int *brand_action)
{
return (brand_solaris_elfexec(vp, uap, args, idatap, level, execsz,
setid, exec_file, cred, brand_action, &sn1_brand, SN1_BRANDNAME,
diff --git a/usr/src/uts/common/brand/solaris10/s10_brand.c b/usr/src/uts/common/brand/solaris10/s10_brand.c
index a02ee7de3d..50997fba02 100644
--- a/usr/src/uts/common/brand/solaris10/s10_brand.c
+++ b/usr/src/uts/common/brand/solaris10/s10_brand.c
@@ -52,7 +52,7 @@ void s10_setbrand(proc_t *);
int s10_getattr(zone_t *, int, void *, size_t *);
int s10_setattr(zone_t *, int, void *, size_t);
int s10_brandsys(int, int64_t *, uintptr_t, uintptr_t, uintptr_t,
- uintptr_t, uintptr_t);
+ uintptr_t);
void s10_copy_procdata(proc_t *, proc_t *);
void s10_proc_exit(struct proc *);
void s10_exec();
@@ -280,10 +280,10 @@ s10_native(void *cmd, void *args)
return (0);
}
-/*ARGSUSED*/
+/* ARGSUSED5 */
int
s10_brandsys(int cmd, int64_t *rval, uintptr_t arg1, uintptr_t arg2,
- uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
+ uintptr_t arg3, uintptr_t arg4)
{
proc_t *p = curproc;
int res;
@@ -420,8 +420,8 @@ s10_init_brand_data(zone_t *zone, kmutex_t *zsl)
int
s10_elfexec(vnode_t *vp, execa_t *uap, uarg_t *args, intpdata_t *idatap,
- int level, long *execsz, int setid, caddr_t exec_file, cred_t *cred,
- int *brand_action)
+ int level, long *execsz, int setid, caddr_t exec_file, cred_t *cred,
+ int *brand_action)
{
return (brand_solaris_elfexec(vp, uap, args, idatap, level, execsz,
setid, exec_file, cred, brand_action, &s10_brand, S10_BRANDNAME,
diff --git a/usr/src/uts/common/os/sysent.c b/usr/src/uts/common/os/sysent.c
index aa44ccf788..1e61f3d24c 100644
--- a/usr/src/uts/common/os/sysent.c
+++ b/usr/src/uts/common/os/sysent.c
@@ -23,7 +23,7 @@
* Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2012 Milan Jurik. All rights reserved.
* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
- * Copyright (c) 2015, Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
@@ -61,8 +61,7 @@ struct mmaplf32a;
int access(char *, int);
int alarm(int);
int auditsys(struct auditcalls *, rval_t *);
-int64_t brandsys(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t,
- uintptr_t);
+int64_t brandsys(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
int brk(caddr_t);
int chdir(char *);
int chmod(char *, int);
@@ -646,7 +645,7 @@ struct sysent sysent[NSYSCALL] =
SYSENT_NOSYS(),
SYSENT_C("llseek", llseek32, 4)),
/* 176 */ SYSENT_LOADABLE(), /* inst_sync */
- /* 177 */ SYSENT_CI("brandsys", brandsys, 6),
+ /* 177 */ SYSENT_CI("brandsys", brandsys, 5),
/* 178 */ SYSENT_LOADABLE(), /* kaio */
/* 179 */ SYSENT_LOADABLE(), /* cpc */
/* 180 */ SYSENT_CI("lgrpsys", lgrpsys, 3),
@@ -1001,7 +1000,7 @@ struct sysent sysent32[NSYSCALL] =
/* 174 */ SYSENT_CI("pwrite", pwrite32, 4),
/* 175 */ SYSENT_C("llseek", llseek32, 4),
/* 176 */ SYSENT_LOADABLE32(), /* inst_sync */
- /* 177 */ SYSENT_CI("brandsys", brandsys, 6),
+ /* 177 */ SYSENT_CI("brandsys", brandsys, 5),
/* 178 */ SYSENT_LOADABLE32(), /* kaio */
/* 179 */ SYSENT_LOADABLE32(), /* cpc */
/* 180 */ SYSENT_CI("lgrpsys", lgrpsys, 3),
diff --git a/usr/src/uts/common/sys/brand.h b/usr/src/uts/common/sys/brand.h
index d88d5683a7..231daa5e9d 100644
--- a/usr/src/uts/common/sys/brand.h
+++ b/usr/src/uts/common/sys/brand.h
@@ -154,7 +154,7 @@ struct brand_ops {
void (*b_init_brand_data)(zone_t *, kmutex_t *);
void (*b_free_brand_data)(zone_t *);
int (*b_brandsys)(int, int64_t *, uintptr_t, uintptr_t, uintptr_t,
- uintptr_t, uintptr_t);
+ uintptr_t);
void (*b_setbrand)(struct proc *);
int (*b_getattr)(zone_t *, int, void *, size_t *);
int (*b_setattr)(zone_t *, int, void *, size_t);
diff --git a/usr/src/uts/common/syscall/brandsys.c b/usr/src/uts/common/syscall/brandsys.c
index 8ee5511fd0..245ef9f14f 100644
--- a/usr/src/uts/common/syscall/brandsys.c
+++ b/usr/src/uts/common/syscall/brandsys.c
@@ -24,7 +24,7 @@
*/
/*
- * Copyright (c) 2014, Joyent, Inc. All rights reserved.
+ * Copyright 2016 Joyent, Inc.
*/
#include <sys/brand.h>
@@ -37,7 +37,7 @@
*/
int64_t
brandsys(int cmd, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3,
- uintptr_t arg4, uintptr_t arg5)
+ uintptr_t arg4)
{
struct proc *p = curthread->t_procp;
int64_t rval = 0;
@@ -51,7 +51,7 @@ brandsys(int cmd, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3,
return (set_errno(ENOSYS));
if ((err = ZBROP(p->p_zone)->b_brandsys(cmd, &rval, arg1, arg2, arg3,
- arg4, arg5)) != 0)
+ arg4)) != 0)
return (set_errno(err));
return (rval);
diff --git a/usr/src/uts/intel/brand/lx/lx_archdep.c b/usr/src/uts/intel/brand/lx/lx_archdep.c
index 0117ece67f..b65bea42ea 100644
--- a/usr/src/uts/intel/brand/lx/lx_archdep.c
+++ b/usr/src/uts/intel/brand/lx/lx_archdep.c
@@ -10,7 +10,7 @@
*/
/*
- * Copyright 2015 Joyent, Inc.
+ * Copyright 2016 Joyent, Inc.
*/
/*
@@ -235,9 +235,9 @@ lx_rw_uc(proc_t *p, void *ucp, void *kucp, size_t ucsz, boolean_t writing)
size_t len = MIN(rem, PAGESIZE - (addr & PAGEOFFSET));
if (writing) {
- error = uwrite(p, kucp + pos, len, addr);
+ error = uwrite(p, (caddr_t)kucp + pos, len, addr);
} else {
- error = uread(p, kucp + pos, len, addr);
+ error = uread(p, (caddr_t)kucp + pos, len, addr);
}
if (error != 0) {
@@ -990,6 +990,7 @@ lx_user_regs_copyin(lx_lwp_data_t *lwpd, void *uregsp)
}
return (0);
}
+ break;
#ifdef __amd64
case DATAMODEL_LP64:
@@ -1032,6 +1033,7 @@ lx_user_regs_copyout(lx_lwp_data_t *lwpd, void *uregsp)
}
return (0);
}
+ break;
#ifdef __amd64
case DATAMODEL_LP64:
@@ -1072,6 +1074,7 @@ lx_user_fpregs_copyin(lx_lwp_data_t *lwpd, void *uregsp)
lx_setfpregs32(lwpd, &regs);
return (0);
}
+ break;
#ifdef __amd64
case DATAMODEL_LP64:
@@ -1110,6 +1113,7 @@ lx_user_fpregs_copyout(lx_lwp_data_t *lwpd, void *uregsp)
}
return (0);
}
+ break;
#ifdef __amd64
case DATAMODEL_LP64:
@@ -1132,6 +1136,7 @@ lx_user_fpregs_copyout(lx_lwp_data_t *lwpd, void *uregsp)
return (EIO);
}
+/* ARGSUSED */
int
lx_user_fpxregs_copyin(lx_lwp_data_t *lwpd, void *uregsp)
{
@@ -1139,6 +1144,7 @@ lx_user_fpxregs_copyin(lx_lwp_data_t *lwpd, void *uregsp)
return (EIO);
}
+/* ARGSUSED */
int
lx_user_fpxregs_copyout(lx_lwp_data_t *lwpd, void *uregsp)
{
@@ -1168,6 +1174,7 @@ lx_ptrace_peekuser(lx_lwp_data_t *lwpd, uintptr_t offset, void *uptr)
}
return (0);
}
+ break;
#ifdef __amd64
case DATAMODEL_LP64:
@@ -1196,6 +1203,7 @@ lx_ptrace_peekuser(lx_lwp_data_t *lwpd, uintptr_t offset, void *uptr)
return (EIO);
}
+/* ARGSUSED */
int
lx_ptrace_pokeuser(lx_lwp_data_t *lwpd, uintptr_t offset, void *uptr)
{
@@ -1704,6 +1712,7 @@ badstack:
#else /* !__amd64 (__i386) */
+/* ARGSUSED */
void
lx_emulate_user(klwp_t *lwp, int syscall_num, uintptr_t *args)
{
diff --git a/usr/src/uts/intel/lx_brand/Makefile.rules b/usr/src/uts/intel/lx_brand/Makefile.rules
index 0a83e15493..1f641cea05 100644
--- a/usr/src/uts/intel/lx_brand/Makefile.rules
+++ b/usr/src/uts/intel/lx_brand/Makefile.rules
@@ -21,7 +21,7 @@
#
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
-# Copyright 2015 Joyent, Inc.
+# Copyright 2016 Joyent, Inc.
#
#
@@ -95,3 +95,6 @@ $(LINTS_DIR)/%.ln: $(LX_CMN)/%.c
$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/brand/lx/%.s
@($(LHEAD) $(LINT.s) $< $(LTAIL))
+
+$(LINTS_DIR)/%.ln: $(UTSBASE)/intel/brand/lx/%.c
+ @($(LHEAD) $(LINT.c) $< $(LTAIL))
diff --git a/usr/src/uts/intel/sys/machbrand.h b/usr/src/uts/intel/sys/machbrand.h
index 2e77eb845b..ad7f631649 100644
--- a/usr/src/uts/intel/sys/machbrand.h
+++ b/usr/src/uts/intel/sys/machbrand.h
@@ -20,7 +20,7 @@
*/
/*
* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2015, Joyent, Inc. All rights reserved.
+ * Copyright 2016 Joyent, Inc.
*/
#ifndef _SYS_MACHBRAND_H
@@ -33,6 +33,7 @@ extern "C" {
#ifndef _ASM
#include <sys/model.h>
+#include <sys/thread.h>
struct brand_mach_ops {
void (*b_sysenter)(void);