From: Kees Cook <keescook@chromium.org>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Paolo Abeni <pabeni@redhat.com>, netdev <netdev@vger.kernel.org>,
Alexander Duyck <alexanderduyck@fb.com>,
Coco Li <lixiaoyan@google.com>,
Eric Dumazet <edumazet@google.com>,
Tariq Toukan <tariqt@nvidia.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Leon Romanovsky <leon@kernel.org>
Subject: Re: [PATCH v5 net-next 13/13] mlx5: support BIG TCP packets
Date: Wed, 11 May 2022 10:27:52 -0700 [thread overview]
Message-ID: <202205111016.8CE00EED8C@keescook> (raw)
In-Reply-To: <20220511092648.145be621@kernel.org>
On Wed, May 11, 2022 at 09:26:48AM -0700, Jakub Kicinski wrote:
> On Tue, 10 May 2022 19:55:16 -0700 Kees Cook wrote:
> > On Mon, May 09, 2022 at 06:38:53PM -0700, Jakub Kicinski wrote:
> > > So we're leaving the warning for Kees to deal with?
> > >
> > > Kees is there some form of "I know what I'm doing" cast
> > > that you could sneak us under the table?
> >
> > Okay, I've sent this[1] now. If that looks okay to you, I figure you'll
> > land it via netdev for the coming merge window?
>
> I was about to say "great!" but perhaps given we're adding an unsafe_
> flavor of something a "it is what it is" would be a more appropriate
> reaction.
Heh, well, I think it's just calling a spade a spade: plain memcpy is
already unsafe. The goal is for the kernel's (fortified) memcpy to be
"provably" safe. :) But yeah, I get what you mean. I'm sad that I don't
yet have a workable way to deal with this code pattern, but I'm getting
close, I think. My random notes currently are:
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
index 2dc48406cd08..595d0db4e97a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
@@ -386,6 +386,14 @@ mlx5e_sq_xmit_wqe(struct mlx5e_txqsq *sq, struct sk_buff *skb,
stats->added_vlan_packets++;
} else {
eseg->inline_hdr.sz |= cpu_to_be16(attr->ihs);
+/* interface could take:
+ fas: wqe
+ dst: eth.inline_hdr.start
+ src: skb->data
+ bytes: attr->ihs
+ elements member: data
+ elements_count value: wqe_attr->ds_cnt_inl
+*/
memcpy(eseg->inline_hdr.start, skb->data, attr->ihs);
}
dseg += wqe_attr->ds_cnt_inl;
There's a similar case with how netlink constructs things (i.e.
performing a memcpy across some of the trailing header members and then
into the flex array) that may share this code pattern, and at least one
patch to mlx5 I'd sent before could be refactored back into this to
unsplit the memcpy there.
Anyway, I'll continue to chip away at it.
--
Kees Cook
prev parent reply other threads:[~2022-05-11 17:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-09 22:21 [PATCH v5 net-next 00/13] tcp: BIG TCP implementation Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 01/13] net: add IFLA_TSO_{MAX_SIZE|SEGS} attributes Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 02/13] net: allow gso_max_size to exceed 65536 Eric Dumazet
2022-05-10 1:35 ` kernel test robot
2022-05-10 2:09 ` Eric Dumazet
2022-05-10 2:20 ` Eric Dumazet
2022-05-10 3:08 ` kernel test robot
2022-05-09 22:21 ` [PATCH v5 net-next 03/13] net: limit GSO_MAX_SIZE to 524280 bytes Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 04/13] tcp_cubic: make hystart_ack_delay() aware of BIG TCP Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 05/13] ipv6: add struct hop_jumbo_hdr definition Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 06/13] ipv6/gso: remove temporary HBH/jumbo header Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 07/13] ipv6/gro: insert " Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 08/13] net: allow gro_max_size to exceed 65536 Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 09/13] ipv6: Add hop-by-hop header to jumbograms in ip6_output Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 10/13] net: loopback: enable BIG TCP packets Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 11/13] veth: " Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 12/13] mlx4: support " Eric Dumazet
2022-05-09 22:21 ` [PATCH v5 net-next 13/13] mlx5: " Eric Dumazet
2022-05-09 22:30 ` Eric Dumazet
2022-05-10 1:38 ` Jakub Kicinski
2022-05-10 2:00 ` Eric Dumazet
2022-05-10 15:49 ` Kees Cook
2022-05-11 2:55 ` Kees Cook
2022-05-11 16:26 ` Jakub Kicinski
2022-05-11 17:27 ` Kees Cook [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202205111016.8CE00EED8C@keescook \
--to=keescook@chromium.org \
--cc=alexanderduyck@fb.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=eric.dumazet@gmail.com \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=lixiaoyan@google.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).