Commit 8c793822 authored by Jonathan Lemon's avatar Jonathan Lemon Committed by Jakub Kicinski

skbuff: rename sock_zerocopy_* to msg_zerocopy_*

At Willem's suggestion, rename the sock_zerocopy_* functions
so that they match the MSG_ZEROCOPY flag, which makes it clear
they are specific to this zerocopy implementation.
Signed-off-by: default avatarJonathan Lemon <jonathan.lemon@gmail.com>
Acked-by: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 70c43167
...@@ -488,14 +488,14 @@ struct ubuf_info { ...@@ -488,14 +488,14 @@ struct ubuf_info {
int mm_account_pinned_pages(struct mmpin *mmp, size_t size); int mm_account_pinned_pages(struct mmpin *mmp, size_t size);
void mm_unaccount_pinned_pages(struct mmpin *mmp); void mm_unaccount_pinned_pages(struct mmpin *mmp);
struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size); struct ubuf_info *msg_zerocopy_alloc(struct sock *sk, size_t size);
struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size, struct ubuf_info *msg_zerocopy_realloc(struct sock *sk, size_t size,
struct ubuf_info *uarg); struct ubuf_info *uarg);
void sock_zerocopy_put_abort(struct ubuf_info *uarg, bool have_uref); void msg_zerocopy_put_abort(struct ubuf_info *uarg, bool have_uref);
void sock_zerocopy_callback(struct sk_buff *skb, struct ubuf_info *uarg, void msg_zerocopy_callback(struct sk_buff *skb, struct ubuf_info *uarg,
bool success); bool success);
int skb_zerocopy_iter_dgram(struct sk_buff *skb, struct msghdr *msg, int len); int skb_zerocopy_iter_dgram(struct sk_buff *skb, struct msghdr *msg, int len);
int skb_zerocopy_iter_stream(struct sock *sk, struct sk_buff *skb, int skb_zerocopy_iter_stream(struct sock *sk, struct sk_buff *skb,
...@@ -1481,8 +1481,8 @@ static inline void skb_zcopy_put(struct ubuf_info *uarg) ...@@ -1481,8 +1481,8 @@ static inline void skb_zcopy_put(struct ubuf_info *uarg)
static inline void skb_zcopy_put_abort(struct ubuf_info *uarg, bool have_uref) static inline void skb_zcopy_put_abort(struct ubuf_info *uarg, bool have_uref)
{ {
if (uarg) { if (uarg) {
if (uarg->callback == sock_zerocopy_callback) if (uarg->callback == msg_zerocopy_callback)
sock_zerocopy_put_abort(uarg, have_uref); msg_zerocopy_put_abort(uarg, have_uref);
else if (have_uref) else if (have_uref)
skb_zcopy_put(uarg); skb_zcopy_put(uarg);
} }
...@@ -2776,7 +2776,7 @@ static inline int skb_orphan_frags(struct sk_buff *skb, gfp_t gfp_mask) ...@@ -2776,7 +2776,7 @@ static inline int skb_orphan_frags(struct sk_buff *skb, gfp_t gfp_mask)
if (likely(!skb_zcopy(skb))) if (likely(!skb_zcopy(skb)))
return 0; return 0;
if (!skb_zcopy_is_nouarg(skb) && if (!skb_zcopy_is_nouarg(skb) &&
skb_uarg(skb)->callback == sock_zerocopy_callback) skb_uarg(skb)->callback == msg_zerocopy_callback)
return 0; return 0;
return skb_copy_ubufs(skb, gfp_mask); return skb_copy_ubufs(skb, gfp_mask);
} }
......
...@@ -1094,7 +1094,7 @@ void mm_unaccount_pinned_pages(struct mmpin *mmp) ...@@ -1094,7 +1094,7 @@ void mm_unaccount_pinned_pages(struct mmpin *mmp)
} }
EXPORT_SYMBOL_GPL(mm_unaccount_pinned_pages); EXPORT_SYMBOL_GPL(mm_unaccount_pinned_pages);
struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size) struct ubuf_info *msg_zerocopy_alloc(struct sock *sk, size_t size)
{ {
struct ubuf_info *uarg; struct ubuf_info *uarg;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -1114,7 +1114,7 @@ struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size) ...@@ -1114,7 +1114,7 @@ struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size)
return NULL; return NULL;
} }
uarg->callback = sock_zerocopy_callback; uarg->callback = msg_zerocopy_callback;
uarg->id = ((u32)atomic_inc_return(&sk->sk_zckey)) - 1; uarg->id = ((u32)atomic_inc_return(&sk->sk_zckey)) - 1;
uarg->len = 1; uarg->len = 1;
uarg->bytelen = size; uarg->bytelen = size;
...@@ -1124,15 +1124,15 @@ struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size) ...@@ -1124,15 +1124,15 @@ struct ubuf_info *sock_zerocopy_alloc(struct sock *sk, size_t size)
return uarg; return uarg;
} }
EXPORT_SYMBOL_GPL(sock_zerocopy_alloc); EXPORT_SYMBOL_GPL(msg_zerocopy_alloc);
static inline struct sk_buff *skb_from_uarg(struct ubuf_info *uarg) static inline struct sk_buff *skb_from_uarg(struct ubuf_info *uarg)
{ {
return container_of((void *)uarg, struct sk_buff, cb); return container_of((void *)uarg, struct sk_buff, cb);
} }
struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size, struct ubuf_info *msg_zerocopy_realloc(struct sock *sk, size_t size,
struct ubuf_info *uarg) struct ubuf_info *uarg)
{ {
if (uarg) { if (uarg) {
const u32 byte_limit = 1 << 19; /* limit to a few TSO */ const u32 byte_limit = 1 << 19; /* limit to a few TSO */
...@@ -1171,9 +1171,9 @@ struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size, ...@@ -1171,9 +1171,9 @@ struct ubuf_info *sock_zerocopy_realloc(struct sock *sk, size_t size,
} }
new_alloc: new_alloc:
return sock_zerocopy_alloc(sk, size); return msg_zerocopy_alloc(sk, size);
} }
EXPORT_SYMBOL_GPL(sock_zerocopy_realloc); EXPORT_SYMBOL_GPL(msg_zerocopy_realloc);
static bool skb_zerocopy_notify_extend(struct sk_buff *skb, u32 lo, u16 len) static bool skb_zerocopy_notify_extend(struct sk_buff *skb, u32 lo, u16 len)
{ {
...@@ -1195,7 +1195,7 @@ static bool skb_zerocopy_notify_extend(struct sk_buff *skb, u32 lo, u16 len) ...@@ -1195,7 +1195,7 @@ static bool skb_zerocopy_notify_extend(struct sk_buff *skb, u32 lo, u16 len)
return true; return true;
} }
static void __sock_zerocopy_callback(struct ubuf_info *uarg) static void __msg_zerocopy_callback(struct ubuf_info *uarg)
{ {
struct sk_buff *tail, *skb = skb_from_uarg(uarg); struct sk_buff *tail, *skb = skb_from_uarg(uarg);
struct sock_exterr_skb *serr; struct sock_exterr_skb *serr;
...@@ -1243,17 +1243,17 @@ static void __sock_zerocopy_callback(struct ubuf_info *uarg) ...@@ -1243,17 +1243,17 @@ static void __sock_zerocopy_callback(struct ubuf_info *uarg)
sock_put(sk); sock_put(sk);
} }
void sock_zerocopy_callback(struct sk_buff *skb, struct ubuf_info *uarg, void msg_zerocopy_callback(struct sk_buff *skb, struct ubuf_info *uarg,
bool success) bool success)
{ {
uarg->zerocopy = uarg->zerocopy & success; uarg->zerocopy = uarg->zerocopy & success;
if (refcount_dec_and_test(&uarg->refcnt)) if (refcount_dec_and_test(&uarg->refcnt))
__sock_zerocopy_callback(uarg); __msg_zerocopy_callback(uarg);
} }
EXPORT_SYMBOL_GPL(sock_zerocopy_callback); EXPORT_SYMBOL_GPL(msg_zerocopy_callback);
void sock_zerocopy_put_abort(struct ubuf_info *uarg, bool have_uref) void msg_zerocopy_put_abort(struct ubuf_info *uarg, bool have_uref)
{ {
struct sock *sk = skb_from_uarg(uarg)->sk; struct sock *sk = skb_from_uarg(uarg)->sk;
...@@ -1261,9 +1261,9 @@ void sock_zerocopy_put_abort(struct ubuf_info *uarg, bool have_uref) ...@@ -1261,9 +1261,9 @@ void sock_zerocopy_put_abort(struct ubuf_info *uarg, bool have_uref)
uarg->len--; uarg->len--;
if (have_uref) if (have_uref)
sock_zerocopy_callback(NULL, uarg, true); msg_zerocopy_callback(NULL, uarg, true);
} }
EXPORT_SYMBOL_GPL(sock_zerocopy_put_abort); EXPORT_SYMBOL_GPL(msg_zerocopy_put_abort);
int skb_zerocopy_iter_dgram(struct sk_buff *skb, struct msghdr *msg, int len) int skb_zerocopy_iter_dgram(struct sk_buff *skb, struct msghdr *msg, int len)
{ {
......
...@@ -1018,7 +1018,7 @@ static int __ip_append_data(struct sock *sk, ...@@ -1018,7 +1018,7 @@ static int __ip_append_data(struct sock *sk,
csummode = CHECKSUM_PARTIAL; csummode = CHECKSUM_PARTIAL;
if (flags & MSG_ZEROCOPY && length && sock_flag(sk, SOCK_ZEROCOPY)) { if (flags & MSG_ZEROCOPY && length && sock_flag(sk, SOCK_ZEROCOPY)) {
uarg = sock_zerocopy_realloc(sk, length, skb_zcopy(skb)); uarg = msg_zerocopy_realloc(sk, length, skb_zcopy(skb));
if (!uarg) if (!uarg)
return -ENOBUFS; return -ENOBUFS;
extra_uref = !skb_zcopy(skb); /* only ref on new uarg */ extra_uref = !skb_zcopy(skb); /* only ref on new uarg */
......
...@@ -1217,7 +1217,7 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size) ...@@ -1217,7 +1217,7 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
if (flags & MSG_ZEROCOPY && size && sock_flag(sk, SOCK_ZEROCOPY)) { if (flags & MSG_ZEROCOPY && size && sock_flag(sk, SOCK_ZEROCOPY)) {
skb = tcp_write_queue_tail(sk); skb = tcp_write_queue_tail(sk);
uarg = sock_zerocopy_realloc(sk, size, skb_zcopy(skb)); uarg = msg_zerocopy_realloc(sk, size, skb_zcopy(skb));
if (!uarg) { if (!uarg) {
err = -ENOBUFS; err = -ENOBUFS;
goto out_err; goto out_err;
......
...@@ -1471,7 +1471,7 @@ static int __ip6_append_data(struct sock *sk, ...@@ -1471,7 +1471,7 @@ static int __ip6_append_data(struct sock *sk,
csummode = CHECKSUM_PARTIAL; csummode = CHECKSUM_PARTIAL;
if (flags & MSG_ZEROCOPY && length && sock_flag(sk, SOCK_ZEROCOPY)) { if (flags & MSG_ZEROCOPY && length && sock_flag(sk, SOCK_ZEROCOPY)) {
uarg = sock_zerocopy_realloc(sk, length, skb_zcopy(skb)); uarg = msg_zerocopy_realloc(sk, length, skb_zcopy(skb));
if (!uarg) if (!uarg)
return -ENOBUFS; return -ENOBUFS;
extra_uref = !skb_zcopy(skb); /* only ref on new uarg */ extra_uref = !skb_zcopy(skb); /* only ref on new uarg */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment