1) Fix races between network object removal and sysfs accesses.
From Stephen Hemminger.
2) netlink_set_err() accidently returns negated error codes, from
Pablo Neira Ayuso.
3) A bogus change added unreasonable checks to the packet scheduler
rate estimator config operations, fix from Jarek Poplawski.
4) Tokenring module missing license, from Meelis Roos.
5) tmspci driver does request_irq() before datastructures are fully
setup, also from Meelis Roos.
6) Tigon3 5906 link handling fix from Matt Carlson.
7) Resolve bonding ipv6 regression, an identical situation wrt. SCTP,
and all such possible problems in the future.
If a module wants to do anything non-trivial with ipv6 such as
access the neighbour discovery cache or similar (this is what
the bonding ipv6 code needs to do) it has to reference symbols
in the ipv6 module and thus gets a dependency upon it.
Note that these aren't the kinds of routines we can export into a
seperate library module, like we could (and in fact already do) for
ipv6 header parsing helper functions and stuff like that. The stuff
we are talking about here is stateful.
This situation creates a problem because when people want to
disable IPV6 for whatever reason, they simply disable the ipv6
module entirely in their /etc/modules.conf They do this for a
number of reasons, often it's because of application issues or they
have a site-wide policy to disable ipv6 on their networks, etc.
They do it this way because distributions, of course, enable
everything. So it's not a matter of "changing a kernel option."
Therefore, with such ipv6 dependencies, if you disable ipv6 you
also lose bonding and whatever else has a dependency on ipv6, which
is undesirable. Like bonding, SCTP has this problem too.
So add a 'disable' module option to ipv6 which simply causes it to
disallow ipv6 socket creation and also makes it not add default
ipv6 addresses to any interfaces.
...