Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp236495iob; Thu, 28 Apr 2022 00:53:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz3zarlWyYMNw0YhKZ+MFTOGUKQd06AaMrp4RuCoQWuV37Ixq34v/g5JP6t7D7pWu+VGDHV X-Received: by 2002:a17:906:9749:b0:6ef:bc52:1f94 with SMTP id o9-20020a170906974900b006efbc521f94mr30427755ejy.666.1651132389373; Thu, 28 Apr 2022 00:53:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651132389; cv=none; d=google.com; s=arc-20160816; b=t/E4q7KWfOxmGPHYZuuxdbUhXt4S66PuuqTViK61voWyMkqntazDMO8+CXsL1FZFy0 69q54XZ8G+sav+dOiFzKgx6QgZJKeRmuSgC2cuV4oLOKteBhA54Ir/1Y/UP6wrxAwDh5 l99wq5A/b0hS2jvdt0YLE1uJteiKPfiEx+6d8xb/bXQyepSMyqbBkFS6KAUpreT33tPY zg/XHUGRyCJY8JX0LArPiv7aLK9c+ZLASYnai5dDY4/QRcvzT6Wbu7T+81EAHOIkSoP0 J9SJkt9uCNaxnIyT1laU8zENF3na/9kOxPGW5DC0IXkWWCA09LJuXcJPGH8xWp/i8xfK PrDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Lq+qsTK8ZKVPJL9HA4iiJLZNw7TQSOzy8Rchv+NWZvU=; b=bRRRNRw+5xswlpFtctqygX+5kuAdULQowK80YHCjPLLWeRGnQ0qJs9/aLKpmRIKw5l dw7s/252NF8hckfLUM8leKTukI4eTQ8DRmiXBv1cPsc97zc6ld6bBXCklxqP2/JNzoff qujABI3iSQmwbmk2qf07RrH/JilRWyeYQD29IJQJJrWSpos3Hf0waPqRy6ZCtR4UHWEM FwB/rq3NugbBu9pJRW1bsktu1wwzPFlcC3hRNkj/ozF+GagfUNJ/g+S9GqtvCPUZqcsx sE5cv7OCMfeAKnoMis58DUE0xM/eGGNbPvSA1ZwR4+Fmv7Uix5TwsJx5dlrWG5WNTzgh Mbsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sargun.me header.s=google header.b=R33oQZqW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sargun.me Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bf5-20020a0564021a4500b00425c87d4f95si3241924edb.416.2022.04.28.00.52.45; Thu, 28 Apr 2022 00:53:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@sargun.me header.s=google header.b=R33oQZqW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sargun.me Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238355AbiD1B7T (ORCPT + 99 others); Wed, 27 Apr 2022 21:59:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45018 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229889AbiD1B7Q (ORCPT ); Wed, 27 Apr 2022 21:59:16 -0400 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FD3134B8D for ; Wed, 27 Apr 2022 18:56:03 -0700 (PDT) Received: by mail-pj1-x102d.google.com with SMTP id iq2-20020a17090afb4200b001d93cf33ae9so6401870pjb.5 for ; Wed, 27 Apr 2022 18:56:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sargun.me; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Lq+qsTK8ZKVPJL9HA4iiJLZNw7TQSOzy8Rchv+NWZvU=; b=R33oQZqWEqgeKBDM/HXVhBJUted9XBZhqVBxj/BaOz3dIiBa3WHrFRbMzJ6oRrywRv BMPuSxFZ+sbaIPgbdfx0Go/FFdawlVbulYcv0VVFxVaa6dbsTvbijIkdqLUfAUVzwxtg xTl0BJ5HjqYNyHCX1H8oAKtomrgYXP8meQCwg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Lq+qsTK8ZKVPJL9HA4iiJLZNw7TQSOzy8Rchv+NWZvU=; b=jpZadAfhF0IWkq035YtmYdMv/kq8HBSq6F1n9WZh5AsP/g8PFeFWrdqtuT3pswAhek CQ0kXXw7yy3xt64yLyqf5LHZ3yrCQD/CSgud798YjXuTFLxYbE72t6RuM7Jie/Gm6eV2 ND/sZoUoJ9xPQw0qGUGEUdgKF/NxsvmLYRAbhgSwLzwU7ruhZQ99pDFJ2Oz9cQg3LTO9 hxkTVs6K4VeEWZUkpdGULQUwhY01pWj+cIECMYZQMa2xl6iBh7bvlC1cdYiV6ugFeps+ kuExA2+cuu4TN38fMz4fVh/RsxaT7UpnGhxULfbD1sDySiaq3a2PCov+KheyjtjE83vq 1WLQ== X-Gm-Message-State: AOAM531hnVO+2sDHdwhDmrfPBgtUblYzKouNbdLEvLynWesCdxkR7TDr lLcaWZ4CyMdBhIvZF20c1VUgxc+biH45nA== X-Received: by 2002:a17:90a:db45:b0:1d9:29d0:4c6e with SMTP id u5-20020a17090adb4500b001d929d04c6emr28909345pjx.46.1651110962835; Wed, 27 Apr 2022 18:56:02 -0700 (PDT) Received: from localhost.localdomain ([69.53.254.5]) by smtp.gmail.com with ESMTPSA id y14-20020a63ce0e000000b003c14af505edsm637814pgf.5.2022.04.27.18.56.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Apr 2022 18:56:01 -0700 (PDT) From: Sargun Dhillon To: Kees Cook , LKML , Tycho Andersen , Andy Lutomirski Cc: Sargun Dhillon , Christian Brauner Subject: [PATCH 1/2] seccomp: Use FIFO semantics to order notifications Date: Wed, 27 Apr 2022 18:54:46 -0700 Message-Id: <20220428015447.13661-1-sargun@sargun.me> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Previously, the seccomp notifier used LIFO semantics, where each notification would be added on top of the stack, and notifications were popped off the top of the stack. This could result one process that generates a large number of notifications preventing other notifications from being handled. This patch moves from LIFO (stack) semantics to FIFO (queue semantics). Signed-off-by: Sargun Dhillon --- kernel/seccomp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/seccomp.c b/kernel/seccomp.c index db10e73d06e0..2cb3bcd90eb3 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -1101,7 +1101,7 @@ static int seccomp_do_user_notification(int this_syscall, n.data = sd; n.id = seccomp_next_notify_id(match); init_completion(&n.ready); - list_add(&n.list, &match->notif->notifications); + list_add_tail(&n.list, &match->notif->notifications); INIT_LIST_HEAD(&n.addfd); up(&match->notif->request); -- 2.25.1