SH> 1. this will only trigger if CONFIG_IPV6=y, not if it =m. So you SH> might have meant SH> #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) Ah, okay, right. >> + addrs = ckpt_netdev_inet6_addrs(dev->ip6_ptr, addrs, max, abuf); >> + if (addrs == -E2BIG) { >> + read_unlock(&dev_base_lock); >> + goto retry; >> + } SH> This is the second problem. If CONFIG_IPV6=n or CONFIG_IPV6=m, then SH> ckpt_netdev_inet6_addrs() will return -ENOSYS, and you'll fail here. SH> So in those cases there is now no way to do a checkpoint with SH> CHECKPOINT_NETNS (or without CHECKPOINT_NONETNS :). SH> The fix of course can't be quite as simple as ignoring return SH> value of -ENOSYS since you'll have lost the passed-in addrs from SH> ckpt_netdev_inet4_addrs. If I change it to compile in with CONFIG_IPV6_MODULE as you stated above, then it won't return -ENOSYS, right? The code will still be there, and will not traverse the ipv6 address list (if I make it check for an empty dev->ip6_ptr) until the module is loaded and the devices gain some IPv6 information. I'll test this and resend the patch appropriately. Thanks! -- Dan Smith IBM Linux Technology Center email: danms@xxxxxxxxxx _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers