In the Linux kernel, the following vulnerability has been resolved: fbdev: omap: use threaded IRQ for LCD DMA When using touchscreen and framebuffer, Nokia 770 crashes easily with: BUG: scheduling while atomic: irq/144-ads7846/82/0x00010000 Modules linked in: usbfecm gether usbfrndis uether libcomposite configfs omapudc ohciomap ohcihcd CPU: 0 UID: 0 PID: 82 Comm: irq/144-ads7846 Not tainted 6.12.7-770 #2 Hardware name: Nokia 770 Call trace: unwindbacktrace from showstack+0x10/0x14 showstack from dumpstacklvl+0x54/0x5c dumpstacklvl from _schedulebug+0x50/0x70 _schedulebug from _schedule+0x4d4/0x5bc _schedule from schedule+0x34/0xa0 schedule from schedulepreemptdisabled+0xc/0x10 schedulepreemptdisabled from _mutexlock.constprop.0+0x218/0x3b4 _mutexlock.constprop.0 from clkpreparelock+0x38/0xe4 clkpreparelock from clksetrate+0x18/0x154 clksetrate from sossireaddata+0x4c/0x168 sossireaddata from hwa742readreg+0x5c/0x8c hwa742readreg from sendframehandler+0xfc/0x300 sendframehandler from processpendingrequests+0x74/0xd0 processpendingrequests from lcddmairqhandler+0x50/0x74 lcddmairqhandler from _handleirqeventpercpu+0x44/0x130 _handleirqeventpercpu from handleirqevent+0x28/0x68 handleirqevent from handlelevelirq+0x9c/0x170 handlelevelirq from generichandledomainirq+0x2c/0x3c generichandledomainirq from omap1handleirq+0x40/0x8c omap1handleirq from generichandlearchirq+0x28/0x3c generichandlearchirq from callwithstack+0x1c/0x24 callwithstack from _irqsvc+0x94/0xa8 Exception stack(0xc5255da0 to 0xc5255de8) 5da0: 00000001 c22fc620 00000000 00000000 c08384a8 c106fc00 00000000 c240c248 5dc0: c113a600 c3f6ec30 00000001 00000000 c22fc620 c5255df0 c22fc620 c0279a94 5de0: 60000013 ffffffff _irqsvc from clkpreparelock+0x4c/0xe4 clkpreparelock from clkgetrate+0x10/0x74 clkgetrate from uwiresetuptransfer+0x40/0x180 uwiresetuptransfer from spibitbangtransferone+0x2c/0x9c spibitbangtransferone from spitransferonemessage+0x2d0/0x664 spitransferonemessage from _spipumptransfermessage+0x29c/0x498 _spipumptransfermessage from _spisync+0x1f8/0x2e8 _spisync from spisync+0x24/0x40 spisync from ads7846halfdreadstate+0x5c/0x1c0 ads7846halfdreadstate from ads7846irq+0x58/0x348 ads7846irq from irqthreadfn+0x1c/0x78 irqthreadfn from irqthread+0x120/0x228 irqthread from kthread+0xc8/0xe8 kthread from retfromfork+0x14/0x28 As a quick fix, switch to a threaded IRQ which provides a stable system.