An recursive locking in igb and igc drivers

Bug #1926564 reported by AceLan Kao
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Critical
Unassigned
linux (Ubuntu)
Fix Released
Undecided
AceLan Kao
Hirsute
Won't Fix
Undecided
AceLan Kao
Impish
Won't Fix
Undecided
AceLan Kao
linux-oem-5.10 (Ubuntu)
Invalid
Undecided
Unassigned
Focal
Fix Released
Undecided
AceLan Kao

Bug Description

[Impact]
The rtnl_lock() has been called in rtnetlink_rcv_msg(), and then in
__dev_open() it calls pm_runtime_resume() to resume devices, and in
some devices' resume function(igb_resum,igc_resume) they calls rtnl_lock()
again. That leads to a recursive lock.

This issue is introduced by below commit since v5.9-rc1
bd869245a3dc net: core: try to runtime-resume detached device in __dev_open

[Fix]
This commit currently is still under discussion fixes the issue.
https://lkml.org/lkml/2021/4/20/123

[Test]
Verified on Dell Precision workstations.

[Where problems could occur]
The patch is pretty straightforward, no problems could occur by this change.

CVE References

AceLan Kao (acelankao)
no longer affects: linux (Ubuntu Focal)
no longer affects: linux-oem-5.10 (Ubuntu Hirsute)
no longer affects: linux-oem-5.10 (Ubuntu Impish)
Changed in linux-oem-5.10 (Ubuntu):
status: New → Invalid
Changed in linux (Ubuntu Hirsute):
status: New → In Progress
Changed in linux (Ubuntu Impish):
status: New → In Progress
Changed in linux-oem-5.10 (Ubuntu Focal):
status: New → In Progress
Changed in linux (Ubuntu Hirsute):
assignee: nobody → AceLan Kao (acelankao)
Changed in linux (Ubuntu Impish):
assignee: nobody → AceLan Kao (acelankao)
Changed in linux-oem-5.10 (Ubuntu Focal):
assignee: nobody → AceLan Kao (acelankao)
description: updated
tags: added: oem-priority originate-from-1924661 somerville
tags: added: originate-from-1916870
tags: added: originate-from-1917841
AceLan Kao (acelankao)
description: updated
description: updated
Timo Aaltonen (tjaalton)
Changed in linux-oem-5.10 (Ubuntu Focal):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal' to 'verification-done-focal'. If the problem still exists, change the tag 'verification-needed-focal' to 'verification-failed-focal'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-focal
AceLan Kao (acelankao)
tags: added: verification-done-focal
removed: verification-needed-focal
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (16.0 KiB)

This bug was fixed in the package linux-oem-5.10 - 5.10.0-1029.30

---------------
linux-oem-5.10 (5.10.0-1029.30) focal; urgency=medium

  * focal/linux-oem-5.10: 5.10.0-1029.30 -proposed tracker (LP: #1930076)

  * CVE-2021-33200
    - bpf: Wrap aux data inside bpf_sanitize_info container
    - bpf: Fix mask direction swap upon off reg sign change
    - bpf: No need to simulate speculative domain for immediates

linux-oem-5.10 (5.10.0-1028.29) focal; urgency=medium

  * focal/linux-oem-5.10: 5.10.0-1028.29 -proposed tracker (LP: #1929167)

  * Packaging resync (LP: #1786013)
    - update dkms package versions

  * TGL-H system NV GPU fallen off the bus after resuming from s2idle with the
    external display connected via docking station (LP: #1929166)
    - SAUCE: ACPI: avoid NVIDIA GPU fallen with an _OSI string

  * AX201 BT will cause system could not enter S0i3 (LP: #1928047)
    - drm/i915: Tweaked Wa_14010685332 for all PCHs

  * Realtek USB hubs in Dell WD19SC/DC/TB fail to work after exiting s2idle
    (LP: #1928242)
    - USB: Verify the port status when timeout happens during port suspend
    - Revert "USB: Add reset-resume quirk for WD19's Realtek Hub"

  * Support mic-mute on Dell's platform (LP: #1928750)
    - ASoC: rt715: add main capture switch and main capture volume
    - ASoC: rt715: remove kcontrols which no longer be used
    - ASoC: rt715: modification for code simplicity
    - platform/x86: Move all dell drivers to their own subdirectory
    - SAUCE: platform/x86: dell-privacy: Add support for Dell hardware privacy
    - SAUCE: ASoC: rt715:add micmute led state control supports
    - [Config] Update configs for Dell's E-Privacy

linux-oem-5.10 (5.10.0-1027.28) focal; urgency=medium

  * focal/linux-oem-5.10: 5.10.0-1027.28 -proposed tracker (LP: #1927620)

  * Introduce the 465 driver series, fabric-manager, and libnvidia-nscq
    (LP: #1925522)
    - debian/dkms-versions -- add NVIDIA 465 and migrate 450 to 460

  * Packaging resync (LP: #1786013)
    - update dkms package versions

  * On TGL platforms screen shows garbage when browsing website by scrolling
    mouse (LP: #1926579)
    - SAUCE: drm/i915/display: Disable PSR2 if TGL Display stepping is B1 from A0

  * Add s2idle support on AMD Renoir and Cezanne (LP: #1927067)
    - drm/amd/display: setup system context in dm_init
    - drm/amd/display: add S/G support for Renoir
    - drm/amdgpu: drop extra drm_kms_helper_poll_enable/disable calls
    - drm/amdgpu: use runpm flag rather than fbcon for kfd runtime suspend (v2)
    - drm/amdgpu: reset runpm flag if device suspend fails
    - drm/amdgpu: add s0i3 capacity check for s0i3 routine (v2)
    - drm/amdgpu: add amdgpu_gfx_state_change_set() set gfx power change entry
      (v2)
    - drm/amdgpu: update amdgpu device suspend/resume sequence for s0i3 support
    - drm/amd/pm: add gfx_state_change_set() for rn gfx power switch (v2)
    - drm/amdgpu: add judgement for suspend/resume sequence
    - drm/amdgpu/pm: no need GPU status set since
      mmnbif_gpu_BIF_DOORBELL_FENCE_CNTL added in FSDL
    - drm/amdgpu: fix shutdown and poweroff process failed with s0ix
    - drm/amdgpu: Only check for S0ix if AMD_PMC ...

Changed in linux-oem-5.10 (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

this is not upstream as-is, but is there something else?

Changed in linux (Ubuntu Hirsute):
status: In Progress → Won't Fix
Changed in linux (Ubuntu Impish):
status: In Progress → Won't Fix
Changed in linux (Ubuntu):
status: In Progress → Incomplete
Changed in hwe-next:
importance: Undecided → Critical
status: New → Incomplete
Revision history for this message
AceLan Kao (acelankao) wrote :

This issue has been fixed by below commit which is included in v5.16
ac8c58f5b535 igb: fix deadlock caused by taking RTNL in RPM resume path

Timo Aaltonen (tjaalton)
Changed in linux (Ubuntu):
status: Incomplete → Fix Released
Changed in hwe-next:
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.