Page MenuHomeFreeBSD

D39557.id120263.diff
No OneTemporary

D39557.id120263.diff

diff --git a/sys/netlink/netlink_message_writer.h b/sys/netlink/netlink_message_writer.h
--- a/sys/netlink/netlink_message_writer.h
+++ b/sys/netlink/netlink_message_writer.h
@@ -48,10 +48,7 @@
char *data; /* pointer to the contiguous storage */
void *_storage; /* Underlying storage pointer */
nl_writer_cb *cb; /* Callback to flush data */
- union {
- void *arg_ptr; /* Callback argument as pointer */
- uint64_t arg_uint; /* Callback argument as int */
- };
+ uintptr_t arg; /* Callback argument: uint or pointer */
int num_messages; /* Number of messages in the buffer */
int malloc_flag; /* M_WAITOK or M_NOWAIT */
uint8_t writer_type; /* NS_WRITER_TYPE_* */
diff --git a/sys/netlink/netlink_message_writer.c b/sys/netlink/netlink_message_writer.c
--- a/sys/netlink/netlink_message_writer.c
+++ b/sys/netlink/netlink_message_writer.c
@@ -132,13 +132,13 @@
free(buf, M_NETLINK);
int io_flags = (nw->ignore_limit) ? NL_IOF_IGNORE_LIMIT : 0;
- return (nl_send_one(m, (struct nlpcb *)(nw->arg_ptr), cnt, io_flags));
+ return (nl_send_one(m, (struct nlpcb *)(nw->arg), cnt, io_flags));
}
static bool
nlmsg_write_group_buf(struct nl_writer *nw, void *buf, int datalen, int cnt)
{
- NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, nw->arg_ptr);
+ NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, (void *)nw->arg);
if (__predict_false(datalen == 0)) {
free(buf, M_NETLINK);
return (true);
@@ -155,15 +155,15 @@
if (!success)
return (false);
- nl_send_group(m, cnt, nw->arg_uint >> 16, nw->arg_uint & 0xFFFF);
+ nl_send_group(m, cnt, nw->arg >> 16, nw->arg & 0xFFFF);
return (true);
}
static bool
nlmsg_write_chain_buf(struct nl_writer *nw, void *buf, int datalen, int cnt)
{
- struct mbuf **m0 = (struct mbuf **)(nw->arg_ptr);
- NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, nw->arg_ptr);
+ struct mbuf **m0 = (struct mbuf **)(nw->arg);
+ NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, (void *)nw->arg);
if (__predict_false(datalen == 0)) {
free(buf, M_NETLINK);
@@ -227,7 +227,7 @@
nlmsg_write_socket_mbuf(struct nl_writer *nw, void *buf, int datalen, int cnt)
{
struct mbuf *m = (struct mbuf *)buf;
- NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, nw->arg_ptr);
+ NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, (void *)nw->arg);
if (__predict_false(datalen == 0)) {
m_freem(m);
@@ -237,14 +237,14 @@
m->m_pkthdr.len = datalen;
m->m_len = datalen;
int io_flags = (nw->ignore_limit) ? NL_IOF_IGNORE_LIMIT : 0;
- return (nl_send_one(m, (struct nlpcb *)(nw->arg_ptr), cnt, io_flags));
+ return (nl_send_one(m, (struct nlpcb *)(nw->arg), cnt, io_flags));
}
static bool
nlmsg_write_group_mbuf(struct nl_writer *nw, void *buf, int datalen, int cnt)
{
struct mbuf *m = (struct mbuf *)buf;
- NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, nw->arg_ptr);
+ NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, (void *)nw->arg);
if (__predict_false(datalen == 0)) {
m_freem(m);
@@ -253,7 +253,7 @@
m->m_pkthdr.len = datalen;
m->m_len = datalen;
- nl_send_group(m, cnt, nw->arg_uint >> 16, nw->arg_uint & 0xFFFF);
+ nl_send_group(m, cnt, nw->arg >> 16, nw->arg & 0xFFFF);
return (true);
}
@@ -261,9 +261,9 @@
nlmsg_write_chain_mbuf(struct nl_writer *nw, void *buf, int datalen, int cnt)
{
struct mbuf *m_new = (struct mbuf *)buf;
- struct mbuf **m0 = (struct mbuf **)(nw->arg_ptr);
+ struct mbuf **m0 = (struct mbuf **)(nw->arg);
- NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, nw->arg_ptr);
+ NL_LOG(LOG_DEBUG2, "IN: ptr: %p len: %d arg: %p", buf, datalen, (void *)nw->arg);
if (__predict_false(datalen == 0)) {
m_freem(m_new);
@@ -324,7 +324,7 @@
{
struct linear_buffer *lb = (struct linear_buffer *)buf;
char *data = (char *)(lb + 1);
- struct nlpcb *nlp = (struct nlpcb *)(nw->arg_ptr);
+ struct nlpcb *nlp = (struct nlpcb *)(nw->arg);
if (__predict_false(datalen == 0)) {
free(buf, M_NETLINK);
@@ -365,7 +365,7 @@
m_append(m, datalen, data);
free(buf, M_NETLINK);
- nl_send_group(m, cnt, nw->arg_uint >> 16, nw->arg_uint & 0xFFFF);
+ nl_send_group(m, cnt, nw->arg >> 16, nw->arg & 0xFFFF);
return (true);
}
@@ -440,7 +440,7 @@
{
if (!nlmsg_get_buf(nw, size, false, nlp->nl_linux))
return (false);
- nw->arg_ptr = (void *)nlp;
+ nw->arg = (uintptr_t)nlp;
nw->writer_target = NS_WRITER_TARGET_SOCKET;
nlmsg_set_callback(nw);
return (true);
@@ -451,7 +451,7 @@
{
if (!nlmsg_get_buf(nw, size, false, false))
return (false);
- nw->arg_uint = (uint64_t)protocol << 16 | (uint64_t)group_id;
+ nw->arg = (uintptr_t)protocol << 16 | (uintptr_t)group_id;
nw->writer_target = NS_WRITER_TARGET_GROUP;
nlmsg_set_callback(nw);
return (true);
@@ -463,7 +463,7 @@
if (!nlmsg_get_buf(nw, size, false, false))
return (false);
*pm = NULL;
- nw->arg_ptr = (void *)pm;
+ nw->arg = (uintptr_t)pm;
nw->writer_target = NS_WRITER_TARGET_CHAIN;
nlmsg_set_callback(nw);
NL_LOG(LOG_DEBUG3, "setup cb %p (need %p)", nw->cb, &nlmsg_write_chain_mbuf);
@@ -542,7 +542,7 @@
/* Update callback data */
ns_new.writer_target = nw->writer_target;
nlmsg_set_callback(&ns_new);
- ns_new.arg_uint = nw->arg_uint;
+ ns_new.arg = nw->arg;
/* Copy last (unfinished) header to the new storage */
int last_len = nw->offset - completed_len;

File Metadata

Mime Type
text/plain
Expires
Sat, May 2, 10:11 AM (14 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32614102
Default Alt Text
D39557.id120263.diff (5 KB)

Event Timeline