[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f55b768e86e77fd9dc36aa7e2602c4f1fd7cd3b1.camel@redhat.com>
Date: Wed, 20 Mar 2019 14:50:04 +0200
From: Maxim Levitsky <mlevitsk@...hat.com>
To: Stefan Hajnoczi <stefanha@...il.com>
Cc: linux-nvme@...ts.infradead.org, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org, Jens Axboe <axboe@...com>,
Alex Williamson <alex.williamson@...hat.com>,
Keith Busch <keith.busch@...el.com>,
Christoph Hellwig <hch@....de>,
Sagi Grimberg <sagi@...mberg.me>,
Kirti Wankhede <kwankhede@...dia.com>,
"David S . Miller" <davem@...emloft.net>,
Mauro Carvalho Chehab <mchehab+samsung@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Wolfram Sang <wsa@...-dreams.de>,
Nicolas Ferre <nicolas.ferre@...rochip.com>,
"Paul E . McKenney" <paulmck@...ux.ibm.com>,
Paolo Bonzini <pbonzini@...hat.com>,
Liang Cunming <cunming.liang@...el.com>,
Liu Changpeng <changpeng.liu@...el.com>,
Fam Zheng <fam@...hon.net>, Amnon Ilan <ailan@...hat.com>,
John Ferlan <jferlan@...hat.com>
Subject: Re: [PATCH 7/9] nvme/core: add mdev interfaces
On Wed, 2019-03-20 at 11:46 +0000, Stefan Hajnoczi wrote:
> On Tue, Mar 19, 2019 at 04:41:14PM +0200, Maxim Levitsky wrote:
> > +int nvme_core_register_mdev_driver(struct nvme_mdev_driver *driver_ops)
> > +{
> > + struct nvme_ctrl *ctrl;
> > +
> > + if (mdev_driver_interface)
> > + return -EEXIST;
> > +
> > + mdev_driver_interface = driver_ops;
>
> Can mdev_driver_interface be accessed from two CPUs at the same time?
> mdev_driver_interface isn't protected by the mutex. The state_changed
> functions below also don't protect mdev_driver_interface.
It can be for sure.
However the only time it is updated is when the mdev core module load/unload
routines.
On module load the interface flips from NULL to a pointer to inside of the
module, so this should be safe, and when mdev module unloads, its reference
counter is 0, and all the callers first try to increase it and fail, they don't
call using this interface.
I might still be wrong with this reasoning though.
Best regards,
Maxim Levitsky
Powered by blists - more mailing lists