Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 69351
b: refs/heads/master
c: 85ffdd2
h: refs/heads/master
i:
  69349: e7d70d2
  69347: e2f68f7
  69343: a31a32e
v: v3
  • Loading branch information
Linus Torvalds committed Oct 15, 2007
1 parent 0badfdc commit 5fd10ad
Show file tree
Hide file tree
Showing 56 changed files with 1,925 additions and 333 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 77ec15cc265af2c165b7e39cadcaddb9e64aac3d
refs/heads/master: 85ffdd28be04c324349dfc7c9de3d4342c885c3f
33 changes: 33 additions & 0 deletions trunk/Documentation/networking/bonding.txt
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,39 @@ downdelay
will be rounded down to the nearest multiple. The default
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

Option specifying the rate in which we'll ask our link partner
Expand Down
2 changes: 0 additions & 2 deletions trunk/arch/m68k/atari/atakeyb.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
/*
* linux/arch/m68k/atari/atakeyb.c
*
* Atari Keyboard driver for 680x0 Linux
*
* This file is subject to the terms and conditions of the GNU General Public
Expand Down
61 changes: 26 additions & 35 deletions trunk/arch/mips/au1000/common/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,26 +33,23 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/string.h>

#include <asm/bootinfo.h>

/* #define DEBUG_CMDLINE */

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

int prom_argc;
char **prom_argv;
char **prom_envp;

char * __init_or_module prom_getcmdline(void)
{
return &(arcs_cmdline[0]);
}

void prom_init_cmdline(void)
void prom_init_cmdline(void)
{
char *cp;
int actr;
Expand All @@ -61,7 +58,7 @@ void prom_init_cmdline(void)

cp = &(arcs_cmdline[0]);
while(actr < prom_argc) {
strcpy(cp, prom_argv[actr]);
strcpy(cp, prom_argv[actr]);
cp += strlen(prom_argv[actr]);
*cp++ = ' ';
actr++;
Expand All @@ -70,10 +67,8 @@ void prom_init_cmdline(void)
--cp;
if (prom_argc > 1)
*cp = '\0';

}


char *prom_getenv(char *envname)
{
/*
Expand All @@ -95,21 +90,23 @@ char *prom_getenv(char *envname)
}
env++;
}

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';
if(c >= 'a' && c <= 'f')
if (c >= 'a' && c <= 'f')
return c - 'a' + 10;
if(c >= 'A' && c <= 'F')
if (c >= 'A' && c <= 'F')
return c - 'A' + 10;

return 0; /* foo */
}

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

Expand All @@ -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;

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

#if 0
{
int i;
/* Check command line */
argptr = prom_getcmdline();
ethaddr_str = strstr(argptr, "ethaddr=");
if (!ethaddr_str)
return -1;

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

str2eaddr(ethernet_addr, ethaddr_str);

return 0;
}
EXPORT_SYMBOL(prom_get_ethernet_addr);

void __init prom_free_prom_memory(void)
{
}

EXPORT_SYMBOL(prom_getcmdline);
EXPORT_SYMBOL(get_ethernet_addr);
EXPORT_SYMBOL(str2eaddr);
5 changes: 3 additions & 2 deletions trunk/arch/mips/au1000/common/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,11 @@
#include <asm/mipsregs.h>
#include <asm/reboot.h>
#include <asm/pgtable.h>
#include <asm/mach-au1x00/au1000.h>
#include <asm/time.h>

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

extern void __init board_setup(void);
extern void au1000_restart(char *);
extern void au1000_halt(void);
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/mips/au1000/db1x00/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,13 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/kernel.h>

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

#include <prom.h>

const char *get_system_type(void)
{
Expand Down
6 changes: 2 additions & 4 deletions trunk/arch/mips/au1000/mtx-1/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,11 @@
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/bootmem.h>

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

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

const char *get_system_type(void)
{
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/mips/au1000/pb1000/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,13 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/kernel.h>

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

#include <prom.h>

const char *get_system_type(void)
{
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/mips/au1000/pb1100/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,13 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/kernel.h>

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

#include <prom.h>

const char *get_system_type(void)
{
Expand Down
6 changes: 4 additions & 2 deletions trunk/arch/mips/au1000/pb1200/board_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,10 @@
#include <asm/mipsregs.h>
#include <asm/reboot.h>
#include <asm/pgtable.h>
#include <asm/mach-au1x00/au1000.h>
#include <asm/mach-au1x00/au1xxx_dbdma.h>

#include <au1000.h>
#include <au1xxx_dbdma.h>
#include <prom.h>

#ifdef CONFIG_MIPS_PB1200
#include <asm/mach-pb1x00/pb1200.h>
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/mips/au1000/pb1200/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,13 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/kernel.h>

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

#include <prom.h>

const char *get_system_type(void)
{
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/mips/au1000/pb1500/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,13 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/kernel.h>

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

#include <prom.h>

const char *get_system_type(void)
{
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/mips/au1000/pb1550/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,13 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/kernel.h>

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

#include <prom.h>

const char *get_system_type(void)
{
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/mips/au1000/xxs1500/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,13 @@
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>
#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <linux/string.h>
#include <linux/kernel.h>

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

#include <prom.h>

const char *get_system_type(void)
{
Expand Down
11 changes: 3 additions & 8 deletions trunk/arch/powerpc/platforms/cell/axon_msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,7 @@ static void msic_dcr_write(struct axon_msic *msic, unsigned int dcr_n, u32 val)
{
pr_debug("axon_msi: dcr_write(0x%x, 0x%x)\n", val, dcr_n);

dcr_write(msic->dcr_host, msic->dcr_host.base + dcr_n, val);
}

static u32 msic_dcr_read(struct axon_msic *msic, unsigned int dcr_n)
{
return dcr_read(msic->dcr_host, msic->dcr_host.base + dcr_n);
dcr_write(msic->dcr_host, dcr_n, val);
}

static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
Expand All @@ -91,7 +86,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
u32 write_offset, msi;
int idx;

write_offset = msic_dcr_read(msic, MSIC_WRITE_OFFSET_REG);
write_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG);
pr_debug("axon_msi: original write_offset 0x%x\n", write_offset);

/* write_offset doesn't wrap properly, so we have to mask it */
Expand Down Expand Up @@ -306,7 +301,7 @@ static int axon_msi_notify_reboot(struct notifier_block *nb,
list_for_each_entry(msic, &axon_msic_list, list) {
pr_debug("axon_msi: disabling %s\n",
msic->irq_host->of_node->full_name);
tmp = msic_dcr_read(msic, MSIC_CTRL_REG);
tmp = dcr_read(msic->dcr_host, MSIC_CTRL_REG);
tmp &= ~MSIC_CTRL_ENABLE & ~MSIC_CTRL_IRQ_ENABLE;
msic_dcr_write(msic, MSIC_CTRL_REG, tmp);
}
Expand Down
Loading

0 comments on commit 5fd10ad

Please sign in to comment.