Re: |Question] iforce Boeder Force Feedback Wheel

From: Greg T
Date: Mon Jul 04 2022 - 14:41:43 EST


2022-07-04 4:19 GMT+02:00, Greg T <greg.iforce@xxxxxxxxx>:
> Call Trace:
> <TASK>
> _raw_spin_lock_irqsave+0x41/0x50
> uart_write+0x69/0x1e0
> serport_serio_write+0x2b/0x40 [serport]
> iforce_serio_xmit+0xa8/0x1a0 [iforce_serio]
> serport_ldisc_write_wakeup+0x59/0x70 [serport]

I've found this in tty_ldisc.h:

* @write_wakeup: [DRV] ``void ()(struct tty_struct *tty)``
*
* This function is called by the low-level tty driver to signal that line
* discpline should try to send more characters to the low-level driver
* for transmission. If the line discpline does not have any more data to
* send, it can just return. If the line discipline does have some data to
* send, please arise a tasklet or workqueue to do the real data transfer.
* Do not send data in this hook, it may lead to a deadlock.

Does iforce-serio.c have a maintainer? It looks to me that
iforce_serio_write_wakeup should not call iforce_serio_xmit in it.