From: Patrick McHardy Date: Thu, 25 Oct 2007 17:46:29 +0000 (+0200) Subject: iproute 2.6.23 incompatibility X-Git-Tag: v2.6.24-rc4~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66e529f579f45351828fc82d6ba2629cc6eb3ddd;p=thirdparty%2Fiproute2.git iproute 2.6.23 incompatibility Arkadiusz Miskiewicz wrote: > People are reporting that >> ip link set multicast on dev eth0 (Invalid argument) >> no longer works when using iproute 2.6.23 on kernel 2.6.21. >> >> On my testing machine it also fails: >> # ./ip link set eth0 multicast on >> RTNETLINK answers: Invalid argument It seems it fails to properly detect that your kernel is missing RTM_NEWLINK support. Apparently the reason is that the kernels I tested with return a different error in this situation. Signed-off-by: Patrick McHardy Signed-off-by: Stephen Hemminger --- diff --git a/ip/iplink.c b/ip/iplink.c index 8e0ed2ab9..f28f91c3d 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -107,7 +107,8 @@ static int accept_msg(const struct sockaddr_nl *who, { struct nlmsgerr *err = (struct nlmsgerr *)NLMSG_DATA(n); - if (n->nlmsg_type == NLMSG_ERROR && err->error == -EOPNOTSUPP) + if (n->nlmsg_type == NLMSG_ERROR && + (err->error == -EOPNOTSUPP || err->error == -EINVAL)) have_rtnl_newlink = 0; else have_rtnl_newlink = 1;