linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] video: hyperv_fb: Fix hibernation for the deferred IO feature
@ 2019-11-20  7:13 Dexuan Cui
  2019-11-21  2:47 ` Wei Hu
  0 siblings, 1 reply; 3+ messages in thread
From: Dexuan Cui @ 2019-11-20  7:13 UTC (permalink / raw)
  To: kys, haiyangz, sthemmin, sashal, b.zolnierkie, linux-hyperv,
	dri-devel, linux-fbdev, linux-kernel, mikelley, Alexander.Levin
  Cc: weh, Dexuan Cui

fb_deferred_io_work() can access the vmbus ringbuffer by calling
fbdefio->deferred_io() -> synthvid_deferred_io() -> synthvid_update().

Because the vmbus ringbuffer is inaccessible between hvfb_suspend()
and hvfb_resume(), we must cancel info->deferred_work before calling
vmbus_close() and then reschedule it after we reopen the channel
in hvfb_resume().

Fixes: a4ddb11d297e ("video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver")
Fixes: 824946a8b6fb ("video: hyperv_fb: Add the support of hibernation")
Signed-off-by: Dexuan Cui <decui@microsoft.com>
---

This patch fixes the 2 aforementioned patches on Sasha Levin's Hyper-V tree's
hyperv-next branch:
https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/log/?h=hyperv-next

The 2 aforementioned patches have not appeared in the mainline yet, so
please pick up this patch onto he same hyperv-next branch.

 drivers/video/fbdev/hyperv_fb.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
index 4cd27e5172a1..08bc0dfb5ce7 100644
--- a/drivers/video/fbdev/hyperv_fb.c
+++ b/drivers/video/fbdev/hyperv_fb.c
@@ -1194,6 +1194,7 @@ static int hvfb_suspend(struct hv_device *hdev)
 	fb_set_suspend(info, 1);
 
 	cancel_delayed_work_sync(&par->dwork);
+	cancel_delayed_work_sync(&info->deferred_work);
 
 	par->update_saved = par->update;
 	par->update = false;
@@ -1227,6 +1228,7 @@ static int hvfb_resume(struct hv_device *hdev)
 	par->fb_ready = true;
 	par->update = par->update_saved;
 
+	schedule_delayed_work(&info->deferred_work, info->fbdefio->delay);
 	schedule_delayed_work(&par->dwork, HVFB_UPDATE_DELAY);
 
 	/* 0 means do resume */
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* RE: [PATCH] video: hyperv_fb: Fix hibernation for the deferred IO feature
  2019-11-20  7:13 [PATCH] video: hyperv_fb: Fix hibernation for the deferred IO feature Dexuan Cui
@ 2019-11-21  2:47 ` Wei Hu
  2019-11-21  6:04   ` Wei Hu
  0 siblings, 1 reply; 3+ messages in thread
From: Wei Hu @ 2019-11-21  2:47 UTC (permalink / raw)
  To: Dexuan Cui, KY Srinivasan, Haiyang Zhang, Stephen Hemminger,
	sashal, b.zolnierkie, linux-hyperv, dri-devel, linux-fbdev,
	linux-kernel, Michael Kelley, Sasha Levin

> -----Original Message-----
> From: Dexuan Cui <decui@microsoft.com>
> Sent: Wednesday, November 20, 2019 3:14 PM
> To: KY Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>; Stephen Hemminger <sthemmin@microsoft.com>;
> sashal@kernel.org; b.zolnierkie@samsung.com; linux-hyperv@vger.kernel.org;
> dri-devel@lists.freedesktop.org; linux-fbdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; Michael Kelley <mikelley@microsoft.com>; Sasha Levin
> <Alexander.Levin@microsoft.com>
> Cc: Wei Hu <weh@microsoft.com>; Dexuan Cui <decui@microsoft.com>
> Subject: [PATCH] video: hyperv_fb: Fix hibernation for the deferred IO feature
> 
> fb_deferred_io_work() can access the vmbus ringbuffer by calling
> fbdefio->deferred_io() -> synthvid_deferred_io() -> synthvid_update().
> 
> Because the vmbus ringbuffer is inaccessible between hvfb_suspend() and
> hvfb_resume(), we must cancel info->deferred_work before calling
> vmbus_close() and then reschedule it after we reopen the channel in
> hvfb_resume().
> 
> Fixes: a4ddb11d297e ("video: hyperv: hyperv_fb: Support deferred IO for
> Hyper-V frame buffer driver")
> Fixes: 824946a8b6fb ("video: hyperv_fb: Add the support of hibernation")
> Signed-off-by: Dexuan Cui <decui@microsoft.com>
> ---
> 
> This patch fixes the 2 aforementioned patches on Sasha Levin's Hyper-V tree's
> hyperv-next branch:
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kern
> el.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fhyperv%2Flinux.git%2Flog
> %2F%3Fh%3Dhyperv-
> next&amp;data=02%7C01%7Cweh%40microsoft.com%7C451143ff78f04401d9
> 6f08d76d893a84%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637
> 098308493217121&amp;sdata=P2fo%2F1TJUMIj5FtJCOp2QwDrghhVfPSCEJ4f1
> vkOXvI%3D&amp;reserved=0
> 
> The 2 aforementioned patches have not appeared in the mainline yet, so please
> pick up this patch onto he same hyperv-next branch.
> 
>  drivers/video/fbdev/hyperv_fb.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
> index 4cd27e5172a1..08bc0dfb5ce7 100644
> --- a/drivers/video/fbdev/hyperv_fb.c
> +++ b/drivers/video/fbdev/hyperv_fb.c
> @@ -1194,6 +1194,7 @@ static int hvfb_suspend(struct hv_device *hdev)
>  	fb_set_suspend(info, 1);
> 
>  	cancel_delayed_work_sync(&par->dwork);
> +	cancel_delayed_work_sync(&info->deferred_work);
> 
>  	par->update_saved = par->update;
>  	par->update = false;
> @@ -1227,6 +1228,7 @@ static int hvfb_resume(struct hv_device *hdev)
>  	par->fb_ready = true;
>  	par->update = par->update_saved;
> 
> +	schedule_delayed_work(&info->deferred_work, info->fbdefio->delay);
>  	schedule_delayed_work(&par->dwork, HVFB_UPDATE_DELAY);
> 
>  	/* 0 means do resume */
> --
> 2.19.1

Signed-off-by: Wei Hu <weh@microsoft.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] video: hyperv_fb: Fix hibernation for the deferred IO feature
  2019-11-21  2:47 ` Wei Hu
@ 2019-11-21  6:04   ` Wei Hu
  0 siblings, 0 replies; 3+ messages in thread
From: Wei Hu @ 2019-11-21  6:04 UTC (permalink / raw)
  To: Dexuan Cui, KY Srinivasan, Haiyang Zhang, Stephen Hemminger,
	sashal, b.zolnierkie, linux-hyperv, dri-devel, linux-fbdev,
	linux-kernel, Michael Kelley, Sasha Levin

DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFdlaSBIdQ0KPiBTZW50OiAy
MDE5xOoxMdTCMjHI1SAxMDo0Nw0KPiBUbzogRGV4dWFuIEN1aSA8ZGVjdWlAbWljcm9zb2Z0LmNv
bT47IEtZIFNyaW5pdmFzYW4gPGt5c0BtaWNyb3NvZnQuY29tPjsNCj4gSGFpeWFuZyBaaGFuZyA8
aGFpeWFuZ3pAbWljcm9zb2Z0LmNvbT47IFN0ZXBoZW4gSGVtbWluZ2VyDQo+IDxzdGhlbW1pbkBt
aWNyb3NvZnQuY29tPjsgc2FzaGFsQGtlcm5lbC5vcmc7IGIuem9sbmllcmtpZUBzYW1zdW5nLmNv
bTsNCj4gbGludXgtaHlwZXJ2QHZnZXIua2VybmVsLm9yZzsgZHJpLWRldmVsQGxpc3RzLmZyZWVk
ZXNrdG9wLm9yZzsgbGludXgtDQo+IGZiZGV2QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVs
QHZnZXIua2VybmVsLm9yZzsgTWljaGFlbCBLZWxsZXkNCj4gPG1pa2VsbGV5QG1pY3Jvc29mdC5j
b20+OyBTYXNoYSBMZXZpbiA8QWxleGFuZGVyLkxldmluQG1pY3Jvc29mdC5jb20+DQo+IFN1Ympl
Y3Q6IFJFOiBbUEFUQ0hdIHZpZGVvOiBoeXBlcnZfZmI6IEZpeCBoaWJlcm5hdGlvbiBmb3IgdGhl
IGRlZmVycmVkIElPDQo+IGZlYXR1cmUNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t
LS0NCj4gPiBGcm9tOiBEZXh1YW4gQ3VpIDxkZWN1aUBtaWNyb3NvZnQuY29tPg0KPiA+IFNlbnQ6
IFdlZG5lc2RheSwgTm92ZW1iZXIgMjAsIDIwMTkgMzoxNCBQTQ0KPiA+IFRvOiBLWSBTcmluaXZh
c2FuIDxreXNAbWljcm9zb2Z0LmNvbT47IEhhaXlhbmcgWmhhbmcNCj4gPiA8aGFpeWFuZ3pAbWlj
cm9zb2Z0LmNvbT47IFN0ZXBoZW4gSGVtbWluZ2VyDQo+IDxzdGhlbW1pbkBtaWNyb3NvZnQuY29t
PjsNCj4gPiBzYXNoYWxAa2VybmVsLm9yZzsgYi56b2xuaWVya2llQHNhbXN1bmcuY29tOyBsaW51
eC1oeXBlcnZAdmdlci5rZXJuZWwub3JnOw0KPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv
cC5vcmc7IGxpbnV4LWZiZGV2QHZnZXIua2VybmVsLm9yZzsgbGludXgtDQo+ID4ga2VybmVsQHZn
ZXIua2VybmVsLm9yZzsgTWljaGFlbCBLZWxsZXkgPG1pa2VsbGV5QG1pY3Jvc29mdC5jb20+OyBT
YXNoYQ0KPiBMZXZpbg0KPiA+IDxBbGV4YW5kZXIuTGV2aW5AbWljcm9zb2Z0LmNvbT4NCj4gPiBD
YzogV2VpIEh1IDx3ZWhAbWljcm9zb2Z0LmNvbT47IERleHVhbiBDdWkgPGRlY3VpQG1pY3Jvc29m
dC5jb20+DQo+ID4gU3ViamVjdDogW1BBVENIXSB2aWRlbzogaHlwZXJ2X2ZiOiBGaXggaGliZXJu
YXRpb24gZm9yIHRoZSBkZWZlcnJlZCBJTyBmZWF0dXJlDQo+ID4NCj4gPiBmYl9kZWZlcnJlZF9p
b193b3JrKCkgY2FuIGFjY2VzcyB0aGUgdm1idXMgcmluZ2J1ZmZlciBieSBjYWxsaW5nDQo+ID4g
ZmJkZWZpby0+ZGVmZXJyZWRfaW8oKSAtPiBzeW50aHZpZF9kZWZlcnJlZF9pbygpIC0+IHN5bnRo
dmlkX3VwZGF0ZSgpLg0KPiA+DQo+ID4gQmVjYXVzZSB0aGUgdm1idXMgcmluZ2J1ZmZlciBpcyBp
bmFjY2Vzc2libGUgYmV0d2VlbiBodmZiX3N1c3BlbmQoKSBhbmQNCj4gPiBodmZiX3Jlc3VtZSgp
LCB3ZSBtdXN0IGNhbmNlbCBpbmZvLT5kZWZlcnJlZF93b3JrIGJlZm9yZSBjYWxsaW5nDQo+ID4g
dm1idXNfY2xvc2UoKSBhbmQgdGhlbiByZXNjaGVkdWxlIGl0IGFmdGVyIHdlIHJlb3BlbiB0aGUg
Y2hhbm5lbCBpbg0KPiA+IGh2ZmJfcmVzdW1lKCkuDQo+ID4NCj4gPiBGaXhlczogYTRkZGIxMWQy
OTdlICgidmlkZW86IGh5cGVydjogaHlwZXJ2X2ZiOiBTdXBwb3J0IGRlZmVycmVkIElPIGZvcg0K
PiA+IEh5cGVyLVYgZnJhbWUgYnVmZmVyIGRyaXZlciIpDQo+ID4gRml4ZXM6IDgyNDk0NmE4YjZm
YiAoInZpZGVvOiBoeXBlcnZfZmI6IEFkZCB0aGUgc3VwcG9ydCBvZiBoaWJlcm5hdGlvbiIpDQo+
ID4gU2lnbmVkLW9mZi1ieTogRGV4dWFuIEN1aSA8ZGVjdWlAbWljcm9zb2Z0LmNvbT4NCj4gPiAt
LS0NCj4gPg0KPiA+IFRoaXMgcGF0Y2ggZml4ZXMgdGhlIDIgYWZvcmVtZW50aW9uZWQgcGF0Y2hl
cyBvbiBTYXNoYSBMZXZpbidzIEh5cGVyLVYgdHJlZSdzDQo+ID4gaHlwZXJ2LW5leHQgYnJhbmNo
Og0KPiA+DQo+IGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20v
P3VybD1odHRwcyUzQSUyRiUyRmdpdC5rZXJuDQo+ID4gZWwub3JnJTJGcHViJTJGc2NtJTJGbGlu
dXglMkZrZXJuZWwlMkZnaXQlMkZoeXBlcnYlMkZsaW51eC5naXQlMkZsb2cNCj4gPiAlMkYlM0Zo
JTNEaHlwZXJ2LQ0KPiA+DQo+IG5leHQmYW1wO2RhdGE9MDIlN0MwMSU3Q3dlaCU0MG1pY3Jvc29m
dC5jb20lN0M0NTExNDNmZjc4ZjA0NDAxZDkNCj4gPiA2ZjA4ZDc2ZDg5M2E4NCU3QzcyZjk4OGJm
ODZmMTQxYWY5MWFiMmQ3Y2QwMTFkYjQ3JTdDMSU3QzAlN0M2MzcNCj4gPg0KPiAwOTgzMDg0OTMy
MTcxMjEmYW1wO3NkYXRhPVAyZm8lMkYxVEpVTUlqNUZ0SkNPcDJRd0RyZ2hoVmZQU0NFSjRmMQ0K
PiA+IHZrT1h2SSUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiA+DQo+ID4gVGhlIDIgYWZvcmVtZW50aW9u
ZWQgcGF0Y2hlcyBoYXZlIG5vdCBhcHBlYXJlZCBpbiB0aGUgbWFpbmxpbmUgeWV0LCBzbw0KPiBw
bGVhc2UNCj4gPiBwaWNrIHVwIHRoaXMgcGF0Y2ggb250byBoZSBzYW1lIGh5cGVydi1uZXh0IGJy
YW5jaC4NCj4gPg0KPiA+ICBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jIHwgMiArKw0K
PiA+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspDQo+ID4NCj4gPiBkaWZmIC0tZ2l0
IGEvZHJpdmVycy92aWRlby9mYmRldi9oeXBlcnZfZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv
aHlwZXJ2X2ZiLmMNCj4gPiBpbmRleCA0Y2QyN2U1MTcyYTEuLjA4YmMwZGZiNWNlNyAxMDA2NDQN
Cj4gPiAtLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jDQo+ID4gKysrIGIvZHJp
dmVycy92aWRlby9mYmRldi9oeXBlcnZfZmIuYw0KPiA+IEBAIC0xMTk0LDYgKzExOTQsNyBAQCBz
dGF0aWMgaW50IGh2ZmJfc3VzcGVuZChzdHJ1Y3QgaHZfZGV2aWNlICpoZGV2KQ0KPiA+ICAJZmJf
c2V0X3N1c3BlbmQoaW5mbywgMSk7DQo+ID4NCj4gPiAgCWNhbmNlbF9kZWxheWVkX3dvcmtfc3lu
YygmcGFyLT5kd29yayk7DQo+ID4gKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmluZm8tPmRl
ZmVycmVkX3dvcmspOw0KPiA+DQo+ID4gIAlwYXItPnVwZGF0ZV9zYXZlZCA9IHBhci0+dXBkYXRl
Ow0KPiA+ICAJcGFyLT51cGRhdGUgPSBmYWxzZTsNCj4gPiBAQCAtMTIyNyw2ICsxMjI4LDcgQEAg
c3RhdGljIGludCBodmZiX3Jlc3VtZShzdHJ1Y3QgaHZfZGV2aWNlICpoZGV2KQ0KPiA+ICAJcGFy
LT5mYl9yZWFkeSA9IHRydWU7DQo+ID4gIAlwYXItPnVwZGF0ZSA9IHBhci0+dXBkYXRlX3NhdmVk
Ow0KPiA+DQo+ID4gKwlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmluZm8tPmRlZmVycmVkX3dvcmss
IGluZm8tPmZiZGVmaW8tPmRlbGF5KTsNCj4gPiAgCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmcGFy
LT5kd29yaywgSFZGQl9VUERBVEVfREVMQVkpOw0KPiA+DQo+ID4gIAkvKiAwIG1lYW5zIGRvIHJl
c3VtZSAqLw0KPiA+IC0tDQo+ID4gMi4xOS4xDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBXZWkgSHUg
PHdlaEBtaWNyb3NvZnQuY29tPg0KDQpTb3JyeSwgcGxlYXNlIGRpc3JlZ2FyZCB0aGUgU2lnbmVk
LW9mZi1ieSBsaW5lIEkgYWRkZWQgYWJvdmUuIEl0IHdhcyBteSBtaXN0YWtlLg0Kc2hvdWxkIGJl
Og0KDQpSZXZpZXdlZC1ieTogV2VpIEh1IDx3ZWhAbWljcm9zb2Z0LmNvbT4NCg0KDQo

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-11-21  6:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-20  7:13 [PATCH] video: hyperv_fb: Fix hibernation for the deferred IO feature Dexuan Cui
2019-11-21  2:47 ` Wei Hu
2019-11-21  6:04   ` Wei Hu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).