• Chris Wilson's avatar
    drm/i915/selftests: Reorder tasklet_disable vs local_bh_disable · 35c6367f
    Chris Wilson authored
    Due to a change in requirements that disallows tasklet_disable() being
    called from atomic context, rearrange the selftest to avoid doing so.
    
    <3> [324.942939] BUG: sleeping function called from invalid context at kernel/softirq.c:888
    <3> [324.942952] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 5601, name: i915_selftest
    <4> [324.942960] 1 lock held by i915_selftest/5601:
    <4> [324.942963]  #0: ffff888101d19240 (&dev->mutex){....}-{3:3}, at: device_driver_attach+0x18/0x50
    <3> [324.942987] Preemption disabled at:
    <3> [324.942990] [<ffffffffa026fbd2>] live_hold_reset.part.65+0xc2/0x2f0 [i915]
    <4> [324.943255] CPU: 0 PID: 5601 Comm: i915_selftest Tainted: G     U            5.13.0-rc5-CI-CI_DRM_10197+ #1
    <4> [324.943259] Hardware name: Intel Corp. Geminilake/GLK RVP2 LP4SD (07), BIOS GELKRVPA.X64.0062.B30.1708222146 08/22/2017
    <4> [324.943263] Call Trace:
    <4> [324.943267]  dump_stack+0x7f/0xad
    <4> [324.943276]  ___might_sleep.cold.123+0xf2/0x106
    <4> [324.943286]  tasklet_unlock_wait+0x2e/0xb0
    <4> [324.943291]  ? ktime_get_raw+0x81/0x120
    <4> [324.943305]  live_hold_reset.part.65+0x1ab/0x2f0 [i915]
    <4> [324.943500]  __i915_subtests.cold.7+0x42/0x92 [i915]
    <4> [324.943723]  ? __i915_live_teardown+0x50/0x50 [i915]
    <4> [324.943922]  ? __intel_gt_live_setup+0x30/0x30 [i915]
    
    Fixes: da044747 ("tasklets: Replace spin wait in tasklet_unlock_wait()")
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
    Signed-off-by: default avatarMatthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210611060838.647973-1-thomas.hellstrom@linux.intel.com
    35c6367f
selftest_execlists.c 104 KB