From patchwork Sun Jan 25 12:02:43 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cyrill Gorcunov X-Patchwork-Id: 20197 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 65625DE0DB for ; Sun, 25 Jan 2009 23:02:54 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754568AbZAYMCt (ORCPT ); Sun, 25 Jan 2009 07:02:49 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754110AbZAYMCs (ORCPT ); Sun, 25 Jan 2009 07:02:48 -0500 Received: from ik-out-1112.google.com ([66.249.90.179]:44041 "EHLO ik-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752912AbZAYMCq (ORCPT ); Sun, 25 Jan 2009 07:02:46 -0500 Received: by ik-out-1112.google.com with SMTP id c28so676332ika.5 for ; Sun, 25 Jan 2009 04:02:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:date:from:to:cc :subject:message-id:mime-version:content-type:content-disposition :user-agent; bh=cKc+ztZrtzwqDGydZOjqny8/cCmkrLhiF/Z3XFn35Rk=; b=cGtoVjJ5zE92vr/CeTtoAzHe7/3dVdpXoCttsz51Jo5yx72yzUPaTfeGmay3ZDDt6W dOks6v4/DoHhXgWCyywe6gcso7zzsSLEwAT8EsYoEggWWN4RoZ3Ah7MKDBK8ekH75l5K 9MaTypBe8NgBlEWLgO5HdWNuyrmb5md/37WWw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=dYTraleFta8tbhmIMq3+8a+ldyxO2Ex7Om2ZcK938TWEUXZ/wuz9cPelSUrpsMt5Ik 5r4UvbjCA3UmF254iFrUwV8XsoD2/1ryArsUGKGvOyCbgZTAGtFq5REz6Mz3nrKFUzxA 5cXxC14bgyKYWfw0E5B/ZCc7cuGOpZCZVwktk= Received: by 10.210.76.4 with SMTP id y4mr5147024eba.176.1232884964223; Sun, 25 Jan 2009 04:02:44 -0800 (PST) Received: from gorcunov (95-28-133-224.broadband.corbina.ru [95.28.133.224]) by mx.google.com with ESMTPS id 28sm11778029eyg.54.2009.01.25.04.02.43 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 25 Jan 2009 04:02:43 -0800 (PST) Received: by gorcunov (Postfix, from userid 1000) id 2B4546BF9; Sun, 25 Jan 2009 15:02:43 +0300 (MSK) Date: Sun, 25 Jan 2009 15:02:43 +0300 From: Cyrill Gorcunov To: Alexey Dobriyan , LiNext Cc: David Miller , Stephen Rothwell , Michal Ostrowski , NKML Subject: [PATCH] net: pppoe - stop using proc internals Message-ID: <20090125120243.GA29167@localhost> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.17+20080114 (2008-01-14) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Alexey Dobriyan pointed that using PDE_NET outside the proc code is plain bogus (thanks Alexey!). Fix it. Signed-off-by: Cyrill Gorcunov CC: Alexey Dobriyan CC: Michal Ostrowski --- Hope I didn't miss anything. Compile tested. Please review. drivers/net/pppoe.c | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Index: linux-2.6.git/drivers/net/pppoe.c =================================================================== --- linux-2.6.git.orig/drivers/net/pppoe.c +++ linux-2.6.git/drivers/net/pppoe.c @@ -1041,7 +1041,7 @@ out: static void *pppoe_seq_start(struct seq_file *seq, loff_t *pos) __acquires(pn->hash_lock) { - struct pppoe_net *pn = pppoe_pernet(seq->private); + struct pppoe_net *pn = pppoe_pernet(seq_file_net(seq)); loff_t l = *pos; read_lock_bh(&pn->hash_lock); @@ -1050,7 +1050,7 @@ static void *pppoe_seq_start(struct seq_ static void *pppoe_seq_next(struct seq_file *seq, void *v, loff_t *pos) { - struct pppoe_net *pn = pppoe_pernet(seq->private); + struct pppoe_net *pn = pppoe_pernet(seq_file_net(seq)); struct pppox_sock *po; ++*pos; @@ -1078,7 +1078,7 @@ out: static void pppoe_seq_stop(struct seq_file *seq, void *v) __releases(pn->hash_lock) { - struct pppoe_net *pn = pppoe_pernet(seq->private); + struct pppoe_net *pn = pppoe_pernet(seq_file_net(seq)); read_unlock_bh(&pn->hash_lock); } @@ -1091,30 +1091,8 @@ static struct seq_operations pppoe_seq_o static int pppoe_seq_open(struct inode *inode, struct file *file) { - struct seq_file *m; - struct net *net; - int err; - - err = seq_open(file, &pppoe_seq_ops); - if (err) - return err; - - m = file->private_data; - net = maybe_get_net(PDE_NET(PDE(inode))); - BUG_ON(!net); - m->private = net; - - return err; -} - -static int pppoe_seq_release(struct inode *inode, struct file *file) -{ - struct seq_file *m; - - m = file->private_data; - put_net((struct net*)m->private); - - return seq_release(inode, file); + return seq_open_net(inode, file, &pppoe_seq_ops, + sizeof(struct seq_net_private)); } static const struct file_operations pppoe_seq_fops = { @@ -1122,7 +1100,7 @@ static const struct file_operations pppo .open = pppoe_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = pppoe_seq_release, + .release = seq_release_net, }; #endif /* CONFIG_PROC_FS */