From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754814AbcEBSAA (ORCPT ); Mon, 2 May 2016 14:00:00 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:44533 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753818AbcEBR7w (ORCPT ); Mon, 2 May 2016 13:59:52 -0400 Date: Mon, 2 May 2016 10:59:50 -0700 From: Christoph Hellwig To: "Paul E. McKenney" Cc: Christoph Hellwig , Muhammad Falak R Wani , "Nicholas A. Bellinger" , target-devel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] target: use RCU_INIT_POINTER() when NULLing. Message-ID: <20160502175950.GA16580@infradead.org> References: <1462107122-9562-1-git-send-email-falakreyaz@gmail.com> <20160501170120.GA15010@infradead.org> <20160501195313.GL3686@linux.vnet.ibm.com> <20160502141023.GA1187@linux.vnet.ibm.com> <20160502175738.GA24455@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160502175738.GA24455@linux.vnet.ibm.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 02, 2016 at 10:57:38AM -0700, Paul E. McKenney wrote: > -#define rcu_assign_pointer(p, v) smp_store_release(&p, RCU_INITIALIZER(v)) > +#define rcu_assign_pointer(p, v) \ > +({ \ > + uintptr_t _r_a_p__v = (uintptr_t)(v); \ > + \ > + if (__builtin_constant_p(v) && (_r_a_p__v) == (uintptr_t)NULL) \ > + WRITE_ONCE((p), (typeof(p))(_r_a_p__v)); \ > + else \ > + smp_store_release(&p, RCU_INITIALIZER((typeof(p))_r_a_p__v)); \ > + _r_a_p__v; \ > +}) Can't we turn it into an inline (would need different calling conventions for p, though).