| From b3529868becf61ec65279486d0ab4af60f39774d Mon Sep 17 00:00:00 2001 |
| From: Ben Hutchings <ben@decadent.org.uk> |
| Date: Thu, 9 Sep 2010 05:21:16 +0100 |
| Subject: [PATCH] tun: Don't add sysfs attributes to devices without sysfs directories |
| |
| This applies to 2.6.32 *only*. It has not been applied upstream since |
| the limitation no longer exists. |
| |
| Prior to Linux 2.6.35, net devices outside the initial net namespace |
| did not have sysfs directories. Attempting to add attributes to |
| them will trigger a BUG(). |
| |
| Reported-and-tested-by: Russell Stuart <russell-debian@stuart.id.au> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| Acked-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| --- |
| drivers/net/tun.c | 3 ++- |
| 1 files changed, 2 insertions(+), 1 deletions(-) |
| |
| diff --git a/drivers/net/tun.c b/drivers/net/tun.c |
| index 4326520..7b4a88b 100644 |
| --- a/drivers/net/tun.c |
| +++ b/drivers/net/tun.c |
| @@ -1061,7 +1061,8 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) |
| if (err < 0) |
| goto err_free_sk; |
| |
| - if (device_create_file(&tun->dev->dev, &dev_attr_tun_flags) || |
| + if (!net_eq(dev_net(tun->dev), &init_net) || |
| + device_create_file(&tun->dev->dev, &dev_attr_tun_flags) || |
| device_create_file(&tun->dev->dev, &dev_attr_owner) || |
| device_create_file(&tun->dev->dev, &dev_attr_group)) |
| printk(KERN_ERR "Failed to create tun sysfs files\n"); |
| -- |
| 1.7.0.4 |
| |