aboutsummaryrefslogtreecommitdiffstats
path: root/net/atm/atm_sysfs.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-12-08 14:40:47 -0500
committerDavid S. Miller <davem@davemloft.net>2010-12-10 18:45:05 -0500
commitd9ca676bcb26e1fdff9265a3e70f697cd381c889 (patch)
tree72ab0bf8cb22291eb4e1a57329bb8e1df2b7649f /net/atm/atm_sysfs.c
parentfb890ae7d615f4b4f5689144b6832230ab2046aa (diff)
atm: correct sysfs 'device' link creation and parent relationships
The ATM subsystem was incorrectly creating the 'device' link for ATM nodes in sysfs. This led to incorrect device/parent relationships exposed by sysfs and udev. Instead of rolling the 'device' link by hand in the generic ATM code, pass each ATM driver's bus device down to the sysfs code and let sysfs do this stuff correctly. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/atm/atm_sysfs.c')
-rw-r--r--net/atm/atm_sysfs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/atm/atm_sysfs.c b/net/atm/atm_sysfs.c
index 799c631f0fed..f7fa67c78766 100644
--- a/net/atm/atm_sysfs.c
+++ b/net/atm/atm_sysfs.c
@@ -143,12 +143,13 @@ static struct class atm_class = {
143 .dev_uevent = atm_uevent, 143 .dev_uevent = atm_uevent,
144}; 144};
145 145
146int atm_register_sysfs(struct atm_dev *adev) 146int atm_register_sysfs(struct atm_dev *adev, struct device *parent)
147{ 147{
148 struct device *cdev = &adev->class_dev; 148 struct device *cdev = &adev->class_dev;
149 int i, j, err; 149 int i, j, err;
150 150
151 cdev->class = &atm_class; 151 cdev->class = &atm_class;
152 cdev->parent = parent;
152 dev_set_drvdata(cdev, adev); 153 dev_set_drvdata(cdev, adev);
153 154
154 dev_set_name(cdev, "%s%d", adev->type, adev->number); 155 dev_set_name(cdev, "%s%d", adev->type, adev->number);