]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
soc/tegra: cbb: Fix cross-fabric target timeout lookup
authorSumit Gupta <sumitg@nvidia.com>
Wed, 21 Jan 2026 10:12:05 +0000 (15:42 +0530)
committerThierry Reding <treding@nvidia.com>
Fri, 27 Mar 2026 14:30:54 +0000 (15:30 +0100)
commita5f51b04cbb3ae0f9cb2c4488952b775ebb0ccbf
tree2b47125b450f76233922c544aea45a881c6f428d
parent499f7e5ebbdd9ff0c4d532b1c432f8a61ff585b3
soc/tegra: cbb: Fix cross-fabric target timeout lookup

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: 25de5c8fe0801 ("soc/tegra: cbb: Improve handling for per SoC fabric data")
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/cbb/tegra234-cbb.c