提交 ecd68853 编写于 作者: L Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [NET]: dev.c comment fixes
  [IPV6] ROUTE: Don't try less preferred routes for on-link routes.
  [IRDA]: *_DONGLE should depend on IRTTY_SIR
  [MAINTAINERS]: Add entry for netem
...@@ -1899,6 +1899,12 @@ M: James.Bottomley@HansenPartnership.com ...@@ -1899,6 +1899,12 @@ M: James.Bottomley@HansenPartnership.com
L: linux-scsi@vger.kernel.org L: linux-scsi@vger.kernel.org
S: Maintained S: Maintained
NETEM NETWORK EMULATOR
P: Stephen Hemminger
M: shemminger@osdl.org
L: netem@osdl.org
S: Maintained
NETFILTER/IPTABLES/IPCHAINS NETFILTER/IPTABLES/IPCHAINS
P: Rusty Russell P: Rusty Russell
P: Marc Boucher P: Marc Boucher
......
...@@ -33,7 +33,7 @@ config DONGLE ...@@ -33,7 +33,7 @@ config DONGLE
config ESI_DONGLE config ESI_DONGLE
tristate "ESI JetEye PC dongle" tristate "ESI JetEye PC dongle"
depends on DONGLE && IRDA depends on IRTTY_SIR && DONGLE && IRDA
help help
Say Y here if you want to build support for the Extended Systems Say Y here if you want to build support for the Extended Systems
JetEye PC dongle. To compile it as a module, choose M here. The ESI JetEye PC dongle. To compile it as a module, choose M here. The ESI
...@@ -44,7 +44,7 @@ config ESI_DONGLE ...@@ -44,7 +44,7 @@ config ESI_DONGLE
config ACTISYS_DONGLE config ACTISYS_DONGLE
tristate "ACTiSYS IR-220L and IR220L+ dongle" tristate "ACTiSYS IR-220L and IR220L+ dongle"
depends on DONGLE && IRDA depends on IRTTY_SIR && DONGLE && IRDA
help help
Say Y here if you want to build support for the ACTiSYS IR-220L and Say Y here if you want to build support for the ACTiSYS IR-220L and
IR220L+ dongles. To compile it as a module, choose M here. The IR220L+ dongles. To compile it as a module, choose M here. The
...@@ -55,7 +55,7 @@ config ACTISYS_DONGLE ...@@ -55,7 +55,7 @@ config ACTISYS_DONGLE
config TEKRAM_DONGLE config TEKRAM_DONGLE
tristate "Tekram IrMate 210B dongle" tristate "Tekram IrMate 210B dongle"
depends on DONGLE && IRDA depends on IRTTY_SIR && DONGLE && IRDA
help help
Say Y here if you want to build support for the Tekram IrMate 210B Say Y here if you want to build support for the Tekram IrMate 210B
dongle. To compile it as a module, choose M here. The Tekram dongle dongle. To compile it as a module, choose M here. The Tekram dongle
...@@ -66,7 +66,7 @@ config TEKRAM_DONGLE ...@@ -66,7 +66,7 @@ config TEKRAM_DONGLE
config TOIM3232_DONGLE config TOIM3232_DONGLE
tristate "TOIM3232 IrDa dongle" tristate "TOIM3232 IrDa dongle"
depends on DONGLE && IRDA depends on IRTTY_SIR && DONGLE && IRDA
help help
Say Y here if you want to build support for the Vishay/Temic Say Y here if you want to build support for the Vishay/Temic
TOIM3232 and TOIM4232 based dongles. TOIM3232 and TOIM4232 based dongles.
...@@ -74,7 +74,7 @@ config TOIM3232_DONGLE ...@@ -74,7 +74,7 @@ config TOIM3232_DONGLE
config LITELINK_DONGLE config LITELINK_DONGLE
tristate "Parallax LiteLink dongle" tristate "Parallax LiteLink dongle"
depends on DONGLE && IRDA depends on IRTTY_SIR && DONGLE && IRDA
help help
Say Y here if you want to build support for the Parallax Litelink Say Y here if you want to build support for the Parallax Litelink
dongle. To compile it as a module, choose M here. The Parallax dongle. To compile it as a module, choose M here. The Parallax
...@@ -85,7 +85,7 @@ config LITELINK_DONGLE ...@@ -85,7 +85,7 @@ config LITELINK_DONGLE
config MA600_DONGLE config MA600_DONGLE
tristate "Mobile Action MA600 dongle" tristate "Mobile Action MA600 dongle"
depends on DONGLE && IRDA && EXPERIMENTAL depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
help help
Say Y here if you want to build support for the Mobile Action MA600 Say Y here if you want to build support for the Mobile Action MA600
dongle. To compile it as a module, choose M here. The MA600 dongle dongle. To compile it as a module, choose M here. The MA600 dongle
...@@ -98,7 +98,7 @@ config MA600_DONGLE ...@@ -98,7 +98,7 @@ config MA600_DONGLE
config GIRBIL_DONGLE config GIRBIL_DONGLE
tristate "Greenwich GIrBIL dongle" tristate "Greenwich GIrBIL dongle"
depends on DONGLE && IRDA && EXPERIMENTAL depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
help help
Say Y here if you want to build support for the Greenwich GIrBIL Say Y here if you want to build support for the Greenwich GIrBIL
dongle. If you want to compile it as a module, choose M here. dongle. If you want to compile it as a module, choose M here.
...@@ -109,7 +109,7 @@ config GIRBIL_DONGLE ...@@ -109,7 +109,7 @@ config GIRBIL_DONGLE
config MCP2120_DONGLE config MCP2120_DONGLE
tristate "Microchip MCP2120" tristate "Microchip MCP2120"
depends on DONGLE && IRDA && EXPERIMENTAL depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
help help
Say Y here if you want to build support for the Microchip MCP2120 Say Y here if you want to build support for the Microchip MCP2120
dongle. If you want to compile it as a module, choose M here. dongle. If you want to compile it as a module, choose M here.
...@@ -123,7 +123,7 @@ config MCP2120_DONGLE ...@@ -123,7 +123,7 @@ config MCP2120_DONGLE
config OLD_BELKIN_DONGLE config OLD_BELKIN_DONGLE
tristate "Old Belkin dongle" tristate "Old Belkin dongle"
depends on DONGLE && IRDA && EXPERIMENTAL depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
help help
Say Y here if you want to build support for the Adaptec Airport 1000 Say Y here if you want to build support for the Adaptec Airport 1000
and 2000 dongles. If you want to compile it as a module, choose and 2000 dongles. If you want to compile it as a module, choose
...@@ -132,7 +132,7 @@ config OLD_BELKIN_DONGLE ...@@ -132,7 +132,7 @@ config OLD_BELKIN_DONGLE
config ACT200L_DONGLE config ACT200L_DONGLE
tristate "ACTiSYS IR-200L dongle" tristate "ACTiSYS IR-200L dongle"
depends on DONGLE && IRDA && EXPERIMENTAL depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL
help help
Say Y here if you want to build support for the ACTiSYS IR-200L Say Y here if you want to build support for the ACTiSYS IR-200L
dongle. If you want to compile it as a module, choose M here. dongle. If you want to compile it as a module, choose M here.
......
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
* sure which should go first, but I bet it won't make much * sure which should go first, but I bet it won't make much
* difference if we are running VLANs. The good news is that * difference if we are running VLANs. The good news is that
* this protocol won't be in the list unless compiled in, so * this protocol won't be in the list unless compiled in, so
* the average user (w/out VLANs) will not be adversly affected. * the average user (w/out VLANs) will not be adversely affected.
* --BLG * --BLG
* *
* 0800 IP * 0800 IP
...@@ -149,7 +149,7 @@ static struct list_head ptype_base[16]; /* 16 way hashed list */ ...@@ -149,7 +149,7 @@ static struct list_head ptype_base[16]; /* 16 way hashed list */
static struct list_head ptype_all; /* Taps */ static struct list_head ptype_all; /* Taps */
/* /*
* The @dev_base list is protected by @dev_base_lock and the rtln * The @dev_base list is protected by @dev_base_lock and the rtnl
* semaphore. * semaphore.
* *
* Pure readers hold dev_base_lock for reading. * Pure readers hold dev_base_lock for reading.
...@@ -641,10 +641,12 @@ int dev_valid_name(const char *name) ...@@ -641,10 +641,12 @@ int dev_valid_name(const char *name)
* @name: name format string * @name: name format string
* *
* Passed a format string - eg "lt%d" it will try and find a suitable * Passed a format string - eg "lt%d" it will try and find a suitable
* id. Not efficient for many devices, not called a lot. The caller * id. It scans list of devices to build up a free map, then chooses
* must hold the dev_base or rtnl lock while allocating the name and * the first empty slot. The caller must hold the dev_base or rtnl lock
* adding the device in order to avoid duplicates. Returns the number * while allocating the name and adding the device in order to avoid
* of the unit assigned or a negative errno code. * duplicates.
* Limited to bits_per_byte * page size devices (ie 32K on most platforms).
* Returns the number of the unit assigned or a negative errno code.
*/ */
int dev_alloc_name(struct net_device *dev, const char *name) int dev_alloc_name(struct net_device *dev, const char *name)
...@@ -744,7 +746,7 @@ int dev_change_name(struct net_device *dev, char *newname) ...@@ -744,7 +746,7 @@ int dev_change_name(struct net_device *dev, char *newname)
} }
/** /**
* netdev_features_change - device changes fatures * netdev_features_change - device changes features
* @dev: device to cause notification * @dev: device to cause notification
* *
* Called to indicate a device has changed features. * Called to indicate a device has changed features.
...@@ -2196,7 +2198,7 @@ int netdev_set_master(struct net_device *slave, struct net_device *master) ...@@ -2196,7 +2198,7 @@ int netdev_set_master(struct net_device *slave, struct net_device *master)
* @dev: device * @dev: device
* @inc: modifier * @inc: modifier
* *
* Add or remove promsicuity from a device. While the count in the device * Add or remove promiscuity from a device. While the count in the device
* remains above zero the interface remains promiscuous. Once it hits zero * remains above zero the interface remains promiscuous. Once it hits zero
* the device reverts back to normal filtering operation. A negative inc * the device reverts back to normal filtering operation. A negative inc
* value is used to drop promiscuity on the device. * value is used to drop promiscuity on the device.
...@@ -3122,7 +3124,7 @@ EXPORT_SYMBOL(alloc_netdev); ...@@ -3122,7 +3124,7 @@ EXPORT_SYMBOL(alloc_netdev);
void free_netdev(struct net_device *dev) void free_netdev(struct net_device *dev)
{ {
#ifdef CONFIG_SYSFS #ifdef CONFIG_SYSFS
/* Compatiablity with error handling in drivers */ /* Compatibility with error handling in drivers */
if (dev->reg_state == NETREG_UNINITIALIZED) { if (dev->reg_state == NETREG_UNINITIALIZED) {
kfree((char *)dev - dev->padded); kfree((char *)dev - dev->padded);
return; return;
......
...@@ -280,10 +280,13 @@ static int inline rt6_check_neigh(struct rt6_info *rt) ...@@ -280,10 +280,13 @@ static int inline rt6_check_neigh(struct rt6_info *rt)
{ {
struct neighbour *neigh = rt->rt6i_nexthop; struct neighbour *neigh = rt->rt6i_nexthop;
int m = 0; int m = 0;
if (neigh) { if (rt->rt6i_flags & RTF_NONEXTHOP ||
!(rt->rt6i_flags & RTF_GATEWAY))
m = 1;
else if (neigh) {
read_lock_bh(&neigh->lock); read_lock_bh(&neigh->lock);
if (neigh->nud_state & NUD_VALID) if (neigh->nud_state & NUD_VALID)
m = 1; m = 2;
read_unlock_bh(&neigh->lock); read_unlock_bh(&neigh->lock);
} }
return m; return m;
...@@ -292,15 +295,18 @@ static int inline rt6_check_neigh(struct rt6_info *rt) ...@@ -292,15 +295,18 @@ static int inline rt6_check_neigh(struct rt6_info *rt)
static int rt6_score_route(struct rt6_info *rt, int oif, static int rt6_score_route(struct rt6_info *rt, int oif,
int strict) int strict)
{ {
int m = rt6_check_dev(rt, oif); int m, n;
m = rt6_check_dev(rt, oif);
if (!m && (strict & RT6_SELECT_F_IFACE)) if (!m && (strict & RT6_SELECT_F_IFACE))
return -1; return -1;
#ifdef CONFIG_IPV6_ROUTER_PREF #ifdef CONFIG_IPV6_ROUTER_PREF
m |= IPV6_DECODE_PREF(IPV6_EXTRACT_PREF(rt->rt6i_flags)) << 2; m |= IPV6_DECODE_PREF(IPV6_EXTRACT_PREF(rt->rt6i_flags)) << 2;
#endif #endif
if (rt6_check_neigh(rt)) n = rt6_check_neigh(rt);
if (n > 1)
m |= 16; m |= 16;
else if (strict & RT6_SELECT_F_REACHABLE) else if (!n && strict & RT6_SELECT_F_REACHABLE)
return -1; return -1;
return m; return m;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册