> -----Original Message----- > From: Greg KH [mailto:greg@xxxxxxxxx] > Sent: Wednesday, May 04, 2011 12:32 PM > To: KY Srinivasan > Cc: gregkh@xxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devel@xxxxxxxxxxxxxxxxxxxxxx; virtualization@xxxxxxxxxxxxxx > Subject: Re: various vmbus review comments > > On Wed, May 04, 2011 at 04:20:11PM +0000, KY Srinivasan wrote: > > > > > > > -----Original Message----- > > > From: Greg KH [mailto:greg@xxxxxxxxx] > > > Sent: Tuesday, May 03, 2011 4:47 PM > > > To: KY Srinivasan > > > Cc: gregkh@xxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > > > - module reference counting. Are you sure you got it all right > > > for the individual modules that attach to the bus? I don't > > > see any reference counting happening, is that correct? > > > > For this round, I want to concentrate on just the vmbus driver. So, > > module reference counting is I don't think an issue for the vmbus driver > > given that the driver is not unlodable. Once I am done with the vmbus driver > > I will address the module reference counting issues for other drivers. > > No, I am referring to the module reference counting of the bus drivers > that register with the vmbus core. You aren't doing that at all, and > you probably need to make sure that this isn't needed. That is > concentrating on the vmbus driver. I audited the block and the net drivers. As part of their exit routine, they invoke vmbus_child_driver_unregister() after properly cleaning up all the devices they are managing. Do you still see an issue with regards to module reference counting. > > > I will also address your comment on static initialization hv_driver instances > > as part of other driver cleanup. > > No, please do this now as it will show how to properly interact with the > vmbus core code in the correct manner. Hopefully that will be correct, > but I have a feeling that it will show you some places in the API that > need to be changed... As opposed to run-time initialization of fields such as probe, etc; I have initialized them statically. For instance, in the blkvsc driver: /* The one and only one */ static struct storvsc_driver blkvsc_drv = { .base.probe = blkvsc_probe, .base.remove = blkvsc_remove, .base.shutdown = blkvsc_shutdown, }; Is this what you had in mind. Regards, K. Y _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel