X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Ffirmware%2Fedd.c;h=9e4f59dc7f1e77c6b46fc870bca1aae011a407bf;hb=ea0c62f7cf70f13a67830471b613337bd0c9a62e;hp=ddcc95793068308f5f3dbdbfef7749d5aa2371ac;hpb=f62ed9e33b3ccff54d66b08f82d11940bb9e269b;p=linux-2.6 diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c index ddcc957930..9e4f59dc7f 100644 --- a/drivers/firmware/edd.c +++ b/drivers/firmware/edd.c @@ -11,7 +11,7 @@ * * This code takes information provided by BIOS EDD calls * fn41 - Check Extensions Present and - * fn48 - Get Device Parametes with EDD extensions + * fn48 - Get Device Parameters with EDD extensions * made in setup.S, copied to safe structures in setup.c, * and presents it in sysfs. * @@ -693,7 +693,7 @@ edd_create_symlink_to_pcidev(struct edd_device *edev) static inline void edd_device_unregister(struct edd_device *edev) { - kobject_unregister(&edev->kobj); + kobject_put(&edev->kobj); } static void edd_populate_dir(struct edd_device * edev) @@ -721,13 +721,13 @@ edd_device_register(struct edd_device *edev, int i) if (!edev) return 1; edd_dev_set_info(edev, i); - kobject_set_name(&edev->kobj, "int13_dev%02x", - 0x80 + i); edev->kobj.kset = edd_kset; - edev->kobj.ktype = &edd_ktype; - error = kobject_register(&edev->kobj); - if (!error) + error = kobject_init_and_add(&edev->kobj, &edd_ktype, NULL, + "int13_dev%02x", 0x80 + i); + if (!error) { edd_populate_dir(edev); + kobject_uevent(&edev->kobj, KOBJ_ADD); + } return error; } @@ -753,7 +753,7 @@ edd_init(void) if (!edd_num_devices()) { printk(KERN_INFO "EDD information not available.\n"); - return 1; + return -ENODEV; } edd_kset = kset_create_and_add("edd", NULL, firmware_kobj);