On Wed, Nov 29, 2017 at 04:18:30PM +0000, Bart Van Assche wrote: > As the above patch description shows it can happen that the SCSI core calls > get_device() after the device reference count has reached zero and before > the memory for struct device is freed. Although the above patch looks fine > to me, would you consider it acceptable to modify get_device() such that it > uses kobject_get_unless_zero() instead of kobject_get()? I'm asking this > because that change would help to reduce the complexity of the already too > complicated SCSI core. I don't think we can just modify get_device, but we can add a new get_device_unless_zero. In fact I have an open coded variant of that in nvme, and was planning to submit one for the current merge window..