[PATCH 1/3] C/R: Support for IPv6 addresses on network devices (v2)

Dan Smith danms at us.ibm.com
Wed Apr 7 07:02:15 PDT 2010

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> 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.


Dan Smith
IBM Linux Technology Center
email: danms at us.ibm.com

More information about the Containers mailing list