From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <1439310948-32426-1-git-send-email-antonio@meshcoding.com> <1439310948-32426-5-git-send-email-antonio@meshcoding.com> From: Sergei Shtylyov Message-ID: <55CA4F1A.1050606@cogentembedded.com> Date: Tue, 11 Aug 2015 22:38:02 +0300 MIME-Version: 1.0 In-Reply-To: <1439310948-32426-5-git-send-email-antonio@meshcoding.com> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit Subject: Re: [B.A.T.M.A.N.] [PATCH 04/10] batman-adv: Make NC capability changes atomic List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Antonio Quartulli , davem@davemloft.net Cc: netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org, Marek Lindner On 08/11/2015 07:35 PM, Antonio Quartulli wrote: > From: Linus Lüssing > > Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One > OGM handler might undo the set/clear of a specific bit from another > handler run in between. > > Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions. > > Fixes: 3f4841ffb336 ("batman-adv: tvlv - add network coding container") > Signed-off-by: Linus Lüssing > Signed-off-by: Marek Lindner > Signed-off-by: Antonio Quartulli > --- > net/batman-adv/network-coding.c | 7 ++++--- > net/batman-adv/types.h | 2 +- > 2 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/net/batman-adv/network-coding.c b/net/batman-adv/network-coding.c > index f0a50f3..cfdc80d 100644 > --- a/net/batman-adv/network-coding.c > +++ b/net/batman-adv/network-coding.c [...] > @@ -894,7 +895,7 @@ void batadv_nc_update_nc_node(struct batadv_priv *bat_priv, > goto out; > > /* check if orig node is network coding enabled */ > - if (!(orig_node->capabilities & BATADV_ORIG_CAPA_HAS_NC)) > + if (!(test_bit(BATADV_ORIG_CAPA_HAS_NC, &orig_node->capabilities))) Likewise, () around the call no needed. [...] MBR, Sergei