Skip to content

Commit

Permalink
Merge branch 'upstream-next-davem' of master.kernel.org:/pub/scm/linu…
Browse files Browse the repository at this point in the history
…x/kernel/git/jgarzik/netdev-2.6
  • Loading branch information
David S. Miller committed May 29, 2008
2 parents b79eeeb + c03571a commit a5b17df
Show file tree
Hide file tree
Showing 25 changed files with 1,203 additions and 457 deletions.
96 changes: 67 additions & 29 deletions Documentation/networking/bonding.txt
Original file line number Diff line number Diff line change
Expand Up @@ -289,35 +289,73 @@ downdelay
fail_over_mac

Specifies whether active-backup mode should set all slaves to
the same MAC address (the traditional behavior), or, when
enabled, change the bond's MAC address when changing the
active interface (i.e., fail over the MAC address itself).

Fail over MAC is useful for devices that cannot ever alter
their MAC address, or for devices that refuse incoming
broadcasts with their own source MAC (which interferes with
the ARP monitor).

The down side of fail over MAC is that every device on the
network must be updated via gratuitous ARP, vs. just updating
a switch or set of switches (which often takes place for any
traffic, not just ARP traffic, if the switch snoops incoming
traffic to update its tables) for the traditional method. If
the gratuitous ARP is lost, communication may be disrupted.

When fail over MAC is used in conjuction with the mii monitor,
devices which assert link up prior to being able to actually
transmit and receive are particularly susecptible to loss of
the gratuitous ARP, and an appropriate updelay setting may be
required.

A value of 0 disables fail over MAC, and is the default. A
value of 1 enables fail over MAC. This option is enabled
automatically if the first slave added cannot change its MAC
address. This option may be modified via sysfs only when no
slaves are present in the bond.

This option was added in bonding version 3.2.0.
the same MAC address at enslavement (the traditional
behavior), or, when enabled, perform special handling of the
bond's MAC address in accordance with the selected policy.

Possible values are:

none or 0

This setting disables fail_over_mac, and causes
bonding to set all slaves of an active-backup bond to
the same MAC address at enslavement time. This is the
default.

active or 1

The "active" fail_over_mac policy indicates that the
MAC address of the bond should always be the MAC
address of the currently active slave. The MAC
address of the slaves is not changed; instead, the MAC
address of the bond changes during a failover.

This policy is useful for devices that cannot ever
alter their MAC address, or for devices that refuse
incoming broadcasts with their own source MAC (which
interferes with the ARP monitor).

The down side of this policy is that every device on
the network must be updated via gratuitous ARP,
vs. just updating a switch or set of switches (which
often takes place for any traffic, not just ARP
traffic, if the switch snoops incoming traffic to
update its tables) for the traditional method. If the
gratuitous ARP is lost, communication may be
disrupted.

When this policy is used in conjuction with the mii
monitor, devices which assert link up prior to being
able to actually transmit and receive are particularly
susecptible to loss of the gratuitous ARP, and an
appropriate updelay setting may be required.

follow or 2

The "follow" fail_over_mac policy causes the MAC
address of the bond to be selected normally (normally
the MAC address of the first slave added to the bond).
However, the second and subsequent slaves are not set
to this MAC address while they are in a backup role; a
slave is programmed with the bond's MAC address at
failover time (and the formerly active slave receives
the newly active slave's MAC address).

This policy is useful for multiport devices that
either become confused or incur a performance penalty
when multiple ports are programmed with the same MAC
address.


The default policy is none, unless the first slave cannot
change its MAC address, in which case the active policy is
selected by default.

This option may be modified via sysfs only when no slaves are
present in the bond.

This option was added in bonding version 3.2.0. The "follow"
policy was added in bonding version 3.3.0.

lacp_rate

Expand Down
15 changes: 7 additions & 8 deletions drivers/net/3c509.c
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ static int __devinit el3_pnp_probe(struct pnp_dev *pdev,
{
short i;
int ioaddr, irq, if_port;
u16 phys_addr[3];
__be16 phys_addr[3];
struct net_device *dev = NULL;
int err;

Expand Down Expand Up @@ -605,7 +605,7 @@ static int __init el3_mca_probe(struct device *device)

short i;
int ioaddr, irq, if_port;
u16 phys_addr[3];
__be16 phys_addr[3];
struct net_device *dev = NULL;
u_char pos4, pos5;
struct mca_device *mdev = to_mca_device(device);
Expand Down Expand Up @@ -635,14 +635,13 @@ static int __init el3_mca_probe(struct device *device)
printk(KERN_DEBUG "3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port);
}
EL3WINDOW(0);
for (i = 0; i < 3; i++) {
phys_addr[i] = htons(read_eeprom(ioaddr, i));
}
for (i = 0; i < 3; i++)
phys_addr[i] = htons(read_eeprom(ioaddr, i));

dev = alloc_etherdev(sizeof (struct el3_private));
if (dev == NULL) {
release_region(ioaddr, EL3_IO_EXTENT);
return -ENOMEM;
release_region(ioaddr, EL3_IO_EXTENT);
return -ENOMEM;
}

netdev_boot_setup_check(dev);
Expand All @@ -668,7 +667,7 @@ static int __init el3_eisa_probe (struct device *device)
{
short i;
int ioaddr, irq, if_port;
u16 phys_addr[3];
__be16 phys_addr[3];
struct net_device *dev = NULL;
struct eisa_device *edev;
int err;
Expand Down
4 changes: 4 additions & 0 deletions drivers/net/3c515.c
Original file line number Diff line number Diff line change
Expand Up @@ -572,12 +572,16 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr,
int irq;
DECLARE_MAC_BUF(mac);

#ifdef __ISAPNP__
if (idev) {
irq = pnp_irq(idev, 0);
vp->dev = &idev->dev;
} else {
irq = inw(ioaddr + 0x2002) & 15;
}
#else
irq = inw(ioaddr + 0x2002) & 15;
#endif

dev->base_addr = ioaddr;
dev->irq = irq;
Expand Down
1 change: 1 addition & 0 deletions drivers/net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2410,6 +2410,7 @@ config CHELSIO_T3
tristate "Chelsio Communications T3 10Gb Ethernet support"
depends on PCI
select FW_LOADER
select INET_LRO
help
This driver supports Chelsio T3-based gigabit and 10Gb Ethernet
adapters.
Expand Down
5 changes: 3 additions & 2 deletions drivers/net/atlx/atl1.c
Original file line number Diff line number Diff line change
Expand Up @@ -1876,7 +1876,8 @@ static u16 atl1_alloc_rx_buffers(struct atl1_adapter *adapter)

rfd_desc = ATL1_RFD_DESC(rfd_ring, rfd_next_to_use);

skb = dev_alloc_skb(adapter->rx_buffer_len + NET_IP_ALIGN);
skb = netdev_alloc_skb(adapter->netdev,
adapter->rx_buffer_len + NET_IP_ALIGN);
if (unlikely(!skb)) {
/* Better luck next round */
adapter->net_stats.rx_dropped++;
Expand Down Expand Up @@ -2135,7 +2136,7 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,
return -1;
}

if (skb->protocol == ntohs(ETH_P_IP)) {
if (skb->protocol == htons(ETH_P_IP)) {
struct iphdr *iph = ip_hdr(skb);

real_len = (((unsigned char *)iph - skb->data) +
Expand Down
Loading

0 comments on commit a5b17df

Please sign in to comment.