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

Commit 43d39ae0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (35 commits)
  xen-netfront: rearrange netfront structure to separate tx and rx
  netdev: convert non-obvious instances to use ARRAY_SIZE()
  ucc_geth: Fix build break introduced by commit 09f75cd7
  gianfar: Fix regression caused by new napi interface
  gianfar: Cleanup compile warning caused by 0795af57
  gianfar: Fix compile regression caused by bea3348e
  add new prom.h for AU1x00
  update AU1000 get_ethernet_addr()
  MIPSsim: General cleanup
  Jazzsonic: Fix warning about unused variable.
  Remove msic_dcr_read() in axon_msi.c
  Use dcr_host_t.base in dcr_unmap()
  Add dcr_host_t.base in dcr_read()/dcr_write()
  Use dcr_host_t.base in ibm_emac_mal
  Update ibm_newemac to use dcr_host_t.base
  tehuti: possible leak in bdx_probe
  TC35815: Fix build
  SAA9730: Fix build
  AR7 ethernet
  myri10ge: update driver version to 1.3.2-1.287
  ...
parents 63bd8c48 84284d3c
Loading
Loading
Loading
Loading
+33 −0
Original line number Original line Diff line number Diff line
@@ -281,6 +281,39 @@ downdelay
	will be rounded down to the nearest multiple.  The default
	will be rounded down to the nearest multiple.  The default
	value is 0.
	value is 0.


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.

lacp_rate
lacp_rate


	Option specifying the rate in which we'll ask our link partner
	Option specifying the rate in which we'll ask our link partner
+26 −35
Original line number Original line Diff line number Diff line
@@ -33,7 +33,6 @@
 *  with this program; if not, write  to the Free Software Foundation, Inc.,
 *  with this program; if not, write  to the Free Software Foundation, Inc.,
 *  675 Mass Ave, Cambridge, MA 02139, USA.
 *  675 Mass Ave, Cambridge, MA 02139, USA.
 */
 */

#include <linux/module.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
@@ -41,11 +40,9 @@


#include <asm/bootinfo.h>
#include <asm/bootinfo.h>


/* #define DEBUG_CMDLINE */
int prom_argc;

char **prom_argv;
extern int prom_argc;
char **prom_envp;
extern char **prom_argv, **prom_envp;



char * __init_or_module prom_getcmdline(void)
char * __init_or_module prom_getcmdline(void)
{
{
@@ -70,10 +67,8 @@ void prom_init_cmdline(void)
		--cp;
		--cp;
	if (prom_argc > 1)
	if (prom_argc > 1)
		*cp = '\0';
		*cp = '\0';

}
}



char *prom_getenv(char *envname)
char *prom_getenv(char *envname)
{
{
	/*
	/*
@@ -95,10 +90,11 @@ char *prom_getenv(char *envname)
		}
		}
		env++;
		env++;
	}
	}

	return NULL;
	return NULL;
}
}


inline unsigned char str2hexnum(unsigned char c)
static inline unsigned char str2hexnum(unsigned char c)
{
{
	if (c >= '0' && c <= '9')
	if (c >= '0' && c <= '9')
		return c - '0';
		return c - '0';
@@ -106,10 +102,11 @@ inline unsigned char str2hexnum(unsigned char c)
		return c - 'a' + 10;
		return c - 'a' + 10;
	if (c >= 'A' && c <= 'F')
	if (c >= 'A' && c <= 'F')
		return c - 'A' + 10;
		return c - 'A' + 10;

	return 0; /* foo */
	return 0; /* foo */
}
}


inline void str2eaddr(unsigned char *ea, unsigned char *str)
static inline void str2eaddr(unsigned char *ea, unsigned char *str)
{
{
	int i;
	int i;


@@ -124,35 +121,29 @@ inline void str2eaddr(unsigned char *ea, unsigned char *str)
	}
	}
}
}


int get_ethernet_addr(char *ethernet_addr)
int prom_get_ethernet_addr(char *ethernet_addr)
{
{
	char *ethaddr_str;
	char *ethaddr_str;
	char *argptr;


	/* Check the environment variables first */
	ethaddr_str = prom_getenv("ethaddr");
	ethaddr_str = prom_getenv("ethaddr");
	if (!ethaddr_str) {
	if (!ethaddr_str) {
	        printk("ethaddr not set in boot prom\n");
		/* Check command line */
		argptr = prom_getcmdline();
		ethaddr_str = strstr(argptr, "ethaddr=");
		if (!ethaddr_str)
			return -1;
			return -1;
	}
	str2eaddr(ethernet_addr, ethaddr_str);

#if 0
	{
		int i;


	printk("get_ethernet_addr: ");
		ethaddr_str += strlen("ethaddr=");
	for (i=0; i<5; i++)
		printk("%02x:", (unsigned char)*(ethernet_addr+i));
	printk("%02x\n", *(ethernet_addr+i));
	}
	}
#endif

	str2eaddr(ethernet_addr, ethaddr_str);


	return 0;
	return 0;
}
}
EXPORT_SYMBOL(prom_get_ethernet_addr);


void __init prom_free_prom_memory(void)
void __init prom_free_prom_memory(void)
{
{
}
}

EXPORT_SYMBOL(prom_getcmdline);
EXPORT_SYMBOL(get_ethernet_addr);
EXPORT_SYMBOL(str2eaddr);
+3 −2
Original line number Original line Diff line number Diff line
@@ -40,10 +40,11 @@
#include <asm/mipsregs.h>
#include <asm/mipsregs.h>
#include <asm/reboot.h>
#include <asm/reboot.h>
#include <asm/pgtable.h>
#include <asm/pgtable.h>
#include <asm/mach-au1x00/au1000.h>
#include <asm/time.h>
#include <asm/time.h>


extern char * prom_getcmdline(void);
#include <au1000.h>
#include <prom.h>

extern void __init board_setup(void);
extern void __init board_setup(void);
extern void au1000_restart(char *);
extern void au1000_restart(char *);
extern void au1000_halt(void);
extern void au1000_halt(void);
+4 −6
Original line number Original line Diff line number Diff line
@@ -31,15 +31,13 @@
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/kernel.h>


int prom_argc;
#include <asm/addrspace.h>
char **prom_argv, **prom_envp;
#include <asm/bootinfo.h>
extern void  __init prom_init_cmdline(void);

extern char *prom_getenv(char *envname);
#include <prom.h>


const char *get_system_type(void)
const char *get_system_type(void)
{
{
+2 −4
Original line number Original line Diff line number Diff line
@@ -34,13 +34,11 @@
#include <linux/init.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/mm.h>
#include <linux/bootmem.h>
#include <linux/bootmem.h>

#include <asm/addrspace.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <asm/bootinfo.h>


int prom_argc;
#include <prom.h>
char **prom_argv, **prom_envp;
extern void  __init prom_init_cmdline(void);
extern char *prom_getenv(char *envname);


const char *get_system_type(void)
const char *get_system_type(void)
{
{
Loading