From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx> > > >>> @@ -886,6 +901,8 @@ int vmbus_teardown_gpadl(struct vmbus_channel *channel, struct vmbus_gpadl *gpad > >>> if (ret) > >>> pr_warn("Fail to set mem host visibility in GPADL teardown %d.\n", ret); > >> > >> Will this be called only if vmbus_establish_gpad() is successful? If not, you > >> might want to skip set_memory_encrypted() call for decrypted = false case. > > > > It's only called if vmbus_establish_gpadl() is successful. I agree > > we don't want to call set_memory_encrypted() if the > > set_memory_decrypted() wasn't executed or it failed. But > > vmbus_teardown_gpadl() is never called with decrypted = false. > > Since you rely on vmbus_teardown_gpadl() callers, personally I think it > is better to add that check. It is up to you. > In my judgment, a check isn't really necessary. The structure of the GPADL code has been stable for a long time, and I'm not aware of anything pending that would motivate a change. And if something did change to call vmbus_teardown_gpadl() with the memory still encrypted, the call to set_memory_encrypted() will cause an immediate error and a WARN_ONCE from Rick's patch to __set_memory_enc_pgtable(). The problem won't go unnoticed. Michael