summaryrefslogtreecommitdiff
path: root/drivers/net/xen-netback/interface.c
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2022-09-28 18:51:27 -0700
committerJakub Kicinski <kuba@kernel.org>2022-09-28 18:51:28 -0700
commit578b054684e6ad46f6089b726c05054fc5e3cd74 (patch)
treeb14a20279c36ca9fac082210cf5419e057075337 /drivers/net/xen-netback/interface.c
parent929a6cdfaeac9de6a1004eb18999e1439527cfb4 (diff)
parente7d2b510165fff6bedc9cca88c071ad846850c74 (diff)
downloadlinux-578b054684e6ad46f6089b726c05054fc5e3cd74.tar.gz
linux-578b054684e6ad46f6089b726c05054fc5e3cd74.tar.bz2
linux-578b054684e6ad46f6089b726c05054fc5e3cd74.zip
Merge branch 'shrink-struct-ubuf_info'
Pavel Begunkov says: ==================== shrink struct ubuf_info struct ubuf_info is large but not all fields are needed for all cases. We have limited space in io_uring for it and large ubuf_info prevents some struct embedding, even though we use only a subset of the fields. It's also not very clean trying to use this typeless extra space. Shrink struct ubuf_info to only necessary fields used in generic paths, namely ->callback, ->refcnt and ->flags, which take only 16 bytes. And make MSG_ZEROCOPY and some other users to embed it into a larger struct ubuf_info_msgzc mimicking the former ubuf_info. Note, xen/vhost may also have some cleaning on top by creating new structs containing ubuf_info but with proper types. ==================== Link: https://lore.kernel.org/r/cover.1663892211.git.asml.silence@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
-rw-r--r--drivers/net/xen-netback/interface.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c
index fb32ae82d9b0..e579ecd40b74 100644
--- a/drivers/net/xen-netback/interface.c
+++ b/drivers/net/xen-netback/interface.c
@@ -591,8 +591,8 @@ int xenvif_init_queue(struct xenvif_queue *queue)
}
for (i = 0; i < MAX_PENDING_REQS; i++) {
- queue->pending_tx_info[i].callback_struct = (struct ubuf_info)
- { .callback = xenvif_zerocopy_callback,
+ queue->pending_tx_info[i].callback_struct = (struct ubuf_info_msgzc)
+ { { .callback = xenvif_zerocopy_callback },
{ { .ctx = NULL,
.desc = i } } };
queue->grant_tx_handle[i] = NETBACK_INVALID_HANDLE;