> On 19 Mar 2019, at 15.24, Marcin Dziegielewski <marcin.dziegielewski@xxxxxxxxx> wrote: > > When we trigger nvm target remove during device hot unplug, we > have a chance to hit general protection fault caused by use of > nvm_dev which was freed from another (hot unplug) thread (in > nvm_unregister function). > > This patch introduce lock in nvme_ioctl_dev_remove function to > prevent us before a situation like described above. > > Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@xxxxxxxxx> > --- > drivers/lightnvm/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c > index 5f82036..84f0b9a 100644 > --- a/drivers/lightnvm/core.c > +++ b/drivers/lightnvm/core.c > @@ -1335,11 +1335,13 @@ static long nvm_ioctl_dev_remove(struct file *file, void __user *arg) > return -EINVAL; > } > > + down_read(&nvm_lock); > list_for_each_entry(dev, &nvm_devices, devices) { > ret = nvm_remove_tgt(dev, &remove); > if (!ret) > break; > } > + up_read(&nvm_lock); > > return ret; > } > -- > 1.8.3.1 Looks good to me. Reviewed-by: Javier González <javier@xxxxxxxxxxx>
Attachment:
signature.asc
Description: Message signed with OpenPGP