Thread (3 messages) 3 messages, 2 authors, 2021-01-24

Re: Infinite recursion in device_reorder_to_tail() due to circular device links

From: Hugh Dickins <hughd@google.com>
Date: 2021-01-24 20:08:07
Also in: linux-usb, lkml

On Sun, 24 Jan 2021, Greg Kroah-Hartman wrote:
On Sat, Jan 23, 2021 at 03:37:30PM -0800, Hugh Dickins wrote:
quoted
On Tue, 12 Jan 2021, Greg Kroah-Hartman wrote:
quoted
On Tue, Jan 12, 2021 at 03:32:04PM +0100, Rafael J. Wysocki wrote:
quoted
On Mon, Jan 11, 2021 at 7:46 PM Stephan Gerhold [off-list ref] wrote:
quoted
Hi,

since 5.11-rc1 I get kernel crashes with infinite recursion in
device_reorder_to_tail() in some situations... It's a bit complicated to
explain so I want to apologize in advance for the long mail. :)

  Kernel panic - not syncing: kernel stack overflow
  CPU: 1 PID: 33 Comm: kworker/1:1 Not tainted 5.11.0-rc3 #1
  Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT)
  Call trace:
   ...
   device_reorder_to_tail+0x4c/0xf0
   device_reorder_to_tail+0x98/0xf0
   device_reorder_to_tail+0x60/0xf0
   device_reorder_to_tail+0x60/0xf0
   device_reorder_to_tail+0x60/0xf0
   ...

The crash happens only in 5.11 with commit 5b6164d3465f ("driver core:
Reorder devices on successful probe"). It stops happening when I revert
this commit.
Thanks for the report!

Greg, please revert commit 5b6164d3465f, it clearly is not an
improvement, at least at this point.
Now reverted, thanks.

greg k-h
I think that there has been a misunderstanding here: although
5b6164d3465f ("driver core: Reorder devices on successful probe")
has been reverted from linux-next (thank you), it has not yet been
reverted from 5.11-rc, and still causing problems there (in my case,
not the infinite recursion Stephan reported in this thread, but the
ThinkPad rmi4 suspend failure that I reported in another thread).
It will be sent to Linus in a few hours, thanks, so should show up in
5.11-rc5.  I had other patches to go along with this to send him at the
same time :)
And indeed it's now in, thanks Greg: I'm sorry for being importunate,
the misunderstanding was mine.

Hugh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help