On 10/12/17 4:41 PM, Borislav Petkov wrote: > On Thu, Oct 12, 2017 at 04:11:18PM -0500, Brijesh Singh wrote: >> The sev_exit() will be called for all the psp_device instance. we need >> to set psp_misc_dev = NULL after deregistering the device. >> >> if (psp_misc_dev) { >> misc_deregister(psp_misc_dev); >> psp_misc_dev = NULL; > Right, except we assign that misc device to every psp device: > > psp->sev_misc = psp_misc_dev; > > so the question now is, how do you want this to work: the misc device > should be destroyed after the last psp device is destroyed or how? We don't know when the last psp device is getting destroyed. Since we are making the sev_misc_dev as a global variable then there is no reason for 'sev_misc' field in the psp_device. > Because after the first: > > psp_misc_dev = NULL; > > the respective psp->sev_misc will still keep references to that device > but the device itself will be already deregistered. And that sounds > strange. See my above comment, I think the simplest solution is remove psp->sev_misc