Hi!
Yet again I try to fight cx23885 driver's "risc op code error" bug.
I found very weird "fix":
If I apply attached patch _AND_ enable KASAN, then problem disappear.
If I disable KASAN or delete _ANY_ new line from patch, then problem
reappear.
I tried to replace "printk" with delays and with memory barriers, but
nothing works.
I would like to hear from community any ideas:
1. why this "fix" helps
2. what weird things "printk" can do when KASAN enabled
3. why we need two consecutive "cx23885_irq_get_mask(dev);" commands,
first of which need strange "companions"
4. what else I can try to use instead of "printk"
Raimonds Cicans
--- /usr/src/linux-5.10.27-gentoo__orig/drivers/media/pci/cx23885/cx23885-core.c 2021-04-03 09:20:56.609971911 +0300
+++ /usr/src/linux-5.10.27-gentoo/drivers/media/pci/cx23885/cx23885-core.c 2021-06-17 22:34:49.503333355 +0300
@@ -1517,6 +1517,10 @@
if (debug > 4)
cx23885_tsport_reg_dump(port);
+ printk(KERN_INFO);
+ cx23885_irq_get_mask(dev);
+ printk(KERN_INFO);
+
cx23885_irq_get_mask(dev);
/* clear dma in progress */