Re: remove kernel_setsockopt and kernel_getsockopt
From: Joe Perches
Date: Wed May 13 2020 - 13:39:10 EST
On Wed, 2020-05-13 at 08:26 +0200, Christoph Hellwig wrote:
> this series removes the kernel_setsockopt and kernel_getsockopt
> functions, and instead switches their users to small functions that
> implement setting (or in one case getting) a sockopt directly using
> a normal kernel function call with type safety and all the other
> benefits of not having a function call.
>
> In some cases these functions seem pretty heavy handed as they do
> a lock_sock even for just setting a single variable, but this mirrors
> the real setsockopt implementation - counter to that a few kernel
> drivers just set the fields directly already.
>
> Nevertheless the diffstat looks quite promising:
>
> 42 files changed, 721 insertions(+), 799 deletions(-)
trivia:
It might be useful to show overall object size change.
More EXPORT_SYMBOL uses increase object size a little.
And not sure it matters much except it reduces overall object
size, but these patches remove (unnecessary) logging on error
and that could be mentioned in the cover letter too.
e.g.:
- ret = kernel_setsockopt(queue->sock, SOL_SOCKET, SO_LINGER,
- (char *)&sol, sizeof(sol));
- if (ret) {
- dev_err(nctrl->device,
- "failed to set SO_LINGER sock opt %d\n", ret);
- goto err_sock;
- }
+ sock_set_linger(queue->sock->sk, true, 0);