Re: [PATCH v2] hv_sock: Add the support of hibernation
On Wed, Sep 25, 2019 at 09:34:13PM +, Dexuan Cui wrote: Add the necessary dummy callbacks for hibernation. Signed-off-by: Dexuan Cui Acked-by: David S. Miller Queued up for hyperv-next, thanks! -- Thanks, Sasha
RE: [PATCH v2] hv_sock: Add the support of hibernation
> From: linux-hyperv-ow...@vger.kernel.org > On Behalf Of kbuild test robot > Sent: Thursday, September 26, 2019 9:19 PM > > Hi Dexuan, > > Thank you for the patch! Yet something to improve: > > >> net//vmw_vsock/hyperv_transport.c:970:3: error: 'struct hv_driver' has no > member named 'suspend' > .suspend = hvs_suspend, > ^~~ This is a false alarm. Your code base needs to be merged with the latest Linus's tree, which has the prerequisite patch: 271b2224d42f ("Drivers: hv: vmbus: Implement suspend/resume for VSC drivers for hibernation") Thanks, -- Dexuan
Re: [PATCH v2] hv_sock: Add the support of hibernation
Hi Dexuan, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] [cannot apply to v5.3 next-20190925] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Dexuan-Cui/hv_sock-Add-the-support-of-hibernation/20190926-053950 config: x86_64-rhel-7.6 (attached as .config) compiler: gcc-7 (Debian 7.4.0-13) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All error/warnings (new ones prefixed by >>): >> net//vmw_vsock/hyperv_transport.c:970:3: error: 'struct hv_driver' has no >> member named 'suspend' .suspend = hvs_suspend, ^~~ >> net//vmw_vsock/hyperv_transport.c:970:13: error: initialization from >> incompatible pointer type [-Werror=incompatible-pointer-types] .suspend = hvs_suspend, ^~~ net//vmw_vsock/hyperv_transport.c:970:13: note: (near initialization for 'hvs_drv.shutdown') >> net//vmw_vsock/hyperv_transport.c:971:3: error: 'struct hv_driver' has no >> member named 'resume'; did you mean 'remove'? .resume = hvs_resume, ^~ remove >> net//vmw_vsock/hyperv_transport.c:971:13: warning: excess elements in struct >> initializer .resume = hvs_resume, ^~ net//vmw_vsock/hyperv_transport.c:971:13: note: (near initialization for 'hvs_drv') cc1: some warnings being treated as errors vim +970 net//vmw_vsock/hyperv_transport.c 963 964 static struct hv_driver hvs_drv = { 965 .name = "hv_sock", 966 .hvsock = true, 967 .id_table = id_table, 968 .probe = hvs_probe, 969 .remove = hvs_remove, > 970 .suspend= hvs_suspend, > 971 .resume = hvs_resume, 972 }; 973 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip
[PATCH v2] hv_sock: Add the support of hibernation
Add the necessary dummy callbacks for hibernation. Signed-off-by: Dexuan Cui Acked-by: David S. Miller --- In v2: Added David's Acked-by. Removed [net-next] from the Subject. @Sasha, can you please pick this up into the hyper-v tree? net/vmw_vsock/hyperv_transport.c | 20 1 file changed, 20 insertions(+) diff --git a/net/vmw_vsock/hyperv_transport.c b/net/vmw_vsock/hyperv_transport.c index f2084e3f7aa4..4c02e38aa728 100644 --- a/net/vmw_vsock/hyperv_transport.c +++ b/net/vmw_vsock/hyperv_transport.c @@ -930,6 +930,24 @@ static int hvs_remove(struct hv_device *hdev) return 0; } +/* hv_sock connections can not persist across hibernation, and all the hv_sock + * channels are forced to be rescinded before hibernation: see + * vmbus_bus_suspend(). Here the dummy hvs_suspend() and hvs_resume() + * are only needed because hibernation requires that every vmbus device's + * driver should have a .suspend and .resume callback: see vmbus_suspend(). + */ +static int hvs_suspend(struct hv_device *hv_dev) +{ + /* Dummy */ + return 0; +} + +static int hvs_resume(struct hv_device *dev) +{ + /* Dummy */ + return 0; +} + /* This isn't really used. See vmbus_match() and vmbus_probe() */ static const struct hv_vmbus_device_id id_table[] = { {}, @@ -941,6 +959,8 @@ static struct hv_driver hvs_drv = { .id_table = id_table, .probe = hvs_probe, .remove = hvs_remove, + .suspend= hvs_suspend, + .resume = hvs_resume, }; static int __init hvs_init(void) -- 2.19.1