Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5bbc1722 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'davem-next' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

parents 30902dc3 ae7b6487
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -376,7 +376,8 @@ max_bonds
	Specifies the number of bonding devices to create for this
	instance of the bonding driver.  E.g., if max_bonds is 3, and
	the bonding driver is not already loaded, then bond0, bond1
	and bond2 will be created.  The default value is 1.
	and bond2 will be created.  The default value is 1.  Specifying
	a value of 0 will load bonding, but will not create any devices.

miimon

@@ -539,6 +540,17 @@ mode
		swapped with the new curr_active_slave that was
		chosen.

num_grat_arp

	Specifies the number of gratuitous ARPs to be issued after a
	failover event.  One gratuitous ARP is issued immediately after
	the failover, subsequent ARPs are sent at a rate of one per link
	monitor interval (arp_interval or miimon, whichever is active).

	The valid range is 0 - 255; the default value is 1.  This option
	affects only the active-backup mode.  This option was added for
	bonding version 3.3.0.

primary

	A string (eth0, eth2, etc) specifying which slave is the
+5 −13
Original line number Diff line number Diff line
@@ -2147,6 +2147,8 @@ P: Jesse Brandeburg
M:	jesse.brandeburg@intel.com
P:	Bruce Allan
M:	bruce.w.allan@intel.com
P:	PJ Waskiewicz
M:	peter.p.waskiewicz.jr@intel.com
P:	John Ronciak
M:	john.ronciak@intel.com
L:	e1000-devel@lists.sourceforge.net
@@ -2690,12 +2692,10 @@ L: libertas-dev@lists.infradead.org
S:	Maintained

MARVELL MV643XX ETHERNET DRIVER
P:	Dale Farnsworth
M:	dale@farnsworth.org
P:	Manish Lachwani
M:	mlachwani@mvista.com
P:	Lennert Buytenhek
M:	buytenh@marvell.com
L:	netdev@vger.kernel.org
S:	Odd Fixes for 2.4; Maintained for 2.6.
S:	Supported

MATROX FRAMEBUFFER DRIVER
P:	Petr Vandrovec
@@ -3233,14 +3233,6 @@ L: linux-kernel@vger.kernel.org
T:	git git.infradead.org/battery-2.6.git
S:	Maintained

POWERPC 4xx EMAC DRIVER
P:	Eugene Surovegin
M:	ebs@ebshome.net
W:	http://kernel.ebshome.net/emac/
L:	linuxppc-dev@ozlabs.org
L:	netdev@vger.kernel.org
S:	Maintained

PNP SUPPORT
P:	Adam Belay
M:	ambx1@neo.rr.com
+0 −1
Original line number Diff line number Diff line
@@ -1255,7 +1255,6 @@ config IBMVETH
	  To compile this driver as a module, choose M here. The module will
	  be called ibmveth.

source "drivers/net/ibm_emac/Kconfig"
source "drivers/net/ibm_newemac/Kconfig"

config NET_PCI
+0 −1
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@

obj-$(CONFIG_E1000) += e1000/
obj-$(CONFIG_E1000E) += e1000e/
obj-$(CONFIG_IBM_EMAC) += ibm_emac/
obj-$(CONFIG_IBM_NEW_EMAC) += ibm_newemac/
obj-$(CONFIG_IGB) += igb/
obj-$(CONFIG_IXGBE) += ixgbe/
+37 −29
Original line number Diff line number Diff line
@@ -1189,22 +1189,21 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)

		if (new_active) {
			bond_set_slave_active_flags(new_active);
		}

		if (new_active && bond->params.fail_over_mac)
			bond_do_fail_over_mac(bond, new_active, old_active);
			if (bond->params.fail_over_mac)
				bond_do_fail_over_mac(bond, new_active,
						      old_active);

			bond->send_grat_arp = bond->params.num_grat_arp;
		if (bond->curr_active_slave &&
			test_bit(__LINK_STATE_LINKWATCH_PENDING,
					&bond->curr_active_slave->dev->state)) {
			dprintk("delaying gratuitous arp on %s\n",
				bond->curr_active_slave->dev->name);
		} else {
			if (bond->send_grat_arp > 0) {
			bond_send_gratuitous_arp(bond);
				bond->send_grat_arp--;
			}

			write_unlock_bh(&bond->curr_slave_lock);
			read_unlock(&bond->lock);

			netdev_bonding_change(bond->dev);

			read_lock(&bond->lock);
			write_lock_bh(&bond->curr_slave_lock);
		}
	}
}
@@ -2235,17 +2234,6 @@ static int __bond_mii_monitor(struct bonding *bond, int have_locks)
	 * program could monitor the link itself if needed.
	 */

	if (bond->send_grat_arp) {
		if (bond->curr_active_slave && test_bit(__LINK_STATE_LINKWATCH_PENDING,
				&bond->curr_active_slave->dev->state))
			dprintk("Needs to send gratuitous arp but not yet\n");
		else {
			dprintk("sending delayed gratuitous arp on on %s\n",
				bond->curr_active_slave->dev->name);
			bond_send_gratuitous_arp(bond);
			bond->send_grat_arp--;
		}
	}
	read_lock(&bond->curr_slave_lock);
	oldcurrent = bond->curr_active_slave;
	read_unlock(&bond->curr_slave_lock);
@@ -2486,6 +2474,13 @@ void bond_mii_monitor(struct work_struct *work)
		read_unlock(&bond->lock);
		return;
	}

	if (bond->send_grat_arp) {
		read_lock(&bond->curr_slave_lock);
		bond_send_gratuitous_arp(bond);
		read_unlock(&bond->curr_slave_lock);
	}

	if (__bond_mii_monitor(bond, 0)) {
		read_unlock(&bond->lock);
		rtnl_lock();
@@ -2651,6 +2646,8 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
/*
 * Kick out a gratuitous ARP for an IP on the bonding master plus one
 * for each VLAN above us.
 *
 * Caller must hold curr_slave_lock for read or better
 */
static void bond_send_gratuitous_arp(struct bonding *bond)
{
@@ -2660,9 +2657,13 @@ static void bond_send_gratuitous_arp(struct bonding *bond)

	dprintk("bond_send_grat_arp: bond %s slave %s\n", bond->dev->name,
				slave ? slave->dev->name : "NULL");
	if (!slave)

	if (!slave || !bond->send_grat_arp ||
	    test_bit(__LINK_STATE_LINKWATCH_PENDING, &slave->dev->state))
		return;

	bond->send_grat_arp--;

	if (bond->master_ip) {
		bond_arp_send(slave->dev, ARPOP_REPLY, bond->master_ip,
				bond->master_ip, 0);
@@ -3166,6 +3167,12 @@ void bond_activebackup_arp_mon(struct work_struct *work)
	if (bond->slave_cnt == 0)
		goto re_arm;

	if (bond->send_grat_arp) {
		read_lock(&bond->curr_slave_lock);
		bond_send_gratuitous_arp(bond);
		read_unlock(&bond->curr_slave_lock);
	}

	if (bond_ab_arp_inspect(bond, delta_in_ticks)) {
		read_unlock(&bond->lock);
		rtnl_lock();
@@ -3840,6 +3847,7 @@ static int bond_close(struct net_device *bond_dev)

	write_lock_bh(&bond->lock);

	bond->send_grat_arp = 0;

	/* signal timers not to re-arm */
	bond->kill_timers = 1;
@@ -4742,11 +4750,11 @@ static int bond_check_params(struct bond_params *params)
		}
	}

	if (max_bonds < 1 || max_bonds > INT_MAX) {
	if (max_bonds < 0 || max_bonds > INT_MAX) {
		printk(KERN_WARNING DRV_NAME
		       ": Warning: max_bonds (%d) not in range %d-%d, so it "
		       "was reset to BOND_DEFAULT_MAX_BONDS (%d)\n",
		       max_bonds, 1, INT_MAX, BOND_DEFAULT_MAX_BONDS);
		       max_bonds, 0, INT_MAX, BOND_DEFAULT_MAX_BONDS);
		max_bonds = BOND_DEFAULT_MAX_BONDS;
	}

@@ -4945,7 +4953,7 @@ static int bond_check_params(struct bond_params *params)

		printk("\n");

	} else {
	} else if (max_bonds) {
		/* miimon and arp_interval not set, we need one so things
		 * work as expected, see bonding.txt for details
		 */
Loading