Do not grab the NET_LOCK() when polling on unix domain sockets. This was the reason for the "X freeze" reported by pirofti@.
ok? Index: kern/sys_socket.c =================================================================== RCS file: /cvs/src/sys/kern/sys_socket.c,v retrieving revision 1.29 diff -u -p -r1.29 sys_socket.c --- kern/sys_socket.c 14 Feb 2017 09:46:21 -0000 1.29 +++ kern/sys_socket.c 21 Feb 2017 11:00:16 -0000 @@ -142,7 +142,7 @@ soo_poll(struct file *fp, int events, st int revents = 0; int s; - NET_LOCK(s); + s = solock(so); if (events & (POLLIN | POLLRDNORM)) { if (soreadable(so)) revents |= events & (POLLIN | POLLRDNORM); @@ -168,7 +168,7 @@ soo_poll(struct file *fp, int events, st so->so_snd.sb_flagsintr |= SB_SEL; } } - NET_UNLOCK(s); + sounlock(s); return (revents); }