Message ID | 1391685000-7346-1-git-send-email-mq@suse.cz |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On 02/06/2014 06:10 AM, Jan Moskyto Matejka wrote: > Commit cfd280c91253 ("net: sync some IP headers with glibc") changed a set of > define's to an enum (with no explanation why) which introduced a bug > in module mip6 where aliases are generated using the IPPROTO_* defines; > mip6 doesn't load if require_module called with the aliases from > xfrm_get_type(). I wrote that code and I apologize for not giving a reason at the time. There are two reasons: * It makes the debuginfo better and debugging easier via the enum. * It harmonizes those headers with what is already in glibc. Harmonizing this header with glibc makes it easier for userspace to synchronize changes and perhaps eventually use the UAPI headers directly. > Reverting this change back to define's to fix the aliases. > > modinfo mip6 (before this change) > alias: xfrm-type-10-IPPROTO_DSTOPTS > alias: xfrm-type-10-IPPROTO_ROUTING > > modinfo mip6 (after this change) > alias: xfrm-type-10-43 > alias: xfrm-type-10-60 Instead of reverting these changes I suggest someone fix whatever is processing that information. I do not condone the application of this patch for the above two reasons. Though you might argue that I should just make all debuggers and compilers better at dealing with DW_at_macro_info/DW_MACINFO_* debug info... and you also would not be wrong. I hope that answers your question. > Signed-off-by: Jan Moskyto Matejka <mq@suse.cz> > --- > include/uapi/linux/in6.h | 23 +++++++---------------- > 1 file changed, 7 insertions(+), 16 deletions(-) > > diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h > index 633b93c..e9a1d2d97 100644 > --- a/include/uapi/linux/in6.h > +++ b/include/uapi/linux/in6.h > @@ -128,22 +128,13 @@ struct in6_flowlabel_req { > * IPV6 extension headers > */ > #if __UAPI_DEF_IPPROTO_V6 > -enum { > - IPPROTO_HOPOPTS = 0, /* IPv6 hop-by-hop options */ > -#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS > - IPPROTO_ROUTING = 43, /* IPv6 routing header */ > -#define IPPROTO_ROUTING IPPROTO_ROUTING > - IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header */ > -#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT > - IPPROTO_ICMPV6 = 58, /* ICMPv6 */ > -#define IPPROTO_ICMPV6 IPPROTO_ICMPV6 > - IPPROTO_NONE = 59, /* IPv6 no next header */ > -#define IPPROTO_NONE IPPROTO_NONE > - IPPROTO_DSTOPTS = 60, /* IPv6 destination options */ > -#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS > - IPPROTO_MH = 135, /* IPv6 mobility header */ > -#define IPPROTO_MH IPPROTO_MH > -}; > +#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */ > +#define IPPROTO_ROUTING 43 /* IPv6 routing header */ > +#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ > +#define IPPROTO_ICMPV6 58 /* ICMPv6 */ > +#define IPPROTO_NONE 59 /* IPv6 no next header */ > +#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */ > +#define IPPROTO_MH 135 /* IPv6 mobility header */ > #endif /* __UAPI_DEF_IPPROTO_V6 */ > > /* > Cheers, Carlos. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Feb 6, 2014 at 1:33 PM, Carlos O'Donell <carlos@redhat.com> wrote: > On 02/06/2014 06:10 AM, Jan Moskyto Matejka wrote: >> Reverting this change back to define's to fix the aliases. >> >> modinfo mip6 (before this change) >> alias: xfrm-type-10-IPPROTO_DSTOPTS >> alias: xfrm-type-10-IPPROTO_ROUTING >> >> modinfo mip6 (after this change) >> alias: xfrm-type-10-43 >> alias: xfrm-type-10-60 > > Instead of reverting these changes I suggest someone fix > whatever is processing that information. It is stringfy by c preprocessor. enum should be processed after preprocessing, therefore fails to be converted to it real value at preprocessing stage. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Jan Moskyto Matejka <mq@suse.cz> Date: Thu, 6 Feb 2014 12:10:00 +0100 > Commit cfd280c91253 ("net: sync some IP headers with glibc") changed a set of > define's to an enum (with no explanation why) which introduced a bug > in module mip6 where aliases are generated using the IPPROTO_* defines; > mip6 doesn't load if require_module called with the aliases from > xfrm_get_type(). > > Reverting this change back to define's to fix the aliases. > > modinfo mip6 (before this change) > alias: xfrm-type-10-IPPROTO_DSTOPTS > alias: xfrm-type-10-IPPROTO_ROUTING > > modinfo mip6 (after this change) > alias: xfrm-type-10-43 > alias: xfrm-type-10-60 > > Signed-off-by: Jan Moskyto Matejka <mq@suse.cz> I have to apply this, thanks Jan. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index 633b93c..e9a1d2d97 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h @@ -128,22 +128,13 @@ struct in6_flowlabel_req { * IPV6 extension headers */ #if __UAPI_DEF_IPPROTO_V6 -enum { - IPPROTO_HOPOPTS = 0, /* IPv6 hop-by-hop options */ -#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS - IPPROTO_ROUTING = 43, /* IPv6 routing header */ -#define IPPROTO_ROUTING IPPROTO_ROUTING - IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header */ -#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT - IPPROTO_ICMPV6 = 58, /* ICMPv6 */ -#define IPPROTO_ICMPV6 IPPROTO_ICMPV6 - IPPROTO_NONE = 59, /* IPv6 no next header */ -#define IPPROTO_NONE IPPROTO_NONE - IPPROTO_DSTOPTS = 60, /* IPv6 destination options */ -#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS - IPPROTO_MH = 135, /* IPv6 mobility header */ -#define IPPROTO_MH IPPROTO_MH -}; +#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */ +#define IPPROTO_ROUTING 43 /* IPv6 routing header */ +#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ +#define IPPROTO_ICMPV6 58 /* ICMPv6 */ +#define IPPROTO_NONE 59 /* IPv6 no next header */ +#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */ +#define IPPROTO_MH 135 /* IPv6 mobility header */ #endif /* __UAPI_DEF_IPPROTO_V6 */ /*
Commit cfd280c91253 ("net: sync some IP headers with glibc") changed a set of define's to an enum (with no explanation why) which introduced a bug in module mip6 where aliases are generated using the IPPROTO_* defines; mip6 doesn't load if require_module called with the aliases from xfrm_get_type(). Reverting this change back to define's to fix the aliases. modinfo mip6 (before this change) alias: xfrm-type-10-IPPROTO_DSTOPTS alias: xfrm-type-10-IPPROTO_ROUTING modinfo mip6 (after this change) alias: xfrm-type-10-43 alias: xfrm-type-10-60 Signed-off-by: Jan Moskyto Matejka <mq@suse.cz> --- include/uapi/linux/in6.h | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-)