From: David Laight <David.Laight@ACULAB.COM>
To: 'Christoph Hellwig' <hch@lst.de>,
Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Cc: Vlad Yasevich <vyasevich@gmail.com>,
Neil Horman <nhorman@tuxdriver.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
"linux-sctp@vger.kernel.org" <linux-sctp@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: RE: do a single memdup_user in sctp_setsockopt
Date: Mon, 25 May 2020 19:37:49 +0000 [thread overview]
Message-ID: <38061a608f294766846e23170bdf0177@AcuMS.aculab.com> (raw)
In-Reply-To: <20200523071929.GA10466@lst.de>
From: 'Christoph Hellwig'
> Sent: 23 May 2020 08:19
...
> Alternatively I'll also happily only do a partial conversion for what
> I need for the kernel_setsockopt removal and let you and Dave decided
> what you guys prefer for the rest.
I presume the justification for removing kernel_[sg]etsockopt()
is that you want to get rid of set_fs(KERNEL_DS).
(Which I believe is only a flag to access_ok()?)
In any case I'm not against that at all.
To do that you also need to solve the problem of the BPF 'hook'
in setsockopt() that can also need to pass a kernel buffer through.
I don't see a rush to remove kernel_[sg]etsockopt() until you
have a solution for the BPF hook.
Especially since, until set_fs() is removed, any driver can
(and probably will) just implement their own version.
I think you may end up with the protocols being able to export
either [sg]etsockopt() functions or kernel_[sg]setsockopt()
functions and some paths erroring if the required function is absent.
But even that isn't trivial given the broken nature of one
sctp option - where the returned length has to be invalid!
I'm going to post a V3 of my big patch - I spotted an error.
I'll include a different (smaller) patch in 0/1 that generates
exactly the same object code but is easier to review.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
next prev parent reply other threads:[~2020-05-25 19:37 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-21 17:46 do a single memdup_user in sctp_setsockopt Christoph Hellwig
2020-05-21 17:46 ` [PATCH 01/49] sctp: copy the optval from user space " Christoph Hellwig
2020-05-21 17:46 ` [PATCH 02/49] sctp: pass a kernel pointer to sctp_setsockopt_bindx Christoph Hellwig
2020-05-21 17:46 ` [PATCH 03/49] sctp: pass a kernel pointer to __sctp_setsockopt_connectx Christoph Hellwig
2020-05-21 17:46 ` [PATCH 04/49] sctp: pass a kernel pointer to sctp_setsockopt_disable_fragments Christoph Hellwig
2020-05-21 17:46 ` [PATCH 05/49] sctp: pass a kernel pointer to sctp_setsockopt_events Christoph Hellwig
2020-05-21 17:46 ` [PATCH 06/49] sctp: pass a kernel pointer to sctp_setsockopt_autoclose Christoph Hellwig
2020-05-21 17:46 ` [PATCH 07/49] sctp: pass a kernel pointer to sctp_setsockopt_peer_addr_params Christoph Hellwig
2020-05-21 17:46 ` [PATCH 08/49] sctp: pass a kernel pointer to sctp_setsockopt_delayed_ack Christoph Hellwig
2020-05-21 17:46 ` [PATCH 09/49] sctp: pass a kernel pointer to sctp_setsockopt_partial_delivery_point Christoph Hellwig
2020-05-21 17:46 ` [PATCH 10/49] sctp: pass a kernel pointer to sctp_setsockopt_initmsg Christoph Hellwig
2020-05-21 17:46 ` [PATCH 11/49] sctp: pass a kernel pointer to sctp_setsockopt_default_send_param Christoph Hellwig
2020-05-21 17:46 ` [PATCH 12/49] sctp: pass a kernel pointer to sctp_setsockopt_default_sndinfo Christoph Hellwig
2020-05-21 17:46 ` [PATCH 13/49] sctp: pass a kernel pointer to sctp_setsockopt_primary_addr Christoph Hellwig
2020-05-21 17:46 ` [PATCH 14/49] sctp: pass a kernel pointer to sctp_setsockopt_peer_primary_addr Christoph Hellwig
2020-05-21 17:46 ` [PATCH 15/49] sctp: pass a kernel pointer to sctp_setsockopt_nodelay Christoph Hellwig
2020-05-21 17:46 ` [PATCH 16/49] sctp: pass a kernel pointer to sctp_setsockopt_rtoinfo Christoph Hellwig
2020-05-21 17:46 ` [PATCH 17/49] sctp: pass a kernel pointer to sctp_setsockopt_associnfo Christoph Hellwig
2020-05-21 17:46 ` [PATCH 18/49] sctp: pass a kernel pointer to sctp_setsockopt_mappedv4 Christoph Hellwig
2020-05-21 17:46 ` [PATCH 19/49] sctp: pass a kernel pointer to sctp_setsockopt_maxseg Christoph Hellwig
2020-05-21 17:46 ` [PATCH 20/49] sctp: pass a kernel pointer to sctp_setsockopt_adaptation_layer Christoph Hellwig
2020-05-21 17:46 ` [PATCH 21/49] sctp: pass a kernel pointer to sctp_setsockopt_context Christoph Hellwig
2020-05-21 17:46 ` [PATCH 22/49] sctp: pass a kernel pointer to sctp_setsockopt_fragment_interleave Christoph Hellwig
2020-05-21 17:46 ` [PATCH 23/49] sctp: pass a kernel pointer to sctp_setsockopt_maxburst Christoph Hellwig
2020-05-21 17:46 ` [PATCH 24/49] sctp: pass a kernel pointer to sctp_setsockopt_auth_chunk Christoph Hellwig
2020-05-21 17:47 ` [PATCH 25/49] sctp: pass a kernel pointer to sctp_setsockopt_hmac_ident Christoph Hellwig
2020-05-21 17:47 ` [PATCH 26/49] sctp: pass a kernel pointer to sctp_setsockopt_auth_key Christoph Hellwig
2020-05-21 17:47 ` [PATCH 27/49] sctp: pass a kernel pointer to sctp_setsockopt_active_key Christoph Hellwig
2020-05-21 17:47 ` [PATCH 28/49] sctp: pass a kernel pointer to sctp_setsockopt_del_key Christoph Hellwig
2020-05-21 17:47 ` [PATCH 29/49] sctp: pass a kernel pointer to sctp_setsockopt_deactivate_key Christoph Hellwig
2020-05-21 17:47 ` [PATCH 30/49] sctp: pass a kernel pointer to sctp_setsockopt_auto_asconf Christoph Hellwig
2020-05-21 17:47 ` [PATCH 31/49] sctp: pass a kernel pointer to sctp_setsockopt_paddr_thresholds Christoph Hellwig
2020-05-21 17:47 ` [PATCH 32/49] sctp: pass a kernel pointer to sctp_setsockopt_recvrcvinfo Christoph Hellwig
2020-05-21 17:47 ` [PATCH 33/49] sctp: pass a kernel pointer to sctp_setsockopt_recvnxtinfo Christoph Hellwig
2020-05-21 17:47 ` [PATCH 34/49] sctp: pass a kernel pointer to sctp_setsockopt_pr_supported Christoph Hellwig
2020-05-21 17:47 ` [PATCH 35/49] sctp: pass a kernel pointer to sctp_setsockopt_default_prinfo Christoph Hellwig
2020-05-21 17:47 ` [PATCH 36/49] sctp: pass a kernel pointer to sctp_setsockopt_reconfig_supported Christoph Hellwig
2020-05-21 17:47 ` [PATCH 37/49] sctp: pass a kernel pointer to sctp_setsockopt_enable_strreset Christoph Hellwig
2020-05-21 17:47 ` [PATCH 38/49] sctp: pass a kernel pointer to sctp_setsockopt_reset_streams Christoph Hellwig
2020-05-21 17:47 ` [PATCH 39/49] sctp: pass a kernel pointer to sctp_setsockopt_reset_assoc Christoph Hellwig
2020-05-21 17:47 ` [PATCH 40/49] sctp: pass a kernel pointer to sctp_setsockopt_add_streams Christoph Hellwig
2020-05-21 17:47 ` [PATCH 41/49] sctp: pass a kernel pointer to sctp_setsockopt_scheduler Christoph Hellwig
2020-05-21 17:47 ` [PATCH 42/49] sctp: pass a kernel pointer to sctp_setsockopt_scheduler_value Christoph Hellwig
2020-05-21 17:47 ` [PATCH 43/49] sctp: pass a kernel pointer to sctp_setsockopt_interleaving_supported Christoph Hellwig
2020-05-21 17:47 ` [PATCH 44/49] sctp: pass a kernel pointer to sctp_setsockopt_reuse_port Christoph Hellwig
2020-05-21 17:47 ` [PATCH 45/49] sctp: pass a kernel pointer to sctp_setsockopt_event Christoph Hellwig
2020-05-21 17:47 ` [PATCH 46/49] " Christoph Hellwig
2020-05-21 17:47 ` [PATCH 47/49] sctp: pass a kernel pointer to sctp_setsockopt_auth_supported Christoph Hellwig
2020-05-21 17:47 ` [PATCH 48/49] sctp: pass a kernel pointer to sctp_setsockopt_ecn_supported Christoph Hellwig
2020-05-21 17:47 ` [PATCH 49/49] sctp: pass a kernel pointer to sctp_setsockopt_pf_expose Christoph Hellwig
2020-05-22 8:02 ` do a single memdup_user in sctp_setsockopt David Laight
2020-05-22 14:36 ` Marcelo Ricardo Leitner
2020-05-22 15:52 ` David Laight
2020-05-23 7:19 ` 'Christoph Hellwig'
2020-05-25 19:37 ` David Laight [this message]
2020-05-25 20:59 ` Marcelo Ricardo Leitner
2020-05-25 21:18 ` Marcelo Ricardo Leitner
2020-05-22 23:11 ` David Miller
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=38061a608f294766846e23170bdf0177@AcuMS.aculab.com \
--to=david.laight@aculab.com \
--cc=davem@davemloft.net \
--cc=hch@lst.de \
--cc=kuba@kernel.org \
--cc=linux-sctp@vger.kernel.org \
--cc=marcelo.leitner@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=vyasevich@gmail.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).