summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/inet/ip/ipsecah.c28
-rw-r--r--usr/src/uts/common/inet/ip/ipsecesp.c26
-rw-r--r--usr/src/uts/common/inet/ip/keysock.c37
-rw-r--r--usr/src/uts/common/io/ib/clients/rds/rdsddi.c7
-rw-r--r--usr/src/uts/common/os/sunmdi.c10
5 files changed, 68 insertions, 40 deletions
diff --git a/usr/src/uts/common/inet/ip/ipsecah.c b/usr/src/uts/common/inet/ip/ipsecah.c
index 05e92c4fa4..455b9af72f 100644
--- a/usr/src/uts/common/inet/ip/ipsecah.c
+++ b/usr/src/uts/common/inet/ip/ipsecah.c
@@ -135,7 +135,8 @@ static void ah_outbound_finish(mblk_t *, ip_xmit_attr_t *);
static int ipsecah_open(queue_t *, dev_t *, int, int, cred_t *);
static int ipsecah_close(queue_t *, int, cred_t *);
-static void ipsecah_wput(queue_t *, mblk_t *);
+static int ipsecah_rput(queue_t *, mblk_t *);
+static int ipsecah_wput(queue_t *, mblk_t *);
static boolean_t ah_register_out(uint32_t, uint32_t, uint_t, ipsecah_stack_t *,
cred_t *);
static void *ipsecah_stack_init(netstackid_t stackid, netstack_t *ns);
@@ -151,12 +152,12 @@ static struct module_info info = {
};
static struct qinit rinit = {
- (pfi_t)putnext, NULL, ipsecah_open, ipsecah_close, NULL, &info,
+ ipsecah_rput, NULL, ipsecah_open, ipsecah_close, NULL, &info,
NULL
};
static struct qinit winit = {
- (pfi_t)ipsecah_wput, NULL, ipsecah_open, ipsecah_close, NULL, &info,
+ ipsecah_wput, NULL, ipsecah_open, ipsecah_close, NULL, &info,
NULL
};
@@ -1446,9 +1447,19 @@ ah_keysock_no_socket(mblk_t *mp, ipsecah_stack_t *ahstack)
}
/*
+ * AH module read put routine.
+ */
+static int
+ipsecah_rput(queue_t *q, mblk_t *mp)
+{
+ putnext(q, mp);
+ return (0);
+}
+
+/*
* AH module write put routine.
*/
-static void
+static int
ipsecah_wput(queue_t *q, mblk_t *mp)
{
ipsec_info_t *ii;
@@ -1498,7 +1509,7 @@ ipsecah_wput(queue_t *q, mblk_t *mp)
case ND_GET:
if (nd_getset(q, ahstack->ipsecah_g_nd, mp)) {
qreply(q, mp);
- return;
+ return (0);
} else {
iocp->ioc_error = ENOENT;
}
@@ -1512,7 +1523,7 @@ ipsecah_wput(queue_t *q, mblk_t *mp)
iocp->ioc_count = 0;
mp->b_datap->db_type = M_IOCACK;
qreply(q, mp);
- return;
+ return (0);
}
default:
ah3dbg(ahstack,
@@ -1520,6 +1531,7 @@ ipsecah_wput(queue_t *q, mblk_t *mp)
mp->b_datap->db_type));
putnext(q, mp);
}
+ return (0);
}
/* Refactor me */
@@ -2885,7 +2897,7 @@ ah_process_ip_options_v6(mblk_t *mp, ipsa_t *assoc, int *length_to_skip,
{
ip6_t *ip6h;
ip6_t *oip6h;
- mblk_t *phdr_mp;
+ mblk_t *phdr_mp;
int option_length;
uint_t ah_align_sz;
uint_t ah_offset;
@@ -3003,7 +3015,7 @@ ah_process_ip_options_v4(mblk_t *mp, ipsa_t *assoc, int *length_to_skip,
uint32_t option_length;
ipha_t *ipha;
ipha_t *oipha;
- mblk_t *phdr_mp;
+ mblk_t *phdr_mp;
int size;
uchar_t *optptr;
uint8_t optval;
diff --git a/usr/src/uts/common/inet/ip/ipsecesp.c b/usr/src/uts/common/inet/ip/ipsecesp.c
index ce7a4d0f4f..8f6fa27487 100644
--- a/usr/src/uts/common/inet/ip/ipsecesp.c
+++ b/usr/src/uts/common/inet/ip/ipsecesp.c
@@ -107,7 +107,8 @@ static ipsecespparam_t lcl_param_arr[] = {
static int ipsecesp_open(queue_t *, dev_t *, int, int, cred_t *);
static int ipsecesp_close(queue_t *, int, cred_t *);
-static void ipsecesp_wput(queue_t *, mblk_t *);
+static int ipsecesp_rput(queue_t *, mblk_t *);
+static int ipsecesp_wput(queue_t *, mblk_t *);
static void *ipsecesp_stack_init(netstackid_t stackid, netstack_t *ns);
static void ipsecesp_stack_fini(netstackid_t stackid, void *arg);
@@ -132,12 +133,12 @@ static struct module_info info = {
};
static struct qinit rinit = {
- (pfi_t)putnext, NULL, ipsecesp_open, ipsecesp_close, NULL, &info,
+ ipsecesp_rput, NULL, ipsecesp_open, ipsecesp_close, NULL, &info,
NULL
};
static struct qinit winit = {
- (pfi_t)ipsecesp_wput, NULL, ipsecesp_open, ipsecesp_close, NULL, &info,
+ ipsecesp_wput, NULL, ipsecesp_open, ipsecesp_close, NULL, &info,
NULL
};
@@ -1801,7 +1802,7 @@ esp_crypto_failed(mblk_t *data_mp, boolean_t is_inbound, int kef_rc,
(data)->cd_offset = off; \
} else { \
(data)->cd_format = CRYPTO_DATA_MBLK; \
- (data)->cd_mp = mp; \
+ (data)->cd_mp = mp; \
(data)->cd_offset = off; \
} \
(data)->cd_length = len; \
@@ -3839,9 +3840,19 @@ esp_keysock_no_socket(mblk_t *mp, ipsecesp_stack_t *espstack)
}
/*
+ * ESP module read put routine.
+ */
+static int
+ipsecesp_rput(queue_t *q, mblk_t *mp)
+{
+ putnext(q, mp);
+ return (0);
+}
+
+/*
* ESP module write put routine.
*/
-static void
+static int
ipsecesp_wput(queue_t *q, mblk_t *mp)
{
ipsec_info_t *ii;
@@ -3891,7 +3902,7 @@ ipsecesp_wput(queue_t *q, mblk_t *mp)
case ND_GET:
if (nd_getset(q, espstack->ipsecesp_g_nd, mp)) {
qreply(q, mp);
- return;
+ return (0);
} else {
iocp->ioc_error = ENOENT;
}
@@ -3905,7 +3916,7 @@ ipsecesp_wput(queue_t *q, mblk_t *mp)
iocp->ioc_count = 0;
mp->b_datap->db_type = M_IOCACK;
qreply(q, mp);
- return;
+ return (0);
}
default:
esp3dbg(espstack,
@@ -3913,6 +3924,7 @@ ipsecesp_wput(queue_t *q, mblk_t *mp)
mp->b_datap->db_type));
putnext(q, mp);
}
+ return (0);
}
/*
diff --git a/usr/src/uts/common/inet/ip/keysock.c b/usr/src/uts/common/inet/ip/keysock.c
index a01eeaa3c8..47435bb727 100644
--- a/usr/src/uts/common/inet/ip/keysock.c
+++ b/usr/src/uts/common/inet/ip/keysock.c
@@ -146,9 +146,9 @@ static keysockparam_t lcl_param_arr[] = {
static int keysock_close(queue_t *, int, cred_t *);
static int keysock_open(queue_t *, dev_t *, int, int, cred_t *);
-static void keysock_wput(queue_t *, mblk_t *);
-static void keysock_rput(queue_t *, mblk_t *);
-static void keysock_rsrv(queue_t *);
+static int keysock_wput(queue_t *, mblk_t *);
+static int keysock_rput(queue_t *, mblk_t *);
+static int keysock_rsrv(queue_t *);
static void keysock_passup(mblk_t *, sadb_msg_t *, minor_t,
keysock_consumer_t *, boolean_t, keysock_stack_t *);
static void *keysock_stack_init(netstackid_t stackid, netstack_t *ns);
@@ -159,12 +159,12 @@ static struct module_info info = {
};
static struct qinit rinit = {
- (pfi_t)keysock_rput, (pfi_t)keysock_rsrv, keysock_open, keysock_close,
+ keysock_rput, keysock_rsrv, keysock_open, keysock_close,
NULL, &info
};
static struct qinit winit = {
- (pfi_t)keysock_wput, NULL, NULL, NULL, NULL, &info
+ keysock_wput, NULL, NULL, NULL, NULL, &info
};
struct streamtab keysockinfo = {
@@ -1916,7 +1916,7 @@ keysock_parse(queue_t *q, mblk_t *mp)
* as PF_KEY sockets are concerned. I do some conversion, but not as much
* as IP/rts does.
*/
-static void
+static int
keysock_wput(queue_t *q, mblk_t *mp)
{
uchar_t *rptr = mp->b_rptr;
@@ -1937,7 +1937,7 @@ keysock_wput(queue_t *q, mblk_t *mp)
ks1dbg(keystack, ("Huh? wput for an consumer instance (%d)?\n",
kc->kc_sa_type));
putnext(q, mp);
- return;
+ return (0);
}
ks = (keysock_t *)q->q_ptr;
keystack = ks->keysock_keystack;
@@ -1951,7 +1951,7 @@ keysock_wput(queue_t *q, mblk_t *mp)
*/
ks2dbg(keystack, ("raw M_DATA in keysock.\n"));
freemsg(mp);
- return;
+ return (0);
case M_PROTO:
case M_PCPROTO:
if ((mp->b_wptr - rptr) >= sizeof (struct T_data_req)) {
@@ -1961,7 +1961,7 @@ keysock_wput(queue_t *q, mblk_t *mp)
ks2dbg(keystack,
("No data after DATA_REQ.\n"));
freemsg(mp);
- return;
+ return (0);
}
freeb(mp);
mp = mp1;
@@ -1974,11 +1974,12 @@ keysock_wput(queue_t *q, mblk_t *mp)
ks3dbg(keystack, ("In default wput case (%d %d).\n",
mp->b_datap->db_type, ((union T_primitives *)rptr)->type));
keysock_wput_other(q, mp);
- return;
+ return (0);
}
/* I now have a PF_KEY message in an M_DATA block, pointed to by mp. */
keysock_parse(q, mp);
+ return (0);
}
/* BELOW THIS LINE ARE ROUTINES INCLUDING AND RELATED TO keysock_rput(). */
@@ -2329,7 +2330,7 @@ error:
* Keysock's read service procedure is there only for PF_KEY reply
* messages that really need to reach the top.
*/
-static void
+static int
keysock_rsrv(queue_t *q)
{
mblk_t *mp;
@@ -2339,9 +2340,10 @@ keysock_rsrv(queue_t *q)
putnext(q, mp);
} else {
(void) putbq(q, mp);
- return;
+ return (0);
}
}
+ return (0);
}
/*
@@ -2349,7 +2351,7 @@ keysock_rsrv(queue_t *q)
* ESP, AH, etc. I should only see KEYSOCK_OUT and KEYSOCK_HELLO_ACK
* messages on my read queues.
*/
-static void
+static int
keysock_rput(queue_t *q, mblk_t *mp)
{
keysock_consumer_t *kc = (keysock_consumer_t *)q->q_ptr;
@@ -2374,7 +2376,7 @@ keysock_rput(queue_t *q, mblk_t *mp)
("Hmmm, a non M_CTL (%d, 0x%x) on keysock_rput.\n",
mp->b_datap->db_type, mp->b_datap->db_type));
putnext(q, mp);
- return;
+ return (0);
}
ii = (ipsec_info_t *)mp->b_rptr;
@@ -2418,7 +2420,7 @@ keysock_rput(queue_t *q, mblk_t *mp)
("One flush/dump message back from %d,"
" more to go.\n", samsg->sadb_msg_satype));
freemsg(mp1);
- return;
+ return (0);
}
samsg->sadb_msg_errno =
@@ -2429,18 +2431,19 @@ keysock_rput(queue_t *q, mblk_t *mp)
}
keysock_passup(mp1, samsg, serial, kc,
(samsg->sadb_msg_type == SADB_DUMP), keystack);
- return;
+ return (0);
case KEYSOCK_HELLO_ACK:
/* Aha, now we can link in the consumer! */
ksa = (keysock_hello_ack_t *)ii;
keysock_link_consumer(ksa->ks_hello_satype, kc);
freemsg(mp);
- return;
+ return (0);
default:
ks1dbg(keystack, ("Hmmm, an IPsec info I'm not used to, 0x%x\n",
ii->ipsec_info_type));
putnext(q, mp);
}
+ return (0);
}
/*
diff --git a/usr/src/uts/common/io/ib/clients/rds/rdsddi.c b/usr/src/uts/common/io/ib/clients/rds/rdsddi.c
index 35e7a55154..9ed6bdab8c 100644
--- a/usr/src/uts/common/io/ib/clients/rds/rdsddi.c
+++ b/usr/src/uts/common/io/ib/clients/rds/rdsddi.c
@@ -868,7 +868,7 @@ done:
return (error);
}
-static void
+static int
rds_rsrv(queue_t *q)
{
rds_t *rds = (rds_t *)q->q_ptr;
@@ -884,6 +884,7 @@ rds_rsrv(queue_t *q)
/* No more messages in the q, unstall the socket */
rds_transport_ops->rds_transport_resume_port(ntohs(rds->rds_port));
+ return (0);
}
int
@@ -949,11 +950,11 @@ static struct module_info info = {
};
static struct qinit rinit = {
- NULL, (pfi_t)rds_rsrv, rds_open, rds_close, NULL, &info
+ NULL, rds_rsrv, rds_open, rds_close, NULL, &info
};
static struct qinit winit = {
- (pfi_t)rds_wput, NULL, rds_open, rds_close, NULL, &info,
+ rds_wput, NULL, rds_open, rds_close, NULL, &info,
NULL, rds_wrw, NULL, STRUIOT_STANDARD
};
diff --git a/usr/src/uts/common/os/sunmdi.c b/usr/src/uts/common/os/sunmdi.c
index 5bbef59e9c..0905a0852b 100644
--- a/usr/src/uts/common/os/sunmdi.c
+++ b/usr/src/uts/common/os/sunmdi.c
@@ -21,6 +21,7 @@
/*
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014 Nexenta Systems Inc. All rights reserved.
+ * Copyright (c) 2018, Joyent, Inc.
*/
/*
@@ -1478,11 +1479,10 @@ i_mdi_client_free(mdi_vhci_t *vh, mdi_client_t *ct)
mutex_destroy(&ct->ct_mutex);
kmem_free(ct, sizeof (*ct));
- if (cdip != NULL) {
- MDI_VHCI_CLIENT_UNLOCK(vh);
- (void) i_mdi_devinfo_remove(vdip, cdip, flags);
- MDI_VHCI_CLIENT_LOCK(vh);
- }
+ MDI_VHCI_CLIENT_UNLOCK(vh);
+ (void) i_mdi_devinfo_remove(vdip, cdip, flags);
+ MDI_VHCI_CLIENT_LOCK(vh);
+
return (rv);
}