From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755306AbbKYJOU (ORCPT ); Wed, 25 Nov 2015 04:14:20 -0500 Received: from bombadil.infradead.org ([198.137.202.9]:56429 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932189AbbKYJN7 (ORCPT ); Wed, 25 Nov 2015 04:13:59 -0500 Date: Wed, 25 Nov 2015 10:13:49 +0100 From: Peter Zijlstra To: Frederic Weisbecker Cc: Chris Metcalf , LKML , Thomas Gleixner , Luiz Capitulino , Christoph Lameter , Ingo Molnar , Viresh Kumar , Rik van Riel Subject: Re: [PATCH 1/7] atomic: Export fetch_or() Message-ID: <20151125091349.GW17308@twins.programming.kicks-ass.net> References: <1447424529-13671-1-git-send-email-fweisbec@gmail.com> <1447424529-13671-2-git-send-email-fweisbec@gmail.com> <56548908.50509@ezchip.com> <20151124211951.GA16609@lerouge> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151124211951.GA16609@lerouge> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 24, 2015 at 10:19:52PM +0100, Frederic Weisbecker wrote: > Also note that or_return() means that you first do OR and then return the new value. Yes, that's useless. OR is an irreversible operator, which means or_return() looses data. You can never say if a bit included in the mask was set before. You really must have fetch_or().