diff options
author | Christoph Hellwig <hch@lst.de> | 2018-01-09 18:07:34 +0300 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2018-05-26 10:16:44 +0300 |
commit | 3cafb37633a1230011c5415e6f394b05260d21ad (patch) | |
tree | 4bb789ef23b3e6e8a9ed3295a1a1ddb674dd250d /include/net | |
parent | 1962da0d2198a00a056a2915fbc6ec684c3bef0a (diff) | |
download | linux-3cafb37633a1230011c5415e6f394b05260d21ad.tar.xz |
net: refactor socket_poll
Factor out two busy poll related helpers for late reuse, and remove
a command that isn't very helpful, especially with the __poll_t
annotations in place.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/busy_poll.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/net/busy_poll.h b/include/net/busy_poll.h index 71c72a939bf8..c5187438af38 100644 --- a/include/net/busy_poll.h +++ b/include/net/busy_poll.h @@ -121,6 +121,21 @@ static inline void sk_busy_loop(struct sock *sk, int nonblock) #endif } +static inline void sock_poll_busy_loop(struct socket *sock, __poll_t events) +{ + if (sk_can_busy_loop(sock->sk) && + events && (events & POLL_BUSY_LOOP)) { + /* once, only if requested by syscall */ + sk_busy_loop(sock->sk, 1); + } +} + +/* if this socket can poll_ll, tell the system call */ +static inline __poll_t sock_poll_busy_flag(struct socket *sock) +{ + return sk_can_busy_loop(sock->sk) ? POLL_BUSY_LOOP : 0; +} + /* used in the NIC receive handler to mark the skb */ static inline void skb_mark_napi_id(struct sk_buff *skb, struct napi_struct *napi) |