Hi, Greg KH, To me cdev_device_add seems to be calling only cdev_add(below). In this case since dev->devt already holds dev_t value ("hl%d"), it just sets cdev_set_parent and cdev_add. int cdev_device_add(struct cdev *cdev, struct device *dev) { int rc = 0; if (dev->devt) { cdev_set_parent(cdev, &dev->kobj); rc = cdev_add(cdev, dev->devt, 1); if (rc) return rc; } rc = device_add(dev); if (rc) cdev_del(cdev); return rc; } Are you sure cdev_device_add contains "device_create function"? Shouldn't device_create be called after class_create? Class_create is called much later inside the function device_cdev_sysfs_add later in hl_device_init function(line 1238). And device_cdev_sysfs_add contains this code. The hl_sysfs_init calls device_add_groups which calls sysfs_create_groups. Isn't this sysfs_create_groups function by any chance a group equivalent of device_create function? /* hl_sysfs_init() must be done after adding the device to the system */ rc = hl_sysfs_init(hdev); if (rc) { dev_err(hdev->dev, "failed to initialize sysfs\n"); goto delete_ctrl_cdev_device; } hdev->cdev_sysfs_created = true; Thanks for helps and regards, Chan Kim > -----Original Message----- > From: Greg KH <greg@xxxxxxxxx> > Sent: Thursday, April 29, 2021 3:32 AM > To: ckim@xxxxxxxxxx > Cc: kernelnewbies@xxxxxxxxxxxxxxxxx > Subject: Re: can't find device_create funtion in a driver containing cdev > (habanalabs) > > On Wed, Apr 28, 2021 at 10:46:21PM +0900, ckim@xxxxxxxxxx wrote: > > Hello list members, > > > > In habanalabs' goya chip driver, > > (https://elixir.bootlin.com/linux/v5.4.21/source/drivers/misc/habanala > > bs/dev > > ice.c#L1057) > > > > I can see cdev_init, cdev_add and class_create functions. > > > > Cdev_init is called insde device_init_cdev and cdev_add is called from > > device_cdev_sysfs_add -> cdev_device_add. > > > > I can see class_create being called too. But I couldn't find > > device_create function (which is used to make sysfs entry?) > > > > Can anyone tell me where device_create is called? (or where > > alternative method is being used?) > > Happens in the call to cdev_device_add() > _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies