From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f65.google.com (mail-ot1-f65.google.com [209.85.210.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0AD7314A6B for ; Fri, 10 Apr 2026 15:11:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.65 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775833893; cv=none; b=mta90a97+BS7HnUdWLhO8nXszT6qyHOg32c9u6ZDPw8bjjZh8uXUGWHND+UQaIQscWuzTt/g0nNKiBiwmfHNeHWpCEn0aN/qgTsYHWFZjZQlRpdTKyrY2vpupyuMTy/ZhZ+Weyhdso9iAL1KRHSO4snXr0//aw2tf7bZKPMwV/o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775833893; c=relaxed/simple; bh=xjJORM7tfy7vWxsh2geZIlFRt9OGr4V1D2nhCg5EtZo=; h=From:Date:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=k/Rmvqu1Fe8oBsAuinkawWZravgWpmiinrRvhQB+MZIg0joT33/p+VEBQ0scjJHiwma3de6rqPxNoT+lYkNcOJ2dUu61fn3xE0iQOv5nXybwycV24qNz8NARM1LaKI5N9dHXLmIvsC+zF1cPL7xHFy+45FjKGyDc+Llq+ILyTV0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dPdqteGM; arc=none smtp.client-ip=209.85.210.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dPdqteGM" Received: by mail-ot1-f65.google.com with SMTP id 46e09a7af769-7dbba5076c8so1072991a34.0 for ; Fri, 10 Apr 2026 08:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775833891; x=1776438691; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=zvG0lUmWvJDVV9hH9ZMs4QcX1z2+NpKGjl8rKX6kmfA=; b=dPdqteGMXfG9ncp72tu6tdueyp/AzdW32IBzu6cumBfqWtkJtTdQqEgnjTAVuex0S+ QuFNDU9ssuG/62+F8yM3RQ6kkXWfGRSMwVysrJ0LxqxOyOFCwvoCt86l9f+e86cSe8JY 050LQYdBO5WkXT3AGlpY3DwrBz9vayRg70SAFUcg4cO0nIHwTXWpGsa0K3oX0eGEILnK L3qIRGC23ocvMPhxcT2kWbjSRwoDKlbL31bwVVZRVCfjQgN3PgKvK9i5RTbgV4sw0C4E q7tHilimkIdtE1jgeb8CqgoEpUkD2xXF5rPGFaF5PMQI6BJ0VIRZXAQ6PuEu4rvFH7j8 JUiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775833891; x=1776438691; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zvG0lUmWvJDVV9hH9ZMs4QcX1z2+NpKGjl8rKX6kmfA=; b=oBNhpe6pkh049eJLQNOQGuV/6kF6+xMWLiQuSxN+kRJP/jFPd63f5bfQbeeBM6g3j6 S+OXU8p7wpqs2hPAKlVmg4RjsZF8Tisxq57s1bSW7oWoTOLFMMhA+YFbAyk4/rAmnQcc IiYXpny1Au9XApEwQ0BzR1+S1DNdR9yFH3dA2+/b7VNVFBGlwdKNwAjY1+jbx+DevYYo aQr3sIn45NDua2Vetz/tjhoIwoL2nctryoYZ34cURRnDhKBSa0FJbGWHnjF7YZ0ovXIC XXgJP6iSLZTX/R849L8A7qaDeo1uJCSpTAbQ43rndaxF8tDxyjK5GsNkgJJD55ub34nY V/uw== X-Forwarded-Encrypted: i=1; AJvYcCV+TDdj4SMkhblH7q2hfCY9wk/nG0SqIGHpsbm8RK7Di/Wf79Qkoak92Trc9t4rTnTNc4yYTQF5UqEbixk=@vger.kernel.org X-Gm-Message-State: AOJu0YztFyoT0W9B6B7Dky5PHueIEe+PzKOQmGDlCsCLm64dGyFZaJAD CszquH/Nq2GBMizBY/c1tuZkfUsC4grQfmujMvXTrBOwO0TN+nZnbA0v X-Gm-Gg: AeBDievFJ6Mkq9dYrwVBNE7Kn89UN3mqKPX8Rksm4oX2uWwpJFmCO+08MNDxNjKPs2E 8LRjX8Fiq12e+tWsjkLJxiUqd6tI2RzqEBbdcffrQf1Og6e+45Zs8ngheXJ5aa/700RFKxpWsNn eTbr8XMiaeJY1g1mdktaSHL+Cw+Yh3q0CXvhE6ocjWLM3QdOGwCEiqjDAxVD25vs9Kqvp+qO9Rp tjcqmdX2bU44hDqTx3Ife2HYuPDKFnUGBFuVwbV3DSW6E6SZzjMG4WCkPFVLfzsfhQUf/xzpsWI THqJd7mCh8LCJ302xU3i6LpikW5Djs5ibXiv8AYCBzZSAKJQJKS2Wqt+aOaKbql8EJKFMUGpHUs uw8G89R3qylkvo+aPUbP03ZT+avzKzKu1/wWTW7pfueHuCUpdmX/Pyb8riHOyUYFd910y3wlPXU Q0/oDo704ZccMj7IY3 X-Received: by 2002:a05:6830:488e:b0:7d7:fb0f:3e56 with SMTP id 46e09a7af769-7dc27f74436mr1889260a34.26.1775833890725; Fri, 10 Apr 2026 08:11:30 -0700 (PDT) Received: from localhost ([2a03:2880:12ff:4::]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7dc323b3366sm472507a34.9.2026.04.10.08.11.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2026 08:11:30 -0700 (PDT) From: Stanislav Fomichev X-Google-Original-From: Stanislav Fomichev Date: Fri, 10 Apr 2026 08:11:29 -0700 To: Breno Leitao Cc: Stanislav Fomichev , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Kuniyuki Iwashima , Willem de Bruijn , metze@samba.org, axboe@kernel.dk, Stanislav Fomichev , io-uring@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org, Linus Torvalds , linux-kernel@vger.kernel.org, kernel-team@meta.com Subject: Re: [PATCH net-next v3 0/4] net: move .getsockopt away from __user buffers Message-ID: References: <20260408-getsockopt-v3-0-061bb9cb355d@debian.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: On 04/10, Breno Leitao wrote: > Hello Stanislav, > > On Wed, Apr 08, 2026 at 10:02:36AM -0700, Stanislav Fomichev wrote: > > On 04/08, Breno Leitao wrote: > > > > LGTM! Not sure what's your plan for the selftest? You wanna keep it > > outside or maybe repost v4 with it? > > I'd be glad to include a selftest. I've already developed one covering both > protocols in this series and can respin with it if you'd like. > > Test available at: > https://github.com/leitao/linux/commit/2d9311947061f1baa43858f597dd6c54d7ccc5d2 > > > Acked-by: Stanislav Fomichev > > Thanks for the review and guidance. Yes, yes, I did see the test, so let's add it? I'm thinking that we should already have a lot of coverage from packetdrill tests, but things like you convert (packet/can) are probably less covered. > > I'm also not sure your unconditional 'copy-optlen-back' will work for every > > proto, but I think we can put something into sockopt_t to make it avoid > > the copy if needed in the future. > > Good point. I'd prefer not to over-engineer this now, but keep it > straightforward to add later if needed. This could be easily achieved with > something like: > > typedef struct sockopt { > struct iov_iter iter_in; > struct iov_iter iter_out; > int optlen; > + bool optlen_dirty; /* set by callback when optlen should be written back */ > } sockopt_t; > > Wrapper becomes: > > if (opt.optlen_dirty && > copy_to_sockptr(optlen, &opt.optlen, sizeof(int))) > return -EFAULT; > > and the protocol callback would need to set > > opt->optlen_dirty = true; > > I don't think this is needed yet, and if we do need it, it would be better > to review and commit them together, making the rationale clearer for > future developers/LLM agents. > > What do you think? Agreed, I was thinking along the same lines. We can add it when/if needed. Since you wrap everything in sockopt_t it should be really easy to extend later.