[patch] use unsigned char in smc91111 driver for mac

the v_mac variable in the smc91111 driver is declared as a signed char ...
this causes problems when one of the bytes in the MAC is "signed" like 0xE0
because when it gets printed out, you get a display like:
0xFFFFFFE0 and that's no good

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2007-04-23 13:54:24 +02:00 committed by Stefan Roese
parent 39f23cd909
commit 36f104e5ca

View File

@ -1538,9 +1538,9 @@ int eth_send(volatile void *packet, int length) {
int smc_get_ethaddr (bd_t * bd) int smc_get_ethaddr (bd_t * bd)
{ {
int env_size, rom_valid, env_present = 0, reg; int env_size, rom_valid, env_present = 0, reg;
char *s = NULL, *e, *v_mac, es[] = "11:22:33:44:55:66"; char *s = NULL, *e, es[] = "11:22:33:44:55:66";
char s_env_mac[64]; char s_env_mac[64];
uchar v_env_mac[6], v_rom_mac[6]; uchar v_env_mac[6], v_rom_mac[6], *v_mac;
env_size = getenv_r ("ethaddr", s_env_mac, sizeof (s_env_mac)); env_size = getenv_r ("ethaddr", s_env_mac, sizeof (s_env_mac));
if ((env_size > 0) && (env_size < sizeof (es))) { /* exit if env is bad */ if ((env_size > 0) && (env_size < sizeof (es))) { /* exit if env is bad */
@ -1563,7 +1563,7 @@ int smc_get_ethaddr (bd_t * bd)
if (!env_present) { /* if NO env */ if (!env_present) { /* if NO env */
if (rom_valid) { /* but ROM is valid */ if (rom_valid) { /* but ROM is valid */
v_mac = (char *)v_rom_mac; v_mac = v_rom_mac;
sprintf (s_env_mac, "%02X:%02X:%02X:%02X:%02X:%02X", sprintf (s_env_mac, "%02X:%02X:%02X:%02X:%02X:%02X",
v_mac[0], v_mac[1], v_mac[2], v_mac[3], v_mac[0], v_mac[1], v_mac[2], v_mac[3],
v_mac[4], v_mac[5]); v_mac[4], v_mac[5]);
@ -1573,7 +1573,7 @@ int smc_get_ethaddr (bd_t * bd)
return (-1); return (-1);
} }
} else { /* good env, don't care ROM */ } else { /* good env, don't care ROM */
v_mac = (char *)v_env_mac; /* always use a good env over a ROM */ v_mac = v_env_mac; /* always use a good env over a ROM */
} }
if (env_present && rom_valid) { /* if both env and ROM are good */ if (env_present && rom_valid) { /* if both env and ROM are good */