diff options
-rw-r--r-- | networking/zcip.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/networking/zcip.c b/networking/zcip.c index 63846ebef..62350c640 100644 --- a/networking/zcip.c +++ b/networking/zcip.c | |||
@@ -160,7 +160,8 @@ int zcip_main(int argc, char **argv); | |||
160 | int zcip_main(int argc, char **argv) | 160 | int zcip_main(int argc, char **argv) |
161 | { | 161 | { |
162 | int state = PROBE; | 162 | int state = PROBE; |
163 | struct ether_addr eth_addr; | 163 | /* Prevent unaligned traps for ARM (see srand() below) */ |
164 | struct ether_addr eth_addr __attribute__(( aligned(sizeof(unsigned)) )); | ||
164 | const char *why; | 165 | const char *why; |
165 | int fd; | 166 | int fd; |
166 | char *r_opt; | 167 | char *r_opt; |
@@ -252,7 +253,7 @@ int zcip_main(int argc, char **argv) | |||
252 | // the hardware address or else the last address we used. | 253 | // the hardware address or else the last address we used. |
253 | // NOTE: the sequence of addresses we try changes only | 254 | // NOTE: the sequence of addresses we try changes only |
254 | // depending on when we detect conflicts. | 255 | // depending on when we detect conflicts. |
255 | srand(*(unsigned*)&ifr.ifr_hwaddr.sa_data); | 256 | srand(*(unsigned*)ð_addr); |
256 | if (ip.s_addr == 0) | 257 | if (ip.s_addr == 0) |
257 | pick(&ip); | 258 | pick(&ip); |
258 | 259 | ||