In the current Linux 2.6 implementation of net/ipv4/devinet.c the return codes of notifier_call_chain calls are never evaluated. For example, in inet_insert_ifa all notifiers that are interested in IP addresses being set on devices are informed of new IP addresses. But there is no return code evaluation: notifier_call_chain(&inetaddr_chain, NETDEV_UP, ifa); return 0; This behaviour is a problem for our qeth driver on s390. We have to register each IP address that is set on a network interface with our hardware. Otherwise, we do not get traffic destined for this IP address. There are cases when registering IP addresses with the hardware fails. In those cases we want to return error codes in our notifier function for event NETDEV_UP. However, the stack does not care about error codes and thinks that setting the IP address was successful. As a result, we have an inconsistency: the IP address is registered in the stack but not with our hardware. So, for a user everything looks ok, but no traffic for this IP address is coming through. A solution would be, that the stack evaluates error codes returned by notifier_call_chain. In case of an error, the IP address should be deleted from the device's ifa_list. Besides, this mis-behaviour of ignoring error codes exists for all kinds of net device events, for both IPv4 and IPv6. IMHO this should be changed; why do we have return codes if nobody cares about them??? Any comments? If it is agreed on that we should look at return codes, I could prepare a patch that fixes the problem. -- Regards, Thomas. - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html