From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: Re: [PATCH 1/4] task_work: make task_work_add() lockless Date: Mon, 24 Sep 2012 22:37:50 +0200 Message-ID: <20120924203750.GA28983@redhat.com> References: <20120826191132.GA3743@redhat.com> <20120826191209.GA4221@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mx1.redhat.com ([209.132.183.28]:40425 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757874Ab2IXUgX (ORCPT ); Mon, 24 Sep 2012 16:36:23 -0400 Content-Disposition: inline In-Reply-To: Sender: linux-next-owner@vger.kernel.org List-ID: To: Geert Uytterhoeven Cc: Yoshinori Sato , Peter Zijlstra , Al Viro , Dave Jones , Linux Kernel , Thomas Gleixner , rostedt , dhowells , Linus Torvalds , Linux-Next On 09/24, Geert Uytterhoeven wrote: > > On Sun, Aug 26, 2012 at 9:12 PM, Oleg Nesterov wrote: > > + while ((work = ACCESS_ONCE(*pprev))) { > > + read_barrier_depends(); Hmm. This should be smp_read_barrier_depends(), but this doesn't matter. > Woops, h8300 doesn't have read_barrier_depends(): > kernel/task_work.c:38:3: error: implicit declaration of function > 'read_barrier_depends' [-Werror=implicit-function-declaration] > cc1: some warnings being treated as errors > make[2]: *** [kernel/task_work.o] Error 1 Thanks... > http://kisskb.ellerman.id.au/kisskb/buildresult/7238385/ > > Perhaps an empty definition is fine? Most architectures have: > > #define read_barrier_depends() do { } while(0) Yes. arch/h8300/include/asm/barrier.h has #define smp_read_barrier_depends() read_barrier_depends() so probably it should define read_barrier_depends() as well ? Oleg.