From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: Re: [PATCH v9 09/11] seccomp: introduce writer locking Date: Wed, 9 Jul 2014 20:59:36 +0200 Message-ID: <20140709185936.GA6043@redhat.com> References: <1403911380-27787-1-git-send-email-keescook@chromium.org> <1403911380-27787-10-git-send-email-keescook@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1403911380-27787-10-git-send-email-keescook@chromium.org> Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-subscribe: List-owner: List-post: List-archive: To: Kees Cook Cc: linux-kernel@vger.kernel.org, Andy Lutomirski , "Michael Kerrisk (man-pages)" , Alexei Starovoitov , Andrew Morton , Daniel Borkmann , Will Drewry , Julien Tinnes , David Drysdale , linux-api@vger.kernel.org, x86@kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@linux-mips.org, linux-arch@vger.kernel.org, linux-security-module@vger.kernel.org List-Id: linux-api@vger.kernel.org On 06/27, Kees Cook wrote: > > void put_seccomp_filter(struct task_struct *tsk) > { > - struct seccomp_filter *orig = tsk->seccomp.filter; > + struct seccomp_filter *orig = smp_load_acquire(&tsk->seccomp.filter); > /* Clean up single-reference branches iteratively. */ > while (orig && atomic_dec_and_test(&orig->usage)) { And this smp_load_acquire() looks unnecessary. atomic_dec_and_test() is a barrier. Oleg. From mboxrd@z Thu Jan 1 00:00:00 1970 From: oleg@redhat.com (Oleg Nesterov) Date: Wed, 9 Jul 2014 20:59:36 +0200 Subject: [PATCH v9 09/11] seccomp: introduce writer locking In-Reply-To: <1403911380-27787-10-git-send-email-keescook@chromium.org> References: <1403911380-27787-1-git-send-email-keescook@chromium.org> <1403911380-27787-10-git-send-email-keescook@chromium.org> Message-ID: <20140709185936.GA6043@redhat.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 06/27, Kees Cook wrote: > > void put_seccomp_filter(struct task_struct *tsk) > { > - struct seccomp_filter *orig = tsk->seccomp.filter; > + struct seccomp_filter *orig = smp_load_acquire(&tsk->seccomp.filter); > /* Clean up single-reference branches iteratively. */ > while (orig && atomic_dec_and_test(&orig->usage)) { And this smp_load_acquire() looks unnecessary. atomic_dec_and_test() is a barrier. Oleg.