From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 4B7F130E0C0 for ; Wed, 3 Jun 2026 13:32:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780493535; cv=none; b=qagYilrkMC4nRSvDr5Z0huKsScQOffrHL1stpfLvs5dsccsxxLR14nwV9ITgjisnumSrDNZKMckLc7XIWOE4VACLv3iYWbKRjcZHuRoueB/7kLLwsHV/IxNH5wpMvJCGRkcgAMbiID0kTgdB/8RTVDzkAN4Cf4KRqSn5axXyof4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780493535; c=relaxed/simple; bh=0XaLpw8wCWCVqO3HuR7IIwW8qzeoCTixBtIKErorbuM=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=TGxaMhtJUhvu815mzVElnwjNeIZLOJ9NBQzZt+iftpFslCdiLsOQ1hWZnjyAcHNAG4pNi8OIaCV0OfQuLW12RvHQt5PiVEnXylMZaHVRGdUD/HhjsLXM3QFlZ4K28eEU5CkY7i9WVY6gkNHPJZ8sKt8XNCSmfdInsJjRMlmDx0M= 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=K5Pkbg1v; arc=none smtp.client-ip=209.85.128.50 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="K5Pkbg1v" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4906869f0cbso123654725e9.1 for ; Wed, 03 Jun 2026 06:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780493533; x=1781098333; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=4TVbfpbXuT0Cc8+UmhjB+WjY3nKUaTcDDEiy2PFK/eY=; b=K5Pkbg1veMtiMn3iRnrbfarln4Qey7dy+cZiKbAKWdXixIno80/sRg1GRpSETsRJ9a UJZuJ0WcOX0IkHnFZHIxgVymDrTEYMAHqsqWio172F2jHdiOni0jzQoz6GlJeGLyU858 OeAmEhtPgDSfr2wnSqkM+l/i6qP5GUlMEhtisBEjCtyk+a2qrjamrLHjw7k/yJsQsnaK 96lUAQPcLtBNkgp99kccMvzvavbrvgtUdFPNvwXGfHwD76Z9W6zCOVLDG6M/CXpmiZ6D bYdWZM5gP1uzA3H6ILWm1aJeSzN/FPUcew6RcW/PV3hc66srs7qevDprvZWIA3wd/+ey cO/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780493533; x=1781098333; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4TVbfpbXuT0Cc8+UmhjB+WjY3nKUaTcDDEiy2PFK/eY=; b=DLuxRcImJCy7I2qQ74gaIEkrY3TOutMWVSORUM6wII4YARJkbOc8a5rlE7p08kx0hE kQ8Ec0+lkUHtgNH1MHD1sPrxx/oK1k5lk2JDtHbLk3lLSoCCPdkAcOwDi7Xulw1TVw8Q JtK1YV3Y+R2R53MElK1zqJ73FKA3vaoIVX8Ew5CyBbGp4dmrKWvRxXCpsGzPJ2Lic3Lm hgCYg8QwAFQjqgkuvfdZKPhjcjdupCVOkRJe7pWXju6HdKmA7r1QUoBC1uwvNWsSqz3U UxPgbzeoIQpKeLgFTk93TD6F0TFX49UZtfijPpIjCu7gViJSKr8XvYcbRtB97ss0b5XJ QIeA== X-Forwarded-Encrypted: i=1; AFNElJ9cmQHOiV+kh/e18poldTJjBT1VS471pPrLZjsmS7SghYdZhzex41c4di3u8xivoaSTfPOK/w5HRDFcOso=@vger.kernel.org X-Gm-Message-State: AOJu0YzsuOU7ALXibtHFFCD/kEuzrg2745en0P2p48GM1jW2MjULXKZ1 zjWcWtdjFs0WgjmqOiqRQv7OSje5zN91swRPlucTRcy+edj0mfl03+tN/U47uTXw X-Gm-Gg: Acq92OEX+1zRyjH8g0NIN3ZuOpUH+P8dMjYDBgdNabTdlndhPntuZTHdUigIMYEbJFb JiKU+6PhCVOmNXh1OzW3wzfI7SVGNzmGNVqqTysMZtRCpO6L9rdxAWuxnOb6b/pRxSbLMkiCAwU rvGiwTHCEuRqAf/0q2x0jLz0EhDrq64DD4M+c/I9prVeh4aXpsKQaosIOomtnxHnv1LGcUNbubk kuGm/Z9Kx6xtAy8yGoQjtQr2zuj4M0oqSZKIH677qxdo8yUPt4uYhDwv/9TV/PTwSnvYaRdEWsS iCQTLIfE6zR20dxOnptcsP3iwd5yxE6Ko+w5oeSKbWtLjnsC5QF9CcFDZ+bfVZbDegweSvKIax6 jNHTm3fVvfEpG0ODMPZ/EDvn5FRZhQt9dGrQaWpaUSsgc5XtbdyVofvqKVPuB60qDOIrQS0S80L pIN20TjfYTj3TwtU2hZ++pibQ8KqttCNTwZloRmbPpHNmutnc3EDqCbd3G9eGLmR/mqfp9zWSxA SF2iFNEy/Z+x9sbveGUGQ== X-Received: by 2002:a05:600c:c48e:b0:490:40f1:5314 with SMTP id 5b1f17b1804b1-490b5eb73aamr51371835e9.1.1780493532528; Wed, 03 Jun 2026 06:32:12 -0700 (PDT) Received: from ?IPV6:2a01:4b00:bd1f:f500:f867:fc8a:5174:5755? ([2a01:4b00:bd1f:f500:f867:fc8a:5174:5755]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f351d69sm12355413f8f.29.2026.06.03.06.32.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 03 Jun 2026 06:32:11 -0700 (PDT) Message-ID: <755aaa06-9f6f-4f49-a3ac-5cf7f3574393@gmail.com> Date: Wed, 3 Jun 2026 14:32:11 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 3/3] bpf: Restore sysctl new-value from 1 to 0 To: Dawei Feng , martin.lau@linux.dev Cc: emil@etsalapatis.com, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, eddyz87@gmail.com, memxor@gmail.com, song@kernel.org, yonghong.song@linux.dev, jolsa@kernel.org, kees@kernel.org, joel.granados@kernel.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, jianhao.xu@seu.edu.cn, stable@vger.kernel.org, Zilin Guan References: <20260603105317.944304-1-dawei.feng@seu.edu.cn> <20260603105317.944304-4-dawei.feng@seu.edu.cn> Content-Language: en-US From: Mykyta Yatsenko In-Reply-To: <20260603105317.944304-4-dawei.feng@seu.edu.cn> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 6/3/26 11:53 AM, Dawei Feng wrote: > Commit 4e63acdff864 ("bpf: Introduce bpf_sysctl_{get,set}_new_value > helpers") changed the success return value to 0, but failed to update the > corresponding check in __cgroup_bpf_run_filter_sysctl(). Since > bpf_prog_run_array_cg() now returns 0 on success, the legacy ret == 1 > condition is never satisfied. As a result, the modified value is ignored, > and bpf_sysctl_set_new_value() fails to replace the write buffer. > > Fix this by checking for a return value of 0 instead, so cgroup/sysctl > programs can correctly replace the pending sysctl buffer. > > This bug was discovered during a manual code review. Tested via a > cgroup/sysctl BPF reproducer overriding writes to a target sysctl. > Pre-fix, bpf_sysctl_set_new_value("foo") was silently ignored: the write > returned 8192 and the value remained "600". Post-fix, the BPF replacement > buffer properly propagates: the write returns 3 and the value updates to > "foo". I wonder if we can make that reproducer into a selftest, clearly this codepath is not tested automatically at all, which is a problem. > > Fixes: f10d05966196 ("bpf: Make BPF_PROG_RUN_ARRAY return -err instead of allow boolean") > Cc: stable@vger.kernel.org > > Acked-by: Yonghong Song > Signed-off-by: Zilin Guan > Signed-off-by: Dawei Feng > --- > kernel/bpf/cgroup.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c > index a0b5f8cd8b10..3f06e2270f5c 100644 > --- a/kernel/bpf/cgroup.c > +++ b/kernel/bpf/cgroup.c > @@ -1935,7 +1935,7 @@ int __cgroup_bpf_run_filter_sysctl(struct ctl_table_header *head, > > kfree(ctx.cur_val); > > - if (ret == 1 && ctx.new_updated) { > + if (!ret && ctx.new_updated) { > kvfree(*buf); > *buf = ctx.new_val; > *pcount = ctx.new_len;