[PATCH] Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()

Michael Kelley (EOSG) Michael.H.Kelley at microsoft.com
Fri Jul 13 13:59:53 UTC 2018


From: Dexuan Cui  Sent: Thursday, July 12, 2018 10:53 PM
> 
> Before setting channel->rescind in vmbus_rescind_cleanup(), we should make
> sure the channel callback won't run any more, otherwise a high-level
> driver like pci_hyperv, which may be infinitely waiting for the host VSP's
> response and notices the channel has been rescinded, can't safely give
> up: e.g., in hv_pci_protocol_negotiation() -> wait_for_response(), it's
> unsafe to exit from wait_for_response() and proceed with the on-stack
> variable "comp_pkt" popped. The issue was originally spotted by
> Michael Kelley <mikelley at microsoft.com>.
> 
> In vmbus_close_internal(), the patch also minimizes the range protected by
> disabling/enabling channel->callback_event: we don't really need that for
> the whole function.
> 
> Signed-off-by: Dexuan Cui <decui at microsoft.com>
> Cc: stable at vger.kernel.org
> Cc: K. Y. Srinivasan <kys at microsoft.com>
> Cc: Stephen Hemminger <sthemmin at microsoft.com>
> Cc: Michael Kelley <mikelley at microsoft.com>

Reviewed-by: Michael Kelley <mikelley at microsoft.com>


More information about the devel mailing list