From patchwork Wed Nov 12 06:20:46 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 8314 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.176.167]) by ozlabs.org (Postfix) with ESMTP id 13142DDDE6 for ; Wed, 12 Nov 2008 17:21:01 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751111AbYKLGU5 (ORCPT ); Wed, 12 Nov 2008 01:20:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751087AbYKLGU4 (ORCPT ); Wed, 12 Nov 2008 01:20:56 -0500 Received: from gw1.cosmosbay.com ([86.65.150.130]:44408 "EHLO gw1.cosmosbay.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751086AbYKLGUz (ORCPT ); Wed, 12 Nov 2008 01:20:55 -0500 Received: from [127.0.0.1] (localhost [127.0.0.1]) by gw1.cosmosbay.com (8.13.7/8.13.7) with ESMTP id mAC6KmMZ022385; Wed, 12 Nov 2008 07:20:48 +0100 Message-ID: <491A75BE.1010907@cosmosbay.com> Date: Wed, 12 Nov 2008 07:20:46 +0100 From: Eric Dumazet User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: David Miller CC: adobriyan@gmail.com, netdev@vger.kernel.org Subject: [PATCH] nets: Introduce read_pnet() and write_pnet() helpers References: <20081110.164424.167225199.davem@davemloft.net> <20081111110847.GC3665@x200.localdomain> <20081111111946.GD3665@x200.localdomain> <20081111.164554.143409564.davem@davemloft.net> In-Reply-To: <20081111.164554.143409564.davem@davemloft.net> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.6 (gw1.cosmosbay.com [0.0.0.0]); Wed, 12 Nov 2008 07:20:48 +0100 (CET) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org So in this version I splited the patches to make them clear I removed the DECLARE_PNET since it was apparently using too many capital letters :) Thanks [PATCH] nets: Introduce read_pnet() and write_pnet() helpers This patch introduces two helpers that deal with reading and writing struct net pointers in various network structures. Their implementation depends on CONFIG_NET_NS For symmetry, both functions work with "struct net **pnet". Their usage should reduce the number of #ifdef CONFIG_NET_NS, without adding many helpers for each network structure that hold a "struct net *pointer" Signed-off-by: Eric Dumazet --- include/net/net_namespace.h | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+) diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 700c53a..3195577 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h @@ -192,6 +192,24 @@ static inline void release_net(struct net *net) } #endif +#ifdef CONFIG_NET_NS + +static inline void write_pnet(struct net **pnet, struct net *net) +{ + *pnet = net; +} + +static inline struct net *read_pnet(struct net * const *pnet) +{ + return *pnet; +} + +#else + +#define write_pnet(pnet, net) do { (void)(net);} while (0) +#define read_pnet(pnet) (&init_net) + +#endif #define for_each_net(VAR) \ list_for_each_entry(VAR, &net_namespace_list, list)