WiFi и Broadcom - работа над ошибками
Две проблемы, связанные с обработкой ошибок, были исправлены нашими разработчиками в проприетарном драйвере для WiFi-адаптеров Broadcom (broadcom-wl, он же broadcom-sta, он же wl). Обе эти проблемы (#2146, #2667) приводили к падению ядра при загрузке системы на ноутбуках у некоторых наших пользователей.
Кстати, на момент подготовки этого материала указанные ошибки далеко не во всех популярных дистрибутивах Linux были исправлены.
Ранний вызов wl_cfg80211_detach()
В некоторых случаях функция wl_cfg80211_detach() драйвера вызывалась до того, как необходимые структуры данных были проинициализированы. Почему так получалось, не до конца ясно: часть соотв. цепочки вызовов функций происходит в "закрытой" (распространяемой в виде бинарного файла) части драйвера, логику работы которой понять сложно.
Пока это было исправлено "симптоматически": в нужных местах в коде были добавлены соответствующие проверки. Разработчикам драйвера также было сообщено об этой проблеме - пока видимой реакции нет.
Обращение по нулевому указателю в wl_inform_single_bss()
Разобраться с этой ошибкой было проще. Функция ieee80211_get_channel() может возвращать NULL в некоторых случаях, но в драйвере это не было учтено. Исправляется это несложно.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.