Quoting Dan Smith (danms@xxxxxxxxxx): > 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 But it'll return -ENOSYS if CONFIG_IPV6=n. > 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 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers