linux-stable/drivers/gpu/drm/i915
Steven Rostedt (Google) 292a089d78 treewide: Convert del_timer*() to timer_shutdown*()
Due to several bugs caused by timers being re-armed after they are
shutdown and just before they are freed, a new state of timers was added
called "shutdown".  After a timer is set to this state, then it can no
longer be re-armed.

The following script was run to find all the trivial locations where
del_timer() or del_timer_sync() is called in the same function that the
object holding the timer is freed.  It also ignores any locations where
the timer->function is modified between the del_timer*() and the free(),
as that is not considered a "trivial" case.

This was created by using a coccinelle script and the following
commands:

    $ cat timer.cocci
    @@
    expression ptr, slab;
    identifier timer, rfield;
    @@
    (
    -       del_timer(&ptr->timer);
    +       timer_shutdown(&ptr->timer);
    |
    -       del_timer_sync(&ptr->timer);
    +       timer_shutdown_sync(&ptr->timer);
    )
      ... when strict
          when != ptr->timer
    (
            kfree_rcu(ptr, rfield);
    |
            kmem_cache_free(slab, ptr);
    |
            kfree(ptr);
    )

    $ spatch timer.cocci . > /tmp/t.patch
    $ patch -p1 < /tmp/t.patch

Link: https://lore.kernel.org/lkml/20221123201306.823305113@linutronix.de/
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Acked-by: Pavel Machek <pavel@ucw.cz> [ LED ]
Acked-by: Kalle Valo <kvalo@kernel.org> [ wireless ]
Acked-by: Paolo Abeni <pabeni@redhat.com> [ networking ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-12-25 13:38:09 -08:00
..
display drm/i915/display: Don't disable DDI/Transcoder when setting phy test pattern 2022-12-13 13:22:23 -05:00
gem drm fixes for 6.2-rc1 2022-12-23 11:09:44 -08:00
gt drm fixes for 6.2-rc1 2022-12-23 11:09:44 -08:00
gvt VFIO updates for v6.2-rc1 2022-12-15 13:12:15 -08:00
pxp drm/i915/pxp: Separate PXP FW interface structures for both v42 and 43 2022-11-16 09:36:01 -08:00
selftests drm/i915/selftests: add igt_vma_move_to_active_unlocked 2022-11-16 09:27:32 +00:00
.gitignore
i915_active.c drm/i915: Bump GT idling delay to 2 jiffies 2022-07-12 17:44:40 -04:00
i915_active.h drm/i915: Remove unused bits of i915_vma/active api 2021-12-20 16:26:09 +01:00
i915_active_types.h drm/i915/active: remove useless i915_utils.h include 2021-12-13 12:04:44 +02:00
i915_cmd_parser.c drm/i915: include linux/highmem.h and linux/swap.h where needed 2022-03-04 11:15:25 +02:00
i915_cmd_parser.h drm/i915: split out i915_cmd_parser.h from i915_drv.h 2022-01-10 15:43:09 +02:00
i915_config.c
i915_debugfs.c drm/i915: Partial abandonment of legacy DRM logging macros 2022-11-10 12:35:46 +00:00
i915_debugfs.h
i915_debugfs_params.c drm/i915: Use to_gt() helper 2021-12-17 21:51:59 -08:00
i915_debugfs_params.h
i915_deps.c drm/i915: fix broken build 2022-04-08 10:36:11 +02:00
i915_deps.h drm/i915: Break out the i915_deps utility 2021-12-22 08:52:57 +01:00
i915_driver.c drm/i915/mtl: Handle wopcm per-GT and limit calculations. 2022-11-14 10:11:47 -08:00
i915_driver.h drm/i915: Move intel_vtd_active and run_as_guest to i915_utils 2022-03-30 12:04:01 +01:00
i915_drm_client.c drm/i915/fdinfo: Don't show engine classes not present 2022-06-20 13:07:49 +03:00
i915_drm_client.h drm/i915/client: only include what's needed 2022-06-07 21:31:17 +03:00
i915_drv.h GVT Changes: 2022-11-23 09:15:44 +10:00
i915_file_private.h drm/i915: Explicitly track DRM clients 2022-04-05 08:38:49 +01:00
i915_fixed.h
i915_gem.c drm/i915/mtl: Handle wopcm per-GT and limit calculations. 2022-11-14 10:11:47 -08:00
i915_gem.h Merge tag 'drm-intel-next-2022-09-16-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2022-09-21 07:51:00 +10:00
i915_gem_evict.c Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_gem_evict.h Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_gem_gtt.c treewide: use get_random_u32() when possible 2022-10-11 17:42:58 -06:00
i915_gem_gtt.h drm/i915: Remove short-term pins from execbuf, v6. 2022-01-18 12:19:30 +01:00
i915_gem_ww.c
i915_gem_ww.h
i915_getparam.c drm/i915: Partial abandonment of legacy DRM logging macros 2022-11-10 12:35:46 +00:00
i915_getparam.h drm/i915: split out i915_getparam.h from i915_drv.h 2022-01-10 15:43:05 +02:00
i915_gpu_error.c Merge drm/drm-next into drm-intel-next 2022-11-14 14:32:34 -05:00
i915_gpu_error.h drm/i915/guc: Record CTB info in error logs 2022-08-17 10:06:59 -07:00
i915_hwmon.c drm/i915/hwmon: Fix a build error used with clang compiler 2022-11-03 09:34:22 +02:00
i915_hwmon.h drm/i915/hwmon: Add HWMON infrastructure 2022-10-17 14:49:29 +05:30
i915_ioc32.c drm/i915: split out i915_getparam.h from i915_drv.h 2022-01-10 15:43:05 +02:00
i915_ioc32.h
i915_ioctl.c drm/i915: split out i915_reg_read_ioctl() to i915_ioctl.[ch] 2022-01-21 09:59:22 +02:00
i915_ioctl.h drm/i915: split out i915_reg_read_ioctl() to i915_ioctl.[ch] 2022-01-21 09:59:22 +02:00
i915_iosf_mbi.h drm/i915: abstraction for iosf to compile on all archs 2021-10-27 00:32:01 -07:00
i915_irq.c GVT Changes: 2022-11-23 09:15:44 +10:00
i915_irq.h drm/i915/irq: make gen2_irq_init()/gen2_irq_reset() static 2022-11-03 16:20:53 +02:00
i915_memcpy.c
i915_memcpy.h
i915_mitigations.c drm/i915: move the DRIVER_* macros to i915_driver.[ch] 2022-02-10 11:44:25 +02:00
i915_mitigations.h
i915_mm.c drm/i915: Skip remap_io_mapping() for non-x86 platforms 2021-12-08 13:26:14 -08:00
i915_mm.h drm/i915: Fix header test for !CONFIG_X86 2022-02-07 12:56:49 +00:00
i915_module.c Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
i915_params.c drm: POC drm on dyndbg - use in core, 2 helpers, 3 drivers. 2022-09-24 15:02:01 +02:00
i915_params.h drm/i915/guc: Remove log size module parameters 2022-08-29 15:02:48 +03:00
i915_pci.c GVT Changes: 2022-11-23 09:15:44 +10:00
i915_pci.h drm/i915: Sanitycheck PCI BARs 2022-08-10 13:11:17 +03:00
i915_perf.c drm/i915/perf: Do not parse context image for HSW 2022-12-09 14:59:46 -05:00
i915_perf.h drm/i915/perf: Apply Wa_18013179988 2022-10-27 12:36:53 -07:00
i915_perf_oa_regs.h drm/i915/perf: Enable bytes per clock reporting in OA 2022-10-27 12:36:19 -07:00
i915_perf_types.h drm/i915/perf: Fix kernel-doc warning 2022-11-10 14:57:56 -08:00
i915_pmu.c drm/i915/gt: Use RC6 residency types as arguments to residency functions 2022-11-17 10:46:58 -05:00
i915_pmu.h
i915_priolist_types.h
i915_pvinfo.h
i915_query.c drm/i915: Partial abandonment of legacy DRM logging macros 2022-11-10 12:35:46 +00:00
i915_query.h
i915_reg.h GVT Changes: 2022-11-23 09:15:44 +10:00
i915_reg_defs.h Merge drm/drm-next into drm-intel-next 2022-11-14 14:32:34 -05:00
i915_request.c drm/i915/huc: stall media submission until HuC is loaded 2022-10-03 11:29:19 -07:00
i915_request.h drm/i915/huc: stall media submission until HuC is loaded 2022-10-03 11:29:19 -07:00
i915_scatterlist.c drm/ttm: rework on ttm_resource to use size_t type 2022-10-27 11:42:58 +02:00
i915_scatterlist.h drm/i915: stop abusing swiotlb_max_segment 2022-10-31 12:32:04 +00:00
i915_scheduler.c
i915_scheduler.h drm/i915/tasklet: separate local hacks around struct tasklet_struct 2022-06-07 21:47:19 +03:00
i915_scheduler_types.h
i915_selftest.h drm/i915/guc: Delay disabling guc_id scheduling for better hysteresis 2022-10-26 17:29:43 -07:00
i915_suspend.c drm/i915/fbc: Remove intel_fbc_global_disable() 2022-04-13 17:19:04 +03:00
i915_suspend.h
i915_sw_fence.c treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
i915_sw_fence.h drm/i915: Remove unused function parameter 2022-09-24 00:59:13 -04:00
i915_sw_fence_work.c drm/i915: Drop stealing of bits from i915_sw_fence function pointer 2021-11-30 17:52:15 -08:00
i915_sw_fence_work.h
i915_switcheroo.c drm/i915/driver: add i915_driver_ prefix to functions 2021-11-17 11:47:55 +02:00
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: Partial abandonment of legacy DRM logging macros 2022-11-10 12:35:46 +00:00
i915_sysfs.h drm/i915/gt: create per-tile sysfs interface 2022-03-21 08:37:39 +00:00
i915_tasklet.h drm/i915/tasklet: separate local hacks around struct tasklet_struct 2022-06-07 21:47:19 +03:00
i915_trace.h Merge drm/drm-next into drm-intel-next 2022-11-14 14:32:34 -05:00
i915_trace_points.c
i915_ttm_buddy_manager.c drm/ttm: rework on ttm_resource to use size_t type 2022-10-27 11:42:58 +02:00
i915_ttm_buddy_manager.h drm/i915/uapi: expose the avail tracking 2022-07-01 08:29:59 +01:00
i915_user_extensions.c overflow: Introduce overflows_type() and castable_to_type() 2022-11-02 12:39:27 -07:00
i915_user_extensions.h
i915_utils.c drm/i915: Move intel_vtd_active and run_as_guest to i915_utils 2022-03-30 12:04:01 +01:00
i915_utils.h overflow: Introduce overflows_type() and castable_to_type() 2022-11-02 12:39:27 -07:00
i915_vgpu.c drm/i915: Add object locking to i915_gem_evict_for_node and i915_gem_evict_something, v2. 2022-01-18 12:18:03 +01:00
i915_vgpu.h
i915_vma.c drm/i915: call i915_request_await_object from _i915_vma_move_to_active 2022-11-16 09:27:26 +00:00
i915_vma.h drm/i915: call i915_request_await_object from _i915_vma_move_to_active 2022-11-16 09:27:26 +00:00
i915_vma_resource.c drm/i915/gt: Batch TLB invalidations 2022-08-08 14:06:55 -04:00
i915_vma_resource.h drm/i915/gt: Batch TLB invalidations 2022-08-08 14:06:55 -04:00
i915_vma_types.h drm/i915: Rename ggtt_view as gtt_view 2022-09-08 10:24:17 +01:00
intel_device_info.c drm/i915: stop including i915_irq.h from i915_trace.h 2022-11-11 13:05:19 +02:00
intel_device_info.h Merge tag 'drm-intel-gt-next-2022-11-03' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2022-11-04 17:33:34 +10:00
intel_dram.c drm/i915/mtl: Fix dram info readout 2022-11-29 08:49:14 +00:00
intel_dram.h
intel_gvt.c drm/i915/gvt: Fix the compiling error when CONFIG_DRM_I915_DEBUG_RUNTIME_PM=n 2022-04-28 17:01:17 -04:00
intel_gvt.h drm/i915/gvt: move the gvt code into kvmgt.ko 2022-04-21 07:36:56 -04:00
intel_gvt_mmio_table.c Merge drm/drm-next into drm-intel-next 2022-11-14 14:32:34 -05:00
intel_mchbar_regs.h drm/i915/hwmon: Expose power1_max_interval 2022-10-17 14:57:23 +05:30
intel_memory_region.c treewide: use get_random_u32_below() instead of deprecated function 2022-11-18 02:15:15 +01:00
intel_memory_region.h drm/i915: remove intel_memory_region avail 2022-07-01 08:29:59 +01:00
intel_pch.c drm/i915/mtl: Add PCH support 2022-08-25 12:50:40 -07:00
intel_pch.h drm/i915/mtl: Add PCH support 2022-08-25 12:50:40 -07:00
intel_pci_config.h drm/i915: Name our BARs based on the spec 2022-10-20 21:08:42 +03:00
intel_pcode.c drm/i915/pcode: Add a couple of pcode helpers 2022-05-20 09:11:45 +01:00
intel_pcode.h drm/i915/pcode: Add a couple of pcode helpers 2022-05-20 09:11:45 +01:00
intel_pm.c Merge drm/drm-next into drm-intel-next 2022-11-14 14:32:34 -05:00
intel_pm.h drm/i915: Extract skl_watermark.c 2022-09-09 16:50:33 +03:00
intel_pm_types.h drm/i915: split out intel_pm_types.h 2021-12-03 11:28:12 +02:00
intel_region_ttm.c drm/ttm: rework on ttm_resource to use size_t type 2022-10-27 11:42:58 +02:00
intel_region_ttm.h drm/i915/ttm: fix 32b build 2022-07-17 14:53:47 -04:00
intel_runtime_pm.c Merge tag 'drm-intel-gt-next-2022-11-03' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2022-11-04 17:33:34 +10:00
intel_runtime_pm.h drm/i915/dgfx: Grab wakeref at i915_ttm_unmap_virtual 2022-10-31 18:31:09 +05:30
intel_sbi.c drm/i915: Only include i915_reg.h from .c files 2022-02-02 07:59:54 -08:00
intel_sbi.h
intel_step.c drm/i915/rpl-p: Add stepping info 2022-11-18 08:30:42 -08:00
intel_step.h drm/i915: Parse and set stepping for platforms with GMD 2022-09-23 17:37:23 -07:00
intel_uncore.c drm/i915: Fix documentation for intel_uncore_forcewake_put__locked 2022-12-09 14:59:46 -05:00
intel_uncore.h i915/uncore: Acquire fw before loop in intel_uncore_read64_2x32 2022-11-23 11:46:31 -05:00
intel_wakeref.c
intel_wakeref.h
Kconfig ACPI: video: Add Nvidia WMI EC brightness control detection (v3) 2022-09-03 12:17:26 +02:00
Kconfig.debug
Kconfig.profile drm/i915: Improve long running compute w/a for GuC submission 2022-10-24 12:12:47 -07:00
Kconfig.unstable drm/i915: Kill the fake lmem support 2022-02-18 22:31:46 -08:00
Makefile GVT Changes: 2022-11-23 09:15:44 +10:00
TODO.txt drm/i915/tasklet: separate local hacks around struct tasklet_struct 2022-06-07 21:47:19 +03:00
vlv_sideband.c drm/i915/dpio: move dpio_channel and dpio_phy enums to intel_dpio_phy.h 2022-11-03 16:20:53 +02:00
vlv_sideband.h drm/i915: split out vlv sideband registers from i915_reg.h 2022-01-10 16:17:50 +02:00
vlv_sideband_reg.h drm/i915: split out vlv sideband registers from i915_reg.h 2022-01-10 16:17:50 +02:00
vlv_suspend.c drm/i915: use proper helper for register updates 2022-10-11 13:36:45 +02:00
vlv_suspend.h