On 11/11/24 10:41 PM, Miquel Raynal wrote:
Why not just enclose this list_del() within a mutex_lock(iflist_mtx) like the others? Would probably make more sense and prevent the use of yet another protection mechanism? Is there anything preventing the use of this mutex here?
IIUC this will not work because 'ieee802154_if_remove()' may be called for 'sdata' which was previously removed via 'ieee802154_remove_interfaces()'. After the latter, 'sdata->list' is undefined (or poisoned if CONFIG_DEBUG_LIST is enabled), so re-entering 'list_del(&sdata->list)' in the former is a bug. Dmitry