diff --git a/drivers/wireless/ieee802154/mrf24j40.c b/drivers/wireless/ieee802154/mrf24j40.c index 9e4830dbd0..6d6f814066 100644 --- a/drivers/wireless/ieee802154/mrf24j40.c +++ b/drivers/wireless/ieee802154/mrf24j40.c @@ -247,7 +247,7 @@ static int mrf24j40_req_rxenable(FAR struct ieee802154_radio_s *radio, * Private Data ****************************************************************************/ -static const uint8_t g_allones[9] = +static const uint8_t g_allones[8] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; diff --git a/wireless/ieee802154/Kconfig b/wireless/ieee802154/Kconfig index e2f2441bb1..872e53a51f 100644 --- a/wireless/ieee802154/Kconfig +++ b/wireless/ieee802154/Kconfig @@ -23,14 +23,23 @@ config IEEE802154_DEFAULT_EADDR choice prompt "IEEE 802.15.4 work queue" - default MAC802154_LPWORK if SCHED_LPWORK - default MAC802154_HPWORK if !SCHED_LPWORK && SCHED_HPWORK + default MAC802154_HPWORK if SCHED_HPWORK + default MAC802154_LPWORK if !SCHED_HPWORK && SCHED_LPWORK depends on SCHED_WORKQUEUE ---help--- Work queue support is required to use the IEEE 802.15.4 MAC layer. - If the low priority work queue is available, then it should be used by + If the high priority work queue is available, then it should be used by the driver. + WARNING!! The IEEE802.15.4 network device must never run on the same + work queue as does the IEEE 802.15.4 MAC. That configuration will + cause deadlocks: The network logic may be blocked on the work queue + waiting on resources that can only be free by the MAC logic but the + MAC is unable to run because the work queue is blocked. The + recommend configuration is: Network on the LP work queue; MAC on HP + work queue. Blocking on the HP work queue is a very bad thing in + any case. + config MAC802154_HPWORK bool "High priority" depends on SCHED_HPWORK @@ -159,9 +168,18 @@ choice depends on SCHED_WORKQUEUE ---help--- Work queue support is required to use the IEEE802.15.4 network - driver. If the low priority work queue is available, then it shoul + driver. If the low priority work queue is available, then it should be used by the loopback driver. + WARNING!! The IEEE802.15.4 network device must never run on the same + work queue as does the IEEE 802.15.4 MAC. That configuration will + cause deadlocks: The network logic may be blocked on the work queue + waiting on resources that can only be free by the MAC logic but the + MAC is unable to run because the work queue is blocked. The + recommend configuration is: Network on the LP work queue; MAC on HP + work queue. Blocking on the HP work queue is a very bad thing in + any case. + config IEEE802154_NETDEV_HPWORK bool "High priority" depends on SCHED_HPWORK