Revert "module: error out early on concurrent load of the same module file"
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 29 May 2023 10:40:33 +0000 (06:40 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 29 May 2023 10:40:33 +0000 (06:40 -0400)
commitac2263b588dffd3a1efd7ed0b156ea6c5aea200d
tree0545b386409da5005779c2df1bc5b4f80f437cc0
parente338142b39cf40155054f95daa28d210d2ee1b2d
Revert "module: error out early on concurrent load of the same module file"

This reverts commit 9828ed3f695a138f7add89fa2a186ababceb8006.

Sadly, it does seem to cause failures to load modules. Johan Hovold reports:

 "This change breaks module loading during boot on the Lenovo Thinkpad
  X13s (aarch64).

  Specifically it results in indefinite probe deferral of the display
  and USB (ethernet) which makes it a pain to debug. Typing in the dark
  to acquire some logs reveals that other modules are missing as well"

Since this was applied late as a "let's try this", I'm reverting it
asap, and we can try to figure out what goes wrong later.  The excessive
parallel module loading problem is annoying, but not noticeable in
normal situations, and this was only meant as an optimistic workaround
for a user-space bug.

One possible solution may be to do the optimistic exclusive open first,
and then use a lock to serialize loading if that fails.

Reported-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/lkml/ZHRpH-JXAxA6DnzR@hovoldconsulting.com/
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/fs.h
kernel/module/main.c