Re: BUG: sleeping function called from invalid context in submit_async_request
From: Oliver Neukum
Date: Sat Jun 27 2026 - 04:06:04 EST
Hi,
On 26.06.26 23:26, sanan.hasanou@xxxxxxxxx wrote:
kzalloc_noprof include/linux/slab.h:1200 [inline]
submit_async_request+0xd2/0x9c0 drivers/usb/misc/uss720.c:137
set_1284_register drivers/usb/misc/uss720.c:237 [inline]
parport_uss720_write_data+0x70/0x130 drivers/usb/misc/uss720.c:337
lcd_write_cmd_p8+0x94/0x7f0 drivers/auxdisplay/panel.c:752
hd44780_common_init_display+0x188/0x4f0 drivers/auxdisplay/hd44780_common.c:124
charlcd_init drivers/auxdisplay/charlcd.c:585 [inline]
charlcd_register+0x1e6/0x320 drivers/auxdisplay/charlcd.c:652
panel_attach+0x19f9/0x1f20 drivers/auxdisplay/panel.c:1644
driver_check+0x51/0x60 drivers/parport/share.c:158
Are you connecting an auxdisplay to a USB parport?
It seems the issue is that
static void lcd_write_cmd_p8(struct hd44780_common *hdc, int cmd)
{
spin_lock_irq(&pprt_lock);
/* present the data to the data port */
w_dtr(pprt, cmd);
assumes that you can write to a parport with a spinlock held.
uss720 assumes that the method implementing that can use GFP_KERNEL.
I am not sure whether this was even ever defined.
Adding relevant people.
Regards
Oliver