cschramm / irda

35 stars 7 forks source link

Alignment fault with aarch64 #14

Closed mirage83 closed 4 months ago

mirage83 commented 4 months ago

I observe the following alignment fault on a i.MX8MN (aarch64) on data transfers: [ 602.373887] Unable to handle kernel paging request at virtual address ffff361ec4b938a4 [ 602.374910] Mem abort info: [ 602.375266] ESR = 0x0000000096000021 [ 602.375741] EC = 0x25: DABT (current EL), IL = 32 bits [ 602.376414] SET = 0, FnV = 0 [ 602.376801] EA = 0, S1PTW = 0 [ 602.377202] FSC = 0x21: alignment fault [ 602.377711] Data abort info: [ 602.378076] ISV = 0, ISS = 0x00000021 [ 602.378562] CM = 0, WnR = 0 [ 602.378945] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000040d02000 [ 602.379791] [ffff361ec4b938a4] pgd=180000004fff9003, p4d=180000004fff9003, pud=180000004fff8003, pmd=180000004ffd5003, pte=0068000044b93f07 [ 602.381380] Internal error: Oops: 0000000096000021 [#1] PREEMPT SMP [ 602.382173] Modules linked in: irtty_sir(O) sir_dev(O) irda(O) hbm_fpga sec_mipi_dsim_imx sec_dsim panel_hbm_mipi spi_nor panel_hbm imx_sdma virt_dma [ 602.383889] CPU: 0 PID: 2689 Comm: kworker/u2:0 Tainted: G W O 6.1.55-[10.00.00]-hbm+ #65 [ 602.385074] Hardware name: Roche HBM5 board with production BSP (DT) [ 602.385876] Workqueue: events_unbound flush_to_ldisc [ 602.386518] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 602.387398] pc : irttp_run_rx_queue+0x170/0x2b0 [irda] [ 602.388075] lr : irttp_data_indication+0x90/0xf4 [irda] [ 602.388754] sp : ffff800008003c00 [ 602.389173] x29: ffff800008003c00 x28: ffffda8edc846000 x27: ffff800008003f48 [ 602.390080] x26: ffff361ecff24940 x25: 0000000000000001 x24: 0000000000000019 [ 602.390988] x23: 0000000000000069 x22: ffff361ec4b938a8 x21: 0000000000000001 [ 602.391894] x20: ffff361ec49f4c00 x19: ffff361ec4b93800 x18: 0000000ad188b189 [ 602.392803] x17: ffff5b8ff37ab000 x16: ffffda8edc37ab00 x15: 0000000840c6fe16 [ 602.393710] x14: 00002869a3bd842c x13: 0000000000000000 x12: 0000000000000002 [ 602.394618] x11: 0000000000000001 x10: ffff5b8ff37ab000 x9 : 0000000000000000 [ 602.395525] x8 : ffff361ecff1ea00 x7 : 0124000000000000 x6 : ffff361ecff1ea28 [ 602.396431] x5 : ffff361ecff1ee30 x4 : 0000000000000000 x3 : ffff361ec4b938a4 [ 602.397336] x2 : 0000000000000000 x1 : ffff361ec44fa240 x0 : ffff361ec4b93800 [ 602.398243] Call trace: [ 602.398554] irttp_run_rx_queue+0x170/0x2b0 [irda] [ 602.399180] irttp_data_indication+0x90/0xf4 [irda] [ 602.399813] irlmp_data_indication+0x60/0xa4 [irda] [ 602.400448] irlmp_link_data_indication+0x140/0x260 [irda] [ 602.401159] irlap_data_indication+0x3c/0x50 [irda] [ 602.401792] irlap_state_nrm_p+0x4c0/0x6b4 [irda] [ 602.402404] irlap_do_event.part.0+0x30/0x12c [irda] [ 602.403050] irlap_do_event+0x28/0x3c [irda] [ 602.403608] irlap_driver_rcv+0x310/0xa10 [irda] [ 602.404209] netif_receive_skb_one_core+0x58/0x84 [ 602.404836] netif_receive_skb+0x18/0x6c [ 602.405359] process_backlog+0xc8/0x190 [ 602.405850] napi_poll+0x38/0x190 [ 602.406300] net_rx_action+0x130/0x2c0 [ 602.406781] _stext+0x11c/0x290 [ 602.407186] __do_softirq+0x10/0x20 [ 602.407653] call_on_irq_stack+0x24/0x4c [ 602.408152] do_softirq_own_stack+0x1c/0x30 [ 602.408684] do_softirq+0x94/0xa0 [ 602.409110] __local_bh_enable_ip+0xa4/0xb0 [ 602.409643] netif_rx+0x50/0x80 [ 602.410047] async_unwrap_char+0x2cc/0x360 [irda] [ 602.410660] sirdev_receive+0x60/0x16c [sir_dev] [ 602.411254] irtty_receive_buf+0x68/0x134 [irtty_sir] [ 602.411900] tty_ldisc_receive_buf+0x58/0x70 [ 602.412445] tty_port_default_receive_buf+0x44/0x84 [ 602.413067] flush_to_ldisc+0xb8/0x1d0 [ 602.413546] process_one_work+0x1d0/0x320 [ 602.414061] worker_thread+0x14c/0x444 [ 602.414540] kthread+0xf8/0xfc [ 602.414932] ret_from_fork+0x10/0x20 [ 602.415393] Code: 94001b44 17ffffd5 91029003 f9800071 (c85f7c60) [ 602.416165] ---[ end trace 0000000000000000 ]--- [ 602.416751] Kernel panic - not syncing: Oops: Fatal exception in interrupt [ 602.417618] Kernel Offset: 0x5a8ed3e00000 from 0xffff800008000000 [ 602.418386] PHYS_OFFSET: 0xffffc9e180000000 [ 602.418915] CPU features: 0x00000,00900084,0000420b [ 602.419533] Memory Limit: none [ 602.419923] ---[ end Kernel panic - not syncing: Oops: Fatal exception in interrupt ]---

The issue occurs after device discovery and some initial data transfer.