mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
When a fabric receives an error interrupt, the error may have
occurred on a different fabric. The target timeout lookup was using
the wrong base address (cbb->regs) with offsets from a different
fabric's target map, causing a kernel page fault.
Unable to handle kernel paging request at virtual address ffff80000954cc00
pc : tegra234_cbb_get_tmo_slv+0xc/0x28
Call trace:
tegra234_cbb_get_tmo_slv+0xc/0x28
print_err_notifier+0x6c0/0x7d0
tegra234_cbb_isr+0xe4/0x1b4
Add tegra234_cbb_get_fabric() to look up the correct fabric device
using fab_id, and use its base address for accessing target timeout
registers.
Fixes:
|
||
|---|---|---|
| .. | ||
| Makefile | ||
| tegra-cbb.c | ||
| tegra194-cbb.c | ||
| tegra234-cbb.c | ||