From patchwork Sun Mar 11 20:28:32 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: sjur.brandeland@stericsson.com X-Patchwork-Id: 146015 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 36018B6FA3 for ; Mon, 12 Mar 2012 07:28:57 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752034Ab2CKU2w (ORCPT ); Sun, 11 Mar 2012 16:28:52 -0400 Received: from mail-lpp01m010-f46.google.com ([209.85.215.46]:64089 "EHLO mail-lpp01m010-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751725Ab2CKU2s (ORCPT ); Sun, 11 Mar 2012 16:28:48 -0400 Received: by lahj13 with SMTP id j13so3064319lah.19 for ; Sun, 11 Mar 2012 13:28:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:x-mailer:in-reply-to :references:mime-version:content-type:content-transfer-encoding; bh=Q9//DHEQk9Rw8Kj15RWtHoZ4LY+t51h8/gODWe08Xto=; b=Z+lA53t0DK2wBcR/4BEwIyXil9oZufyBpEuUxTTXZPwaSU44SEk2D3Rm9Uy/teYQsN zmviNXUG/acXlZ93LKjBytHhCBH2F1kmwFMWm/BJI1Id0DAZuzLYfBbh8dLndPW5KTRd PHXsWzik8HwVkOXwEm63to5xQWhF79ALVfwQI4z6gMXJI17ctcWlO+J4zBN6+cfjcruC i3/nmp96X8IhY7cl0qxXOeA8sivd/s8MDwFmJhKZHRTz1A5srYCq3DAjBSR3JHqv7i9S 74ZuyWxES19AgDmoF3Q2gJkfG5S96xguG15bZh3SwwMJH/VDDsestl4tSjlvC86YE07e A/Bw== Received: by 10.112.102.65 with SMTP id fm1mr3460935lbb.82.1331497727243; Sun, 11 Mar 2012 13:28:47 -0700 (PDT) Received: from localhost.localdomain ([80.203.142.207]) by mx.google.com with ESMTPS id tt8sm15530187lbb.16.2012.03.11.13.28.45 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 11 Mar 2012 13:28:46 -0700 (PDT) From: =?UTF-8?q?Sjur=20Br=C3=A6ndeland?= To: netdev@vger.kernel.org, davem@davemloft.net Cc: sjurbren@gmail.com, =?UTF-8?q?Sjur=20Br=C3=A6ndeland?= Subject: [PATCH net-next 2/2] caif: make zero a legal caif connetion id. Date: Sun, 11 Mar 2012 21:28:32 +0100 Message-Id: <1331497712-13534-2-git-send-email-sjur.brandeland@stericsson.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1331497712-13534-1-git-send-email-sjur.brandeland@stericsson.com> References: <1331497712-13534-1-git-send-email-sjur.brandeland@stericsson.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Connection ID configured through RTNL must allow zero as connection id. If connection-id is not given when creating the interface, configure a loopback interface using ifindex as connection-id. Signed-off-by: Sjur Brændeland --- net/caif/chnl_net.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/net/caif/chnl_net.c b/net/caif/chnl_net.c index e866234..20618dd 100644 --- a/net/caif/chnl_net.c +++ b/net/caif/chnl_net.c @@ -28,6 +28,7 @@ /* 5 sec. connect timeout */ #define CONNECT_TIMEOUT (5 * HZ) #define CAIF_NET_DEFAULT_QUEUE_LEN 500 +#define UNDEF_CONNID 0xffffffff /*This list is protected by the rtnl lock. */ static LIST_HEAD(chnl_net_list); @@ -408,7 +409,7 @@ static void ipcaif_net_setup(struct net_device *dev) priv->conn_req.link_selector = CAIF_LINK_HIGH_BANDW; priv->conn_req.priority = CAIF_PRIO_LOW; /* Insert illegal value */ - priv->conn_req.sockaddr.u.dgm.connection_id = 0; + priv->conn_req.sockaddr.u.dgm.connection_id = UNDEF_CONNID; priv->flowenabled = false; init_waitqueue_head(&priv->netmgmt_wq); @@ -471,9 +472,11 @@ static int ipcaif_newlink(struct net *src_net, struct net_device *dev, else list_add(&caifdev->list_field, &chnl_net_list); - /* Take ifindex as connection-id if null */ - if (caifdev->conn_req.sockaddr.u.dgm.connection_id == 0) + /* Use ifindex as connection id, and use loopback channel default. */ + if (caifdev->conn_req.sockaddr.u.dgm.connection_id == UNDEF_CONNID) { caifdev->conn_req.sockaddr.u.dgm.connection_id = dev->ifindex; + caifdev->conn_req.protocol = CAIFPROTO_DATAGRAM_LOOP; + } return ret; }