diff --git a/net/netlink/netlink_conn.c b/net/netlink/netlink_conn.c index 7b8cd369c9..c46a103363 100644 --- a/net/netlink/netlink_conn.c +++ b/net/netlink/netlink_conn.c @@ -137,10 +137,21 @@ static void netlink_notify_waiters(FAR struct netlink_conn_s *conn) { if (conn->waiter[i] > 0) { - ret = nxsig_kill(conn->waiter[i], CONFIG_NETLINK_SIGNAL); +#ifdef CONFIG_CAN_PASS_STRUCTS + union sigval value; + + /* Send the CONFIG_NETLINK_SIGNAL signal to the waiter. */ + + value.sival_ptr = conn; + ret = nxsig_queue((int)conn->waiter[i], + (int)CONFIG_NETLINK_SIGNAL, value); +#else + ret = nxsig_queue((int)conn->waiter[i], + (int)CONFIG_NETLINK_SIGNAL, conn); +#endif if (ret < 0) - { - nerr("ERROR: nxsig_kill() failed: %d\n", ret); + { + nerr("ERROR: nxsig_queue() failed: %d\n", ret); UNUSED(ret); }