Упс дает кучу информации, полезной при диагностике сбоя. Он начинается с адреса сбоя, причины («доступ к плохой зоне») и содержимого регистров. Трассировка звонка отвечает на вопрос «как мы сюда попали». Первый пункт в списке произошел совсем недавно. Работая в обратном направлении, произошло прерывание (do_IRQ
), потому что WiFi-адаптер Atheros получил пакет (ath_rx_poll
). Процедура передала его в общий код WiFi (ieee80211_input
), который, в свою очередь, передал его в сетевой стек (netif_receive_skb
).
Чтобы выяснить точный код, вызывающий проблему, вы можете запустить
gdb /usr/src/linux/vmlinux
и затем разберите соответствующую функцию, которая может быть mesh_packet_in()
. Возможно, потому что ошибочная инструкция (0xc50659ec) выглядит за пределами mesh_packet_in()
(0xc5065f04). Вы также можете попробовать команду gdb
(gdb) info line 0xc50659ec
чтобы выяснить, какая функция содержит этот адрес.