diff options
author | Paul Mackerras <paulus@samba.org> | 2008-06-30 10:16:50 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2008-06-30 10:16:50 +1000 |
commit | e9a4b6a3f6592862a67837e80aad3f50468857a6 (patch) | |
tree | 087420cf91ac922c7e99757c4490a605ec7b10f2 /arch/mips/lasat/lasat_board.c | |
parent | 441dbb500b4344a8e3125e5aabab4f9dbf72514f (diff) | |
parent | 1702b52092e9a6d05398d3f9581ddc050ef00d06 (diff) |
Merge branch 'linux-2.6'
Diffstat (limited to 'arch/mips/lasat/lasat_board.c')
-rw-r--r-- | arch/mips/lasat/lasat_board.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/mips/lasat/lasat_board.c b/arch/mips/lasat/lasat_board.c index ec2f658c370..31e328b3814 100644 --- a/arch/mips/lasat/lasat_board.c +++ b/arch/mips/lasat/lasat_board.c @@ -23,18 +23,19 @@ #include <linux/kernel.h> #include <linux/string.h> #include <linux/ctype.h> +#include <linux/mutex.h> #include <asm/bootinfo.h> #include <asm/addrspace.h> #include "at93c.h" /* New model description table */ #include "lasat_models.h" +static DEFINE_MUTEX(lasat_eeprom_mutex); + #define EEPROM_CRC(data, len) (~crc32(~0, data, len)) struct lasat_info lasat_board_info; -void update_bcastaddr(void); - int EEPROMRead(unsigned int pos, unsigned char *data, int len) { int i; @@ -258,10 +259,6 @@ int lasat_init_board_info(void) sprintf(lasat_board_info.li_typestr, "%d", 10 * c); } -#if defined(CONFIG_INET) && defined(CONFIG_SYSCTL) - update_bcastaddr(); -#endif - return 0; } @@ -269,6 +266,8 @@ void lasat_write_eeprom_info(void) { unsigned long crc; + mutex_lock(&lasat_eeprom_mutex); + /* Generate the CRC */ crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info), sizeof(struct lasat_eeprom_struct) - 4); @@ -277,4 +276,6 @@ void lasat_write_eeprom_info(void) /* Write the EEPROM info */ EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info, sizeof(struct lasat_eeprom_struct)); + + mutex_unlock(&lasat_eeprom_mutex); } |