On Tue, Feb 14, 2006 at 04:50:13PM -0800, David Stevens wrote:
> [EMAIL PROTECTED] wrote on 02/14/2006 04:23:28 PM:
>
> > In linux/igmp.h:
> >
> > struct ip_mc_list
> > {
> > struct in_device *interface;
> > unsigned long multiaddr;
> > struct ip_sf_list *sources;
> >
> > and AFAICS all users of ->multiaddr assume it's __be32. Are there any
> > good reasons to use unsigned long here? On 32bit boxen it's all the
> same,
> > but on 64bit ones things might get funnier...
>
> Though I'm not the "Dave" you asked, I think I'm the last one to
> touch this structure...below is my answer to add to the real Dave's. :-)
> I think it's historical, and has no need to be "unsigned long".
> Also, the order of these fields shouldn't matter, so if rearranging
> them provides pad, cache or alignment benefits, that should work too.
> Similarly, the historical "char" flags and counters and "int
> users"
> could/should be "unsigned char" and "unsigned" respectively, as the
> newer source filtering fields already are, if you want to do that too. :-)
The only real concern here is if there's a _very_ hot path where some
64bit targets would win from unsigned long. I don't see any, but...
A bit of context: I'm doing a _long_ series of endianness annotations in
net/*; this was one the places that did show up.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html