From 2c6f51615e3c7c4ebefc2761a75f9c01195aa92c Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Fri, 20 Oct 2006 19:48:42 -0700 Subject: [PATCH] --- yaml --- r: 40191 b: refs/heads/master c: 97f80bc66f5c6384e3aab70c67340116b8c4284b h: refs/heads/master i: 40189: b1b8e8ee7c044f52d9dd1ac81ce45a77df41c9b3 40187: 424fd1000086ea5226a7d44295f049cc532d18bb 40183: 6b06592cbc19679c5f6fac1d5d4c38adb829a0b5 40175: d7b557118f4a7c302d947225c1fe1207d7a8297a 40159: 8b2ea712927cc73c8e124daef26bcc459800db99 40127: d737a254ccb6d41fb45f6d70f8566cd506a74b9e 40063: 4997629593cdc535bde1ddea418a6c75197865cf 39935: b6c8e1c1af01857c4703b74ccc9f998722120c20 v: v3 --- [refs] | 2 +- trunk/net/atm/atm_sysfs.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 07cb7523cae7..39bd88ffed7d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fd169f15a67b47f23bd1704919c719a8e8409a73 +refs/heads/master: 97f80bc66f5c6384e3aab70c67340116b8c4284b diff --git a/trunk/net/atm/atm_sysfs.c b/trunk/net/atm/atm_sysfs.c index c0a4ae28fcfa..62f6ed1f2f98 100644 --- a/trunk/net/atm/atm_sysfs.c +++ b/trunk/net/atm/atm_sysfs.c @@ -141,7 +141,7 @@ static struct class atm_class = { int atm_register_sysfs(struct atm_dev *adev) { struct class_device *cdev = &adev->class_dev; - int i, err; + int i, j, err; cdev->class = &atm_class; class_set_devdata(cdev, adev); @@ -151,10 +151,19 @@ int atm_register_sysfs(struct atm_dev *adev) if (err < 0) return err; - for (i = 0; atm_attrs[i]; i++) - class_device_create_file(cdev, atm_attrs[i]); + for (i = 0; atm_attrs[i]; i++) { + err = class_device_create_file(cdev, atm_attrs[i]); + if (err) + goto err_out; + } return 0; + +err_out: + for (j = 0; j < i; j++) + class_device_remove_file(cdev, atm_attrs[j]); + class_device_del(cdev); + return err; } void atm_unregister_sysfs(struct atm_dev *adev)