.default_attrs =        ep_attrs,
 };
 
-void usb_create_ep_files(struct kobject *parent,
+void usb_create_ep_files(struct device *parent,
                         struct usb_host_endpoint *endpoint,
                         struct usb_device *udev)
 {
 
        kobj = &ep_obj->kobj;
        kobject_set_name(kobj, "ep_%02x", endpoint->desc.bEndpointAddress);
-       kobj->parent = parent;
+       kobj->parent = &parent->kobj;
        kobj->ktype = &ep_object_ktype;
 
        /* Don't use kobject_register, because it generates a hotplug event */
 
        if (udev->serial)
                device_create_file (dev, &dev_attr_serial);
        device_create_file (dev, &dev_attr_configuration);
-       usb_create_ep_files(&dev->kobj, &udev->ep0, udev);
+       usb_create_ep_files(dev, &udev->ep0, udev);
 }
 
 void usb_remove_sysfs_dev_files (struct usb_device *udev)
 
        iface_desc = intf->cur_altsetting;
        for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i)
-               usb_create_ep_files(&intf->dev.kobj, &iface_desc->endpoint[i],
+               usb_create_ep_files(&intf->dev, &iface_desc->endpoint[i],
                                udev);
 }
 
 
 extern void usb_remove_sysfs_dev_files (struct usb_device *dev);
 extern void usb_create_sysfs_intf_files (struct usb_interface *intf);
 extern void usb_remove_sysfs_intf_files (struct usb_interface *intf);
-extern void usb_create_ep_files(struct kobject *parent, struct usb_host_endpoint *endpoint,
+extern void usb_create_ep_files(struct device *parent, struct usb_host_endpoint *endpoint,
                                struct usb_device *udev);
 extern void usb_remove_ep_files(struct usb_host_endpoint *endpoint);