Thread (12 messages) 12 messages, 3 authors, 2021-02-11

Re: [PATCH] usb: usbip: fix error handling of kthread_get_run()

From: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Date: 2021-02-10 18:47:19

On 2021/02/11 3:20, Shuah Khan wrote:
On 2/10/21 11:16 AM, Tetsuo Handa wrote:
quoted
On 2021/02/11 3:11, Shuah Khan wrote:
quoted
I would like to see to see a complete fix. This patch changes
kthread_get_run() to return NULL. Without adding handling for
NULL in the callers of kthread_get_run(), we will start seeing
problems.
What problems are you aware of?
The fact that driver doesn't cleanup after failing to create
the thread is a problem.
What are the cleanup functions?

Future attach_store() will succeed if cleanup operation (which does
vdev->ud.status = VDEV_ST_NULL;) is done, doesn't it?

And vhci_device_reset() and/or vhci_device_init() involves cleanup
operation (which does vdev->ud.status = VDEV_ST_NULL;), doesn't it?
quoted
quoted
Does this patch fix the problem syzbot found?
Yes, this patch as-is avoids the crash syzbot found.
Good to know. Please add handling for kthread_get_run() return
in the places I suggested in you next version of this patch.
Since vhci_{rx,tx}_loop() do not involve cleanup operation (they simply
terminate upon kthread_should_stop() == true), I don't understand why
failing to start vhci_{rx,tx}_loop() makes difference. Cleanup will be
done by functions other than vhci_{rx,tx}_loop(), won't it?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help