From patchwork Fri Aug 7 12:58:42 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 30929 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id B2823B7080 for ; Fri, 7 Aug 2009 22:59:43 +1000 (EST) Received: by ozlabs.org (Postfix) id A7ABADDD0B; Fri, 7 Aug 2009 22:59:43 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 2A8A5DDD01 for ; Fri, 7 Aug 2009 22:59:43 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932491AbZHGM7g (ORCPT ); Fri, 7 Aug 2009 08:59:36 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932445AbZHGM7f (ORCPT ); Fri, 7 Aug 2009 08:59:35 -0400 Received: from ey-out-2122.google.com ([74.125.78.27]:64689 "EHLO ey-out-2122.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757874AbZHGM7c (ORCPT ); Fri, 7 Aug 2009 08:59:32 -0400 Received: by ey-out-2122.google.com with SMTP id 9so514095eyd.37 for ; Fri, 07 Aug 2009 05:59:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references; bh=fXYPichDzgzwXyuqAEQvbnvqXBcBp6fok2Rq4zYkZSI=; b=XUI0dsnQnu/m9L2fvhN5tKo3EQxYS7hd+7OkhR+7CbXIgAI9yQ7nBlywdC74N9vmpd RKseejfSYRLXrC1eAoN+6REV790cEVNPDyYLI0QbXlonotadCKAza1gb5Xqpcidc9kfe KrTHHVutJE84pVPCo/iUC2yxESlTgoVvoYW5I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=e93exkYdig34WmJ7M67tOyFYjS45hQvk7vD6UC6xy9cj6w4q9b+9MR9ApNcy1D/Li+ LEJDUrSuvYvW3zanme+jrF+5KTRqwk+eOWI6DKGsWUEr7chhPVJsYgf8u3oBEraoZxbj KuitDeYdowNjr5+DpzjsRKhaQ0dYOWdKynkt8= Received: by 10.210.30.10 with SMTP id d10mr932975ebd.60.1249649973385; Fri, 07 Aug 2009 05:59:33 -0700 (PDT) Received: from localhost.localdomain (iap-pxy-mow1.siemens.ru [212.248.25.26]) by mx.google.com with ESMTPS id 7sm2797082eyg.45.2009.08.07.05.59.31 (version=SSLv3 cipher=RC4-MD5); Fri, 07 Aug 2009 05:59:32 -0700 (PDT) From: Dmitry Eremin-Solenikov To: netdev@vger.kernel.org Cc: "David S. Miller" , Sergey Lapin , linux-zigbee-devel@lists.sourceforge.net Subject: [PATCH 07/10] af_ieee802154: minor cleanup in dgram_bind Date: Fri, 7 Aug 2009 16:58:42 +0400 Message-Id: <1249649925-11996-8-git-send-email-dbaryshkov@gmail.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1249649925-11996-7-git-send-email-dbaryshkov@gmail.com> References: <1249649925-11996-1-git-send-email-dbaryshkov@gmail.com> <1249649925-11996-2-git-send-email-dbaryshkov@gmail.com> <1249649925-11996-3-git-send-email-dbaryshkov@gmail.com> <1249649925-11996-4-git-send-email-dbaryshkov@gmail.com> <1249649925-11996-5-git-send-email-dbaryshkov@gmail.com> <1249649925-11996-6-git-send-email-dbaryshkov@gmail.com> <1249649925-11996-7-git-send-email-dbaryshkov@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 1) fix ro->bound protection by socket lock 2) make ro->bound bit instead of int Signed-off-by: Dmitry Eremin-Solenikov --- net/ieee802154/dgram.c | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/net/ieee802154/dgram.c b/net/ieee802154/dgram.c index d1da6c6..25018a9 100644 --- a/net/ieee802154/dgram.c +++ b/net/ieee802154/dgram.c @@ -40,9 +40,10 @@ static DEFINE_RWLOCK(dgram_lock); struct dgram_sock { struct sock sk; - int bound; struct ieee802154_addr src_addr; struct ieee802154_addr dst_addr; + + unsigned bound:1; }; static inline struct dgram_sock *dgram_sk(const struct sock *sk) @@ -86,18 +87,18 @@ static int dgram_bind(struct sock *sk, struct sockaddr *uaddr, int len) { struct sockaddr_ieee802154 *addr = (struct sockaddr_ieee802154 *)uaddr; struct dgram_sock *ro = dgram_sk(sk); - int err = 0; + int err = -EINVAL; struct net_device *dev; + lock_sock(sk); + ro->bound = 0; if (len < sizeof(*addr)) - return -EINVAL; + goto out; if (addr->family != AF_IEEE802154) - return -EINVAL; - - lock_sock(sk); + goto out; dev = ieee802154_get_dev(sock_net(sk), &addr->addr); if (!dev) { @@ -113,6 +114,7 @@ static int dgram_bind(struct sock *sk, struct sockaddr *uaddr, int len) memcpy(&ro->src_addr, &addr->addr, sizeof(struct ieee802154_addr)); ro->bound = 1; + err = 0; out_put: dev_put(dev); out: