Re: [PATCH 081/117] Staging: hv: vmbus: Introduce a lock to protect the ext field in hv_device

Greg KH
2011-08-24T03:08:48Z

On Wed, Aug 24, 2011 at 12:55:12AM +0000, KY Srinivasan wrote:
>
>
> > -----Original Message-----
> > From: Greg KH [mailto:greg@kroah.com]
> > Sent: Tuesday, August 23, 2011 7:08 PM
> > To: KY Srinivasan
> > Cc: gregkh@suse.de; linux-kernel@vger.kernel.org;
> > devel@linuxdriverproject.org; virtualization@lists.osdl.org; Haiyang Zhang
> > Subject: Re: [PATCH 081/117] Staging: hv: vmbus: Introduce a lock to protect the
> > ext field in hv_device
> >
> > On Fri, Jul 15, 2011 at 10:47:09AM -0700, K. Y. Srinivasan wrote:
> > > The current mechanism for handling references in broken.
> > > Introduce a lock to protect the ext field in hv_device.
> >
> > Why would that lock ever be needed? How can things change to this
> > pointer in different ways like you are thinking it could? Doesn't the
> > reference counting in the device itself handle this properly?
>
> This is to deal with a potential race condition between the driver being
> unloaded and incoming traffic from the VMBUS side. The ext pointer is
> device specific (either pointing to a storage or a network device) and what
> we are protecting is the pointer being set to NULL from the unload side when
> we might have a racing access from the interrupt side (on the incoming vmbus
> traffic).

I still don't think this is needed at all, the drivers should not have
to worry about this. Something is wrong with the design if it is, as no
other bus needs something like this, right?

greg k-h