WiFi и Broadcom - работа над ошибками

Материал из Rosalab Wiki
Перейти к: навигация, поиск


Две проблемы, связанные с обработкой ошибок, были исправлены нашими разработчиками в проприетарном драйвере для WiFi-адаптеров Broadcom (broadcom-wl, он же broadcom-sta, он же wl). Обе эти проблемы (#2146, #2667) приводили к падению ядра при загрузке системы на ноутбуках у некоторых наших пользователей.

Кстати, на момент подготовки этого материала указанные ошибки далеко не во всех популярных дистрибутивах Linux были исправлены.

Ранний вызов wl_cfg80211_detach()

В некоторых случаях функция wl_cfg80211_detach() драйвера вызывалась до того, как необходимые структуры данных были проинициализированы. Почему так получалось, не до конца ясно: часть соотв. цепочки вызовов функций происходит в "закрытой" (распространяемой в виде бинарного файла) части драйвера, логику работы которой понять сложно.

Пока это было исправлено "симптоматически": в нужных местах в коде были добавлены соответствующие проверки. Разработчикам драйвера также было сообщено об этой проблеме - пока видимой реакции нет.

Обращение по нулевому указателю в wl_inform_single_bss()

Разобраться с этой ошибкой было проще. Функция ieee80211_get_channel() может возвращать NULL в некоторых случаях, но в драйвере это не было учтено. Исправляется это несложно.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.