drivers 802154: always memset cpuid before setting
This commit is contained in:
parent
416b9759e2
commit
32606382a1
@ -70,16 +70,17 @@ void at86rf2xx_reset(at86rf2xx_t *dev)
|
|||||||
dev->netdev.flags = 0;
|
dev->netdev.flags = 0;
|
||||||
/* set short and long address */
|
/* set short and long address */
|
||||||
#if CPUID_LEN
|
#if CPUID_LEN
|
||||||
|
/* in case CPUID_LEN < 8, fill missing bytes with zeros */
|
||||||
|
memset(cpuid, 0, CPUID_LEN);
|
||||||
|
|
||||||
cpuid_get(cpuid);
|
cpuid_get(cpuid);
|
||||||
|
|
||||||
#if CPUID_LEN < IEEE802154_LONG_ADDRESS_LEN
|
#if CPUID_LEN > IEEE802154_LONG_ADDRESS_LEN
|
||||||
/* in case CPUID_LEN < 8, fill missing bytes with zeros */
|
for (int i = IEEE802154_LONG_ADDRESS_LEN; i < CPUID_LEN; i++) {
|
||||||
memset(&(cpuid[CPUID_LEN]), 0, (IEEE802154_LONG_ADDRESS_LEN - CPUID_LEN));
|
|
||||||
#else
|
|
||||||
for (int i = 8; i < CPUID_LEN; i++) {
|
|
||||||
cpuid[i & 0x07] ^= cpuid[i];
|
cpuid[i & 0x07] ^= cpuid[i];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* make sure we mark the address as non-multicast and not globally unique */
|
/* make sure we mark the address as non-multicast and not globally unique */
|
||||||
cpuid[0] &= ~(0x01);
|
cpuid[0] &= ~(0x01);
|
||||||
cpuid[0] |= 0x02;
|
cpuid[0] |= 0x02;
|
||||||
|
|||||||
@ -430,15 +430,12 @@ int kw2xrf_init(kw2xrf_t *dev, spi_t spi, spi_speed_t spi_speed,
|
|||||||
dev->option = 0;
|
dev->option = 0;
|
||||||
|
|
||||||
#if CPUID_LEN
|
#if CPUID_LEN
|
||||||
|
/* in case CPUID_LEN < 8, fill missing bytes with zeros */
|
||||||
|
memset(cpuid, 0, CPUID_LEN);
|
||||||
|
|
||||||
cpuid_get(cpuid);
|
cpuid_get(cpuid);
|
||||||
|
|
||||||
#if CPUID_LEN < IEEE802154_LONG_ADDRESS_LEN
|
#if CPUID_LEN > IEEE802154_LONG_ADDRESS_LEN
|
||||||
|
|
||||||
/* in case CPUID_LEN < 8, fill missing bytes with zeros */
|
|
||||||
memset(&(cpuid[CPUID_LEN]), 0, (IEEE802154_LONG_ADDRESS_LEN - CPUID_LEN));
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
for (int i = IEEE802154_LONG_ADDRESS_LEN; i < CPUID_LEN; i++) {
|
for (int i = IEEE802154_LONG_ADDRESS_LEN; i < CPUID_LEN; i++) {
|
||||||
cpuid[i & 0x07] ^= cpuid[i];
|
cpuid[i & 0x07] ^= cpuid[i];
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user