On Thu, May 19, 2016 at 05:26:44AM -0700, Dennis Dalessandro wrote: > static int hfi1_file_open(struct inode *inode, struct file *fp) > { > + struct hfi1_devdata *dd = container_of(inode->i_cdev, > + struct hfi1_devdata, > + user_cdev); > + > + /* Just take a ref now. Not all opens result in a context assign */ > + kobject_get(&dd->kobj); Eh? If dd->kobj is passed as the parent to hfi1_cdev_init then cdev core will do this for you, just confusing to duplicate it here?? > @@ -1007,6 +1009,15 @@ void hfi1_free_devdata(struct hfi1_devdata *dd) > rvt_dealloc_device(&dd->verbs_dev.rdi); Hurm. How are you synchronizing pci device removal with ioctls on the cdev? Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html