* [PATCH v7 24/26] PREEMPT_RT injection
2026-03-10 11:56 [PATCH v7 00/26] drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe Maarten Lankhorst
@ 2026-03-10 11:57 ` Maarten Lankhorst
2026-03-13 9:36 ` kernel test robot
0 siblings, 1 reply; 6+ messages in thread
From: Maarten Lankhorst @ 2026-03-10 11:57 UTC (permalink / raw)
To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
drivers/gpu/drm/i915/Kconfig.debug | 15 ---------------
drivers/gpu/drm/xe/Kconfig.debug | 5 +++++
kernel/Kconfig.preempt | 4 ++--
3 files changed, 7 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug
index 3562a02ef7adc..0ab10ff41e38d 100644
--- a/drivers/gpu/drm/i915/Kconfig.debug
+++ b/drivers/gpu/drm/i915/Kconfig.debug
@@ -233,21 +233,6 @@ config DRM_I915_LOW_LEVEL_TRACEPOINTS
If in doubt, say "N".
-config DRM_I915_DEBUG_VBLANK_EVADE
- bool "Enable extra debug warnings for vblank evasion"
- depends on DRM_I915
- default n
- help
- Choose this option to turn on extra debug warnings for the
- vblank evade mechanism. This gives a warning every time the
- the deadline allotted for the vblank evade critical section
- is exceeded, even if there isn't an actual risk of missing
- the vblank.
-
- Recommended for driver developers only.
-
- If in doubt, say "N".
-
config DRM_I915_DEBUG_RUNTIME_PM
bool "Enable extra state checking for runtime PM"
depends on DRM_I915
diff --git a/drivers/gpu/drm/xe/Kconfig.debug b/drivers/gpu/drm/xe/Kconfig.debug
index 01227c77f6d70..1d5f11c6e88f3 100644
--- a/drivers/gpu/drm/xe/Kconfig.debug
+++ b/drivers/gpu/drm/xe/Kconfig.debug
@@ -30,6 +30,11 @@ config DRM_XE_DEBUG
If in doubt, say "N".
+config DRM_I915_DEBUG_VBLANK_EVADE
+ def_bool y
+ depends on DRM_XE
+
+
config DRM_XE_DEBUG_VM
bool "Enable extra VM debugging info"
default n
diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt
index 88c594c6d7fcd..11bec9be95405 100644
--- a/kernel/Kconfig.preempt
+++ b/kernel/Kconfig.preempt
@@ -90,9 +90,9 @@ config PREEMPT_LAZY
endchoice
config PREEMPT_RT
- bool "Fully Preemptible Kernel (Real-Time)"
- depends on EXPERT && ARCH_SUPPORTS_RT && !COMPILE_TEST
+ def_bool y
select PREEMPTION
+ depends on ARCH_SUPPORTS_RT
help
This option turns the kernel into a real-time kernel by replacing
various locking primitives (spinlocks, rwlocks, etc.) with
--
2.51.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v7 24/26] PREEMPT_RT injection
@ 2026-03-11 0:52 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2026-03-11 0:52 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "low confidence bisect report"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260310115709.2276203-25-dev@lankhorst.se>
References: <20260310115709.2276203-25-dev@lankhorst.se>
TO: Maarten Lankhorst <dev@lankhorst.se>
TO: intel-xe@lists.freedesktop.org
TO: intel-gfx@lists.freedesktop.org
CC: dri-devel@lists.freedesktop.org
CC: Maarten Lankhorst <dev@lankhorst.se>
Hi Maarten,
kernel test robot noticed the following build errors:
[auto build test ERROR on drm-i915/for-linux-next]
[also build test ERROR on next-20260310]
[cannot apply to drm-i915/for-linux-next-fixes drm-misc/drm-misc-next drm-xe/drm-xe-next linus/master v7.0-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-vblank_work-Add-methods-to-schedule-vblank_work-in-2-stages/20260310-205630
base: https://gitlab.freedesktop.org/drm/i915/kernel.git for-linux-next
patch link: https://lore.kernel.org/r/20260310115709.2276203-25-dev%40lankhorst.se
patch subject: [PATCH v7 24/26] PREEMPT_RT injection
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: i386-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260311/202603110102.VTpPsvel-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260311/202603110102.VTpPsvel-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202603110102.VTpPsvel-lkp@intel.com/
All errors (new ones prefixed by >>, old ones prefixed by <<):
WARNING: Module.symvers is missing.
Modules may not have dependencies or modversions.
You may get many unresolved symbol errors.
You can set KBUILD_MODPOST_WARN=1 to turn errors into warning
if you want to proceed at your own risk.
ERROR: modpost: "libnvdimm_test" [test/nfit_test.ko] undefined!
ERROR: modpost: "nd_region_provider_data" [test/nfit_test.ko] undefined!
ERROR: modpost: "devm_kmalloc" [test/nfit_test.ko] undefined!
ERROR: modpost: "platform_driver_unregister" [test/nfit_test.ko] undefined!
ERROR: modpost: "to_nvdimm" [test/nfit_test.ko] undefined!
ERROR: modpost: "gen_pool_create" [test/nfit_test.ko] undefined!
ERROR: modpost: "seq_buf_printf" [test/nfit_test.ko] undefined!
ERROR: modpost: "device_unregister" [test/nfit_test.ko] undefined!
>> ERROR: modpost: "rt_mutex_base_init" [test/nfit_test.ko] undefined!
ERROR: modpost: "__nvdimm_create" [test/nfit_test.ko] undefined!
WARNING: modpost: suppressed 82 unresolved symbol warnings because there were too many)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v7 24/26] PREEMPT_RT injection
@ 2026-03-11 22:37 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2026-03-11 22:37 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260310115709.2276203-25-dev@lankhorst.se>
References: <20260310115709.2276203-25-dev@lankhorst.se>
TO: Maarten Lankhorst <dev@lankhorst.se>
TO: intel-xe@lists.freedesktop.org
TO: intel-gfx@lists.freedesktop.org
CC: dri-devel@lists.freedesktop.org
CC: Maarten Lankhorst <dev@lankhorst.se>
Hi Maarten,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-i915/for-linux-next]
[also build test WARNING on next-20260311]
[cannot apply to drm-i915/for-linux-next-fixes drm-misc/drm-misc-next drm-xe/drm-xe-next linus/master v7.0-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-vblank_work-Add-methods-to-schedule-vblank_work-in-2-stages/20260310-205630
base: https://gitlab.freedesktop.org/drm/i915/kernel.git for-linux-next
patch link: https://lore.kernel.org/r/20260310115709.2276203-25-dev%40lankhorst.se
patch subject: [PATCH v7 24/26] PREEMPT_RT injection
:::::: branch date: 34 hours ago
:::::: commit date: 34 hours ago
config: arm64-randconfig-r073-20260311 (https://download.01.org/0day-ci/archive/20260312/202603120612.2C8AakgY-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 8.5.0
smatch: v0.5.0-9004-gb810ac53
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603120612.2C8AakgY-lkp@intel.com/
New smatch warnings:
drivers/staging/most/dim2/dim2.c:535 configure_channel() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:378 qcom_glink_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:519 qcom_glink_send_open_req() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:592 qcom_glink_rx_done_work() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:1508 __qcom_glink_send() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:1702 qcom_glink_rx_open() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/block/zloop.c:462 zloop_rw() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/block/zloop.c:773 zloop_report_zones() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/net/caif/caif_virtio.c:586 cfv_netdev_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/pinctrl/stm32/pinctrl-stm32.c:652 stm32_gpio_domain_alloc() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/pinctrl/stm32/pinctrl-stm32.c:972 stm32_pmx_set_mode() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/pinctrl/stm32/pinctrl-stm32.c:1110 stm32_pconf_set_driving() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/pinctrl/stm32/pinctrl-stm32.c:1156 stm32_pconf_set_speed() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/pinctrl/stm32/pinctrl-stm32.c:1202 stm32_pconf_set_bias() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/pinctrl/stm32/pinctrl-stm32.c:1258 stm32_pconf_set_advcfgr() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/pinctrl/stm32/pinctrl-stm32.c:1344 stm32_pconf_set_skew_delay() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/crypto/atmel-aes.c:911 atmel_aes_handle_queue() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/vfio/platform/vfio_platform_irq.c:165 vfio_automasked_irq_handler() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/tee/optee/notif.c:83 optee_notif_wait() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/rpmsg_char.c:236 rpmsg_eptdev_read_iter() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/clk/stm32/clk-stm32mp1.c:1006 timer_ker_set_rate() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/staging/nvec/nvec.c:407 nvec_request_master() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/staging/nvec/nvec.c:467 nvec_dispatch() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/firmware/arm_scmi/transports/virtio.c:292 scmi_vio_complete_cb() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c:3011 arm_smmu_attach_prepare() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/net/ieee802154/cc2520.c:531 cc2520_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/firmware/arm_scmi/raw_mode.c:729 scmi_raw_message_dequeue() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/firmware/arm_scmi/raw_mode.c:875 scmi_test_dbg_raw_common_poll() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c:811 wave5_vpu_dec_stop() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c:879 wave5_vpu_dec_start() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/clk/tegra/clk-pll.c:1533 clk_pllc_set_rate() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/iommu/sun50i-iommu.c:489 sun50i_iommu_enable() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/i2c/busses/i2c-rk3x.c:1131 rk3x_i2c_xfer_common() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/i2c/busses/i2c-uniphier-f.c:357 uniphier_fi2c_xfer_one() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpio/gpio-mvebu.c:639 mvebu_pwm_request() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpio/gpio-mvebu.c:1295 mvebu_gpio_probe() warn: 'mvchip->clk' from clk_prepare_enable() not released on lines: 1183,1242.
drivers/nvdimm/nd_virtio.c:92 virtio_pmem_flush() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/scsi_transport_iscsi.c:1718 iscsi_is_session_online() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/scsi_transport_iscsi.c:1862 iscsi_block_scsi_eh() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/scsi_transport_iscsi.c:1987 __iscsi_unbind_session() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/aha152x.c:1468 busfree_run() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:2473 slot_complete_v2_hw() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi-tegra114.c:991 tegra_spi_setup() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi-tegra210-quad.c:1278 tegra_qspi_combined_seq_xfer() error: calling 'spin_unlock_irqrestore()' with bogus flags
lib/test_context-analysis.c:110 test_spinlock() error: calling 'spin_unlock_irqrestore()' with bogus flags
lib/test_context-analysis.c:127 test_spinlock_trylock_extra() error: calling 'spin_unlock_irqrestore()' with bogus flags
Old smatch warnings:
drivers/staging/most/dim2/dim2.c:550 configure_channel() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:393 qcom_glink_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rpmsg/qcom_glink_native.c:504 qcom_glink_send_open_req() error: strcpy() 'channel->name' too large for 'req->data' (1010102 vs 32)
drivers/block/zloop.c:487 zloop_rw() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/net/caif/caif_virtio.c:594 cfv_netdev_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/net/caif/caif_virtio.c:747 cfv_probe() error: we previously assumed 'vdev->vringh_config' could be null (see line 668)
drivers/crypto/atmel-aes.c:918 atmel_aes_handle_queue() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/firmware/arm_scmi/transports/virtio.c:298 scmi_vio_complete_cb() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c:854 wave5_vpu_dec_stop() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/iommu/sun50i-iommu.c:496 sun50i_iommu_enable() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/nvdimm/nd_virtio.c:106 virtio_pmem_flush() warn: '&req_data->list' not removed from list
drivers/scsi/scsi_transport_iscsi.c:1866 iscsi_block_scsi_eh() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/scsi_transport_iscsi.c:1997 __iscsi_unbind_session() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/scsi_transport_iscsi.c:2011 __iscsi_unbind_session() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/aha152x.c:1488 busfree_run() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/aha152x.c:1503 busfree_run() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi-tegra210-quad.c:696 tegra_qspi_start_dma_based_transfer() error: we previously assumed 'tqspi->tx_dma_chan' could be null (see line 652)
lib/test_context-analysis.c:103 test_raw_spinlock_trylock_extra() warn: mixing irq and irqsave
include/linux/spinlock.h:540 class_raw_spinlock_try_constructor() warn: passing zero to 'ERR_PTR'
lib/test_context-analysis.c:127 test_spinlock_trylock_extra() warn: mixing irq and irqsave
include/linux/spinlock.h:592 class_spinlock_try_constructor() warn: passing zero to 'ERR_PTR'
include/linux/mutex.h:254 class_mutex_try_constructor() warn: passing zero to 'ERR_PTR'
include/linux/rwsem.h:260 class_rwsem_read_try_constructor() warn: passing zero to 'ERR_PTR'
include/linux/rwsem.h:271 class_rwsem_write_try_constructor() warn: passing zero to 'ERR_PTR'
vim +535 drivers/staging/most/dim2/dim2.c
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 437
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 438 /**
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 439 * configure_channel - initialize a channel
6f4d367f335666 drivers/staging/most/dim2/dim2.c Lee Jones 2021-04-14 440 * @most_iface: interface the channel belongs to
6f4d367f335666 drivers/staging/most/dim2/dim2.c Lee Jones 2021-04-14 441 * @ch_idx: channel index to be configured
6f4d367f335666 drivers/staging/most/dim2/dim2.c Lee Jones 2021-04-14 442 * @ccfg: structure that holds the configuration information
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 443 *
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 444 * Receives configuration information from mostcore and initialize
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 445 * the corresponding channel. Return 0 on success, negative on failure.
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 446 */
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 447 static int configure_channel(struct most_interface *most_iface, int ch_idx,
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 448 struct most_channel_config *ccfg)
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 449 {
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 450 struct dim2_hdm *dev = iface_to_hdm(most_iface);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 451 bool const is_tx = ccfg->direction == MOST_CH_TX;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 452 u16 const sub_size = ccfg->subbuffer_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 453 u16 const buf_size = ccfg->buffer_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 454 u16 new_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 455 unsigned long flags;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 456 u8 hal_ret;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 457 int const ch_addr = ch_idx * 2 + 2;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 458 struct hdm_channel *const hdm_ch = dev->hch + ch_idx;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 459
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 460 BUG_ON(ch_idx < 0 || ch_idx >= DMA_CHANNELS);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 461
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 462 if (hdm_ch->is_initialized)
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 463 return -EPERM;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 464
dbd36d5772f7e4 drivers/staging/most/dim2/dim2.c Christian Gromm 2018-05-08 465 /* do not reset if the property was set by user, see poison_channel */
dbd36d5772f7e4 drivers/staging/most/dim2/dim2.c Christian Gromm 2018-05-08 466 hdm_ch->reset_dbr_size = ccfg->dbr_size ? NULL : &ccfg->dbr_size;
dbd36d5772f7e4 drivers/staging/most/dim2/dim2.c Christian Gromm 2018-05-08 467
dbd36d5772f7e4 drivers/staging/most/dim2/dim2.c Christian Gromm 2018-05-08 468 /* zero value is default dbr_size, see dim2 hal */
dbd36d5772f7e4 drivers/staging/most/dim2/dim2.c Christian Gromm 2018-05-08 469 hdm_ch->ch.dbr_size = ccfg->dbr_size;
dbd36d5772f7e4 drivers/staging/most/dim2/dim2.c Christian Gromm 2018-05-08 470
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 471 switch (ccfg->data_type) {
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 472 case MOST_CH_CONTROL:
c64c6073e8fe1c drivers/staging/most/hdm-dim2/dim2_hdm.c Chaehyun Lim 2015-11-02 473 new_size = dim_norm_ctrl_async_buffer_size(buf_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 474 if (new_size == 0) {
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 475 pr_err("%s: too small buffer size\n", hdm_ch->name);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 476 return -EINVAL;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 477 }
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 478 ccfg->buffer_size = new_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 479 if (new_size != buf_size)
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 480 pr_warn("%s: fixed buffer size (%d -> %d)\n",
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 481 hdm_ch->name, buf_size, new_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 482 spin_lock_irqsave(&dim_lock, flags);
a3f3e921194710 drivers/staging/most/hdm-dim2/dim2_hdm.c Chaehyun Lim 2015-11-02 483 hal_ret = dim_init_control(&hdm_ch->ch, is_tx, ch_addr,
6631c5c9b0c369 drivers/staging/most/hdm-dim2/dim2_hdm.c Andrey Shvetsov 2016-09-15 484 is_tx ? new_size * 2 : new_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 485 break;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 486 case MOST_CH_ASYNC:
c64c6073e8fe1c drivers/staging/most/hdm-dim2/dim2_hdm.c Chaehyun Lim 2015-11-02 487 new_size = dim_norm_ctrl_async_buffer_size(buf_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 488 if (new_size == 0) {
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 489 pr_err("%s: too small buffer size\n", hdm_ch->name);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 490 return -EINVAL;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 491 }
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 492 ccfg->buffer_size = new_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 493 if (new_size != buf_size)
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 494 pr_warn("%s: fixed buffer size (%d -> %d)\n",
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 495 hdm_ch->name, buf_size, new_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 496 spin_lock_irqsave(&dim_lock, flags);
6631c5c9b0c369 drivers/staging/most/hdm-dim2/dim2_hdm.c Andrey Shvetsov 2016-09-15 497 hal_ret = dim_init_async(&hdm_ch->ch, is_tx, ch_addr,
6631c5c9b0c369 drivers/staging/most/hdm-dim2/dim2_hdm.c Andrey Shvetsov 2016-09-15 498 is_tx ? new_size * 2 : new_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 499 break;
0540609fe217c3 drivers/staging/most/hdm-dim2/dim2_hdm.c Andrey Shvetsov 2016-09-21 500 case MOST_CH_ISOC:
e302ca47b59f02 drivers/staging/most/hdm-dim2/dim2_hdm.c Chaehyun Lim 2015-11-02 501 new_size = dim_norm_isoc_buffer_size(buf_size, sub_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 502 if (new_size == 0) {
9158d33a5d38d1 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-10-15 503 pr_err("%s: invalid sub-buffer size or too small buffer size\n",
9158d33a5d38d1 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-10-15 504 hdm_ch->name);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 505 return -EINVAL;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 506 }
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 507 ccfg->buffer_size = new_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 508 if (new_size != buf_size)
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 509 pr_warn("%s: fixed buffer size (%d -> %d)\n",
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 510 hdm_ch->name, buf_size, new_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 511 spin_lock_irqsave(&dim_lock, flags);
f1383176c92801 drivers/staging/most/hdm-dim2/dim2_hdm.c Chaehyun Lim 2015-11-02 512 hal_ret = dim_init_isoc(&hdm_ch->ch, is_tx, ch_addr, sub_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 513 break;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 514 case MOST_CH_SYNC:
aff1924508e880 drivers/staging/most/hdm-dim2/dim2_hdm.c Chaehyun Lim 2015-11-02 515 new_size = dim_norm_sync_buffer_size(buf_size, sub_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 516 if (new_size == 0) {
9158d33a5d38d1 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-10-15 517 pr_err("%s: invalid sub-buffer size or too small buffer size\n",
9158d33a5d38d1 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-10-15 518 hdm_ch->name);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 519 return -EINVAL;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 520 }
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 521 ccfg->buffer_size = new_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 522 if (new_size != buf_size)
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 523 pr_warn("%s: fixed buffer size (%d -> %d)\n",
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 524 hdm_ch->name, buf_size, new_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 525 spin_lock_irqsave(&dim_lock, flags);
10e5efb7b51f30 drivers/staging/most/hdm-dim2/dim2_hdm.c Chaehyun Lim 2015-11-02 526 hal_ret = dim_init_sync(&hdm_ch->ch, is_tx, ch_addr, sub_size);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 527 break;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 528 default:
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 529 pr_err("%s: configure failed, bad channel type: %d\n",
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 530 hdm_ch->name, ccfg->data_type);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 531 return -EINVAL;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 532 }
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 533
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 534 if (hal_ret != DIM_NO_ERROR) {
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 @535 spin_unlock_irqrestore(&dim_lock, flags);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 536 pr_err("%s: configure failed (%d), type: %d, is_tx: %d\n",
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 537 hdm_ch->name, hal_ret, ccfg->data_type, (int)is_tx);
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 538 return -ENODEV;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 539 }
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 540
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 541 hdm_ch->data_type = ccfg->data_type;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 542 hdm_ch->direction = ccfg->direction;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 543 hdm_ch->is_initialized = true;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 544
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 545 if (hdm_ch->data_type == MOST_CH_ASYNC &&
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 546 hdm_ch->direction == MOST_CH_TX &&
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 547 dev->atx_idx < 0)
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 548 dev->atx_idx = ch_idx;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 549
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 550 spin_unlock_irqrestore(&dim_lock, flags);
dbd36d5772f7e4 drivers/staging/most/dim2/dim2.c Christian Gromm 2018-05-08 551 ccfg->dbr_size = hdm_ch->ch.dbr_size;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 552
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 553 return 0;
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 554 }
ba3d7ddfb5c6a2 drivers/staging/most/hdm-dim2/dim2_hdm.c Christian Gromm 2015-07-24 555
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v7 24/26] PREEMPT_RT injection
@ 2026-03-11 22:58 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2026-03-11 22:58 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260310115709.2276203-25-dev@lankhorst.se>
References: <20260310115709.2276203-25-dev@lankhorst.se>
TO: Maarten Lankhorst <dev@lankhorst.se>
TO: intel-xe@lists.freedesktop.org
TO: intel-gfx@lists.freedesktop.org
CC: dri-devel@lists.freedesktop.org
CC: Maarten Lankhorst <dev@lankhorst.se>
Hi Maarten,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-i915/for-linux-next]
[also build test WARNING on next-20260311]
[cannot apply to drm-i915/for-linux-next-fixes drm-misc/drm-misc-next drm-xe/drm-xe-next linus/master v7.0-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-vblank_work-Add-methods-to-schedule-vblank_work-in-2-stages/20260310-205630
base: https://gitlab.freedesktop.org/drm/i915/kernel.git for-linux-next
patch link: https://lore.kernel.org/r/20260310115709.2276203-25-dev%40lankhorst.se
patch subject: [PATCH v7 24/26] PREEMPT_RT injection
:::::: branch date: 34 hours ago
:::::: commit date: 34 hours ago
config: i386-randconfig-141-20260311 (https://download.01.org/0day-ci/archive/20260312/202603120645.BoJHrUED-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9004-gb810ac53
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603120645.BoJHrUED-lkp@intel.com/
New smatch warnings:
drivers/hte/hte.c:221 hte_ts_put() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/hte/hte.c:301 hte_ts_dis_en_common() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/input/touchscreen/ad7877.c:402 ad7877_irq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/accessibility/speakup/speakup_acntpc.c:237 do_catch_up() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/message/fusion/mptscsih.c:1125 mptscsih_search_running_cmds() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/message/fusion/mptbase.c:2096 mpt_detach() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/message/fusion/mptbase.c:7016 mpt_SoftResetHandler() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/message/fusion/mptbase.c:7216 mpt_HardResetHandler() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/char/applicom.c:479 ac_write() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/pci/tw5864/tw5864-video.c:1328 tw5864_handle_frame_work() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/ata/libata-pmp.c:864 sata_pmp_eh_handle_disabled_links() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/ata/libata-core.c:5345 ata_port_request_pm() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/message/fusion/mptsas.c:385 mptsas_cleanup_fw_event_q() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/char/sonypi.c:766 input_keyrelease() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/char/sonypi.c:915 sonypi_misc_read() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/accessibility/speakup/speakup_dtlk.c:239 do_catch_up() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/accessibility/speakup/speakup_keypc.c:243 do_catch_up() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/tty/serial/jsm/jsm_neo.c:778 neo_parse_isr() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi.c:1921 __spi_pump_messages() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi.c:4589 spi_async() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi.c:4689 __spi_sync() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/media/rc/serial_ir.c:667 serial_ir_tx() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/scsi/libsas/sas_ata.c:481 sas_ata_internal_abort() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/qxl/qxl_cmd.c:148 qxl_ring_push() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rtc/rtc-m48t59.c:133 m48t59_rtc_set_time() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/rtc/rtc-m48t59.c:335 m48t59_nvram_write() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/i2c/busses/i2c-elektor.c:116 pcf_isa_waitforpin() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/video/fbdev/via/via-gpio.c:242 viafb_gpio_probe() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/misc/hpilo.c:605 ilo_open() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virtio/virtio_input.c:56 virtinput_recv_events() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virtio/virtio_input.c:333 virtinput_probe() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virtio/virtio_rtc_driver.c:253 viortc_do_cb() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/intel_uncore.c:502 intel_uncore_forcewake_reset() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/radeon/radeon_display.c:601 radeon_crtc_page_flip_target() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/i915_sw_fence.c:391 __i915_sw_fence_await_sw_fence() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c:285 amdgpu_display_crtc_page_flip_target() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/i915_pmu.c:256 get_rc6() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi-topcliff-pch.c:1424 pch_spi_pd_remove() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:2988 amdgpu_vm_handle_fault() error: calling 'spin_unlock_irqrestore()' with bogus flags
mm/slub.c:3812 get_from_partial_node() error: calling 'spin_unlock_irqrestore()' with bogus flags
mm/slub.c:4323 alloc_from_new_slab() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pci224.c:466 pci224_ao_stop() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pci224.c:984 pci224_interrupt() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pci230.c:1045 pci230_ao_stop() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pci230.c:1280 pci230_ao_start() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pci230.c:1843 pci230_ai_stop() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pci230.c:2329 pci230_interrupt() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gpio.c:310 pci1xxxx_gpio_irq_handler() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/gt/intel_execlists_submission.c:897 assert_pending_valid() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/cb_pcidas64.c:2657 ai_cmd() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/ni_pcidio.c:352 setup_mite_dma() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/comedi/drivers/amplc_pc236_common.c:53 pc236_intr_check() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c:108 amdgpu_userq_fence_driver_alloc() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:245 i915_gem_shrink() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/i915_active.c:992 i915_request_add_active_barriers() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/i915_active.c:1094 __i915_active_fence_set() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:2411 pin_guc_id() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c:7321 gfx_v9_0_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:9562 gfx_v10_0_reset_kgq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:9632 gfx_v10_0_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:3603 gfx_v9_4_3_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c:6466 gfx_v11_0_eop_irq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c:4832 gfx_v12_0_eop_irq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v12_1.c:3622 gfx_v12_1_eop_irq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c:1669 sdma_v6_0_process_fence_irq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c:1601 sdma_v7_0_process_fence_irq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_irq.c:515 amdgpu_dm_irq_suspend() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:11132 amdgpu_dm_atomic_commit_tail() error: calling 'spin_unlock_irqrestore()' with bogus flags
Old smatch warnings:
drivers/message/fusion/mptscsih.c:766 mptscsih_io_done() warn: inconsistent indenting
drivers/message/fusion/mptscsih.c:841 mptscsih_io_done() warn: inconsistent indenting
drivers/message/fusion/mptbase.c:2621 mpt_do_ioc_recovery() warn: 'ioc->pcidev->irq' from request_irq() not released on lines: 2621.
drivers/message/fusion/mptbase.c:7019 mpt_SoftResetHandler() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/message/fusion/mptbase.c:7080 mpt_SoftResetHandler() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/char/applicom.c:348 applicom_init() warn: 'RamIO' from ioremap() not released on lines: 253,338,348.
drivers/char/applicom.c:348 applicom_init() warn: 'RamIO' from ioremap() not released on lines: 338,348.
drivers/media/pci/tw5864/tw5864-video.c:1343 tw5864_handle_frame_work() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/ata/libata-pmp.c:964 sata_pmp_eh_recover() warn: missing error code 'rc'
drivers/ata/libata-pmp.c:964 sata_pmp_eh_recover() warn: missing error code 'rc'
drivers/ata/libata-core.c:6280 ata_port_detach() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/virtio/virtio_rtc_driver.c:259 viortc_do_cb() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/intel_uncore.c:515 intel_uncore_forcewake_reset() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/spi/spi-topcliff-pch.c:580 pch_spi_set_tx() error: we previously assumed 'data->pkt_tx_buff' could be null (see line 553)
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:830 amdgpu_vm_flush() error: we previously assumed 'ring->funcs->emit_vm_flush' could be null (see line 803)
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1381 amdgpu_vm_bo_update() error: we previously assumed 'bo' could be null (see line 1320)
drivers/comedi/drivers/amplc_pci230.c:2539 pci230_auto_attach() warn: 'pci_dev->irq' from request_irq() not released on lines: 2481,2485,2524,2534.
drivers/gpu/drm/i915/gt/intel_execlists_submission.c:1613 execlists_dequeue() warn: inconsistent returns '&sched_engine->lock'.
drivers/gpu/drm/i915/gt/intel_execlists_submission.c:3941 execlists_create_virtual() warn: assigning (-2) to unsigned variable 've->base.instance'
drivers/gpu/drm/i915/gt/intel_execlists_submission.c:3942 execlists_create_virtual() warn: assigning (-2) to unsigned variable 've->base.uabi_instance'
drivers/comedi/drivers/cb_pcidas64.c:4039 auto_attach() warn: 'pcidev->irq' from request_irq() not released on lines: 4037.
drivers/gpu/drm/i915/gem/i915_gem_object.h:183 __i915_gem_object_lock() error: we previously assumed 'ww' could be null (see line 172)
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:5377 intel_guc_engine_failure_process_msg() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:5920 guc_create_virtual() warn: assigning (-2) to unsigned variable 've->base.instance'
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:5921 guc_create_virtual() warn: assigning (-2) to unsigned variable 've->base.uabi_instance'
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c:7327 gfx_v9_0_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c:4292 gfx_v10_0_init_microcode() warn: 'adev->gfx.rlc_fw' from request_firmware() not released on lines: 4292.
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c:3609 gfx_v9_4_3_reset_kcq() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:13132 parse_edid_displayid_vrr() warn: variable dereferenced before check 'edid_ext' (see line 13128)
vim +221 drivers/hte/hte.c
31ab09b4218879b Dipen Patel 2022-04-22 140
31ab09b4218879b Dipen Patel 2022-04-22 141 /**
31ab09b4218879b Dipen Patel 2022-04-22 142 * hte_ts_put() - Release and disable timestamp for the given desc.
31ab09b4218879b Dipen Patel 2022-04-22 143 *
31ab09b4218879b Dipen Patel 2022-04-22 144 * @desc: timestamp descriptor.
31ab09b4218879b Dipen Patel 2022-04-22 145 *
31ab09b4218879b Dipen Patel 2022-04-22 146 * Context: debugfs_remove_recursive() function call may use sleeping locks,
31ab09b4218879b Dipen Patel 2022-04-22 147 * not suitable from atomic context.
31ab09b4218879b Dipen Patel 2022-04-22 148 * Returns: 0 on success or a negative error code on failure.
31ab09b4218879b Dipen Patel 2022-04-22 149 */
31ab09b4218879b Dipen Patel 2022-04-22 150 int hte_ts_put(struct hte_ts_desc *desc)
31ab09b4218879b Dipen Patel 2022-04-22 151 {
31ab09b4218879b Dipen Patel 2022-04-22 152 int ret = 0;
31ab09b4218879b Dipen Patel 2022-04-22 153 unsigned long flag;
31ab09b4218879b Dipen Patel 2022-04-22 154 struct hte_device *gdev;
31ab09b4218879b Dipen Patel 2022-04-22 155 struct hte_ts_info *ei;
31ab09b4218879b Dipen Patel 2022-04-22 156
31ab09b4218879b Dipen Patel 2022-04-22 157 if (!desc)
31ab09b4218879b Dipen Patel 2022-04-22 158 return -EINVAL;
31ab09b4218879b Dipen Patel 2022-04-22 159
31ab09b4218879b Dipen Patel 2022-04-22 160 ei = desc->hte_data;
31ab09b4218879b Dipen Patel 2022-04-22 161
31ab09b4218879b Dipen Patel 2022-04-22 162 if (!ei || !ei->gdev)
31ab09b4218879b Dipen Patel 2022-04-22 163 return -EINVAL;
31ab09b4218879b Dipen Patel 2022-04-22 164
31ab09b4218879b Dipen Patel 2022-04-22 165 gdev = ei->gdev;
31ab09b4218879b Dipen Patel 2022-04-22 166
31ab09b4218879b Dipen Patel 2022-04-22 167 mutex_lock(&ei->req_mlock);
31ab09b4218879b Dipen Patel 2022-04-22 168
31ab09b4218879b Dipen Patel 2022-04-22 169 if (unlikely(!test_bit(HTE_TS_REQ, &ei->flags) &&
31ab09b4218879b Dipen Patel 2022-04-22 170 !test_bit(HTE_TS_REGISTERED, &ei->flags))) {
31ab09b4218879b Dipen Patel 2022-04-22 171 dev_info(gdev->sdev, "id:%d is not requested\n",
31ab09b4218879b Dipen Patel 2022-04-22 172 desc->attr.line_id);
31ab09b4218879b Dipen Patel 2022-04-22 173 ret = -EINVAL;
31ab09b4218879b Dipen Patel 2022-04-22 174 goto unlock;
31ab09b4218879b Dipen Patel 2022-04-22 175 }
31ab09b4218879b Dipen Patel 2022-04-22 176
31ab09b4218879b Dipen Patel 2022-04-22 177 if (unlikely(!test_bit(HTE_TS_REQ, &ei->flags) &&
31ab09b4218879b Dipen Patel 2022-04-22 178 test_bit(HTE_TS_REGISTERED, &ei->flags))) {
31ab09b4218879b Dipen Patel 2022-04-22 179 dev_info(gdev->sdev, "id:%d is registered but not requested\n",
31ab09b4218879b Dipen Patel 2022-04-22 180 desc->attr.line_id);
31ab09b4218879b Dipen Patel 2022-04-22 181 ret = -EINVAL;
31ab09b4218879b Dipen Patel 2022-04-22 182 goto unlock;
31ab09b4218879b Dipen Patel 2022-04-22 183 }
31ab09b4218879b Dipen Patel 2022-04-22 184
31ab09b4218879b Dipen Patel 2022-04-22 185 if (test_bit(HTE_TS_REQ, &ei->flags) &&
31ab09b4218879b Dipen Patel 2022-04-22 186 !test_bit(HTE_TS_REGISTERED, &ei->flags)) {
31ab09b4218879b Dipen Patel 2022-04-22 187 clear_bit(HTE_TS_REQ, &ei->flags);
31ab09b4218879b Dipen Patel 2022-04-22 188 desc->hte_data = NULL;
31ab09b4218879b Dipen Patel 2022-04-22 189 ret = 0;
31ab09b4218879b Dipen Patel 2022-04-22 190 goto mod_put;
31ab09b4218879b Dipen Patel 2022-04-22 191 }
31ab09b4218879b Dipen Patel 2022-04-22 192
31ab09b4218879b Dipen Patel 2022-04-22 193 ret = gdev->chip->ops->release(gdev->chip, desc, ei->xlated_id);
31ab09b4218879b Dipen Patel 2022-04-22 194 if (ret) {
31ab09b4218879b Dipen Patel 2022-04-22 195 dev_err(gdev->sdev, "id: %d free failed\n",
31ab09b4218879b Dipen Patel 2022-04-22 196 desc->attr.line_id);
31ab09b4218879b Dipen Patel 2022-04-22 197 goto unlock;
31ab09b4218879b Dipen Patel 2022-04-22 198 }
31ab09b4218879b Dipen Patel 2022-04-22 199
31ab09b4218879b Dipen Patel 2022-04-22 200 kfree(ei->line_name);
31ab09b4218879b Dipen Patel 2022-04-22 201 if (ei->free_attr_name)
31ab09b4218879b Dipen Patel 2022-04-22 202 kfree_const(desc->attr.name);
31ab09b4218879b Dipen Patel 2022-04-22 203
31ab09b4218879b Dipen Patel 2022-04-22 204 debugfs_remove_recursive(ei->ts_dbg_root);
31ab09b4218879b Dipen Patel 2022-04-22 205
31ab09b4218879b Dipen Patel 2022-04-22 206 spin_lock_irqsave(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 207
31ab09b4218879b Dipen Patel 2022-04-22 208 if (test_bit(HTE_TS_QUEUE_WK, &ei->flags)) {
31ab09b4218879b Dipen Patel 2022-04-22 209 spin_unlock_irqrestore(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 210 flush_work(&ei->cb_work);
31ab09b4218879b Dipen Patel 2022-04-22 211 spin_lock_irqsave(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 212 }
31ab09b4218879b Dipen Patel 2022-04-22 213
31ab09b4218879b Dipen Patel 2022-04-22 214 atomic_dec(&gdev->ts_req);
31ab09b4218879b Dipen Patel 2022-04-22 215 atomic_set(&ei->dropped_ts, 0);
31ab09b4218879b Dipen Patel 2022-04-22 216
31ab09b4218879b Dipen Patel 2022-04-22 217 ei->seq = 1;
31ab09b4218879b Dipen Patel 2022-04-22 218 ei->flags = 0;
31ab09b4218879b Dipen Patel 2022-04-22 219 desc->hte_data = NULL;
31ab09b4218879b Dipen Patel 2022-04-22 220
31ab09b4218879b Dipen Patel 2022-04-22 @221 spin_unlock_irqrestore(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 222
31ab09b4218879b Dipen Patel 2022-04-22 223 ei->cb = NULL;
31ab09b4218879b Dipen Patel 2022-04-22 224 ei->tcb = NULL;
31ab09b4218879b Dipen Patel 2022-04-22 225 ei->cl_data = NULL;
31ab09b4218879b Dipen Patel 2022-04-22 226
31ab09b4218879b Dipen Patel 2022-04-22 227 mod_put:
31ab09b4218879b Dipen Patel 2022-04-22 228 module_put(gdev->owner);
31ab09b4218879b Dipen Patel 2022-04-22 229 unlock:
31ab09b4218879b Dipen Patel 2022-04-22 230 mutex_unlock(&ei->req_mlock);
31ab09b4218879b Dipen Patel 2022-04-22 231 dev_dbg(gdev->sdev, "release id: %d\n", desc->attr.line_id);
31ab09b4218879b Dipen Patel 2022-04-22 232
31ab09b4218879b Dipen Patel 2022-04-22 233 return ret;
31ab09b4218879b Dipen Patel 2022-04-22 234 }
31ab09b4218879b Dipen Patel 2022-04-22 235 EXPORT_SYMBOL_GPL(hte_ts_put);
31ab09b4218879b Dipen Patel 2022-04-22 236
31ab09b4218879b Dipen Patel 2022-04-22 237 static int hte_ts_dis_en_common(struct hte_ts_desc *desc, bool en)
31ab09b4218879b Dipen Patel 2022-04-22 238 {
31ab09b4218879b Dipen Patel 2022-04-22 239 u32 ts_id;
31ab09b4218879b Dipen Patel 2022-04-22 240 struct hte_device *gdev;
31ab09b4218879b Dipen Patel 2022-04-22 241 struct hte_ts_info *ei;
31ab09b4218879b Dipen Patel 2022-04-22 242 int ret;
31ab09b4218879b Dipen Patel 2022-04-22 243 unsigned long flag;
31ab09b4218879b Dipen Patel 2022-04-22 244
31ab09b4218879b Dipen Patel 2022-04-22 245 if (!desc)
31ab09b4218879b Dipen Patel 2022-04-22 246 return -EINVAL;
31ab09b4218879b Dipen Patel 2022-04-22 247
31ab09b4218879b Dipen Patel 2022-04-22 248 ei = desc->hte_data;
31ab09b4218879b Dipen Patel 2022-04-22 249
31ab09b4218879b Dipen Patel 2022-04-22 250 if (!ei || !ei->gdev)
31ab09b4218879b Dipen Patel 2022-04-22 251 return -EINVAL;
31ab09b4218879b Dipen Patel 2022-04-22 252
31ab09b4218879b Dipen Patel 2022-04-22 253 gdev = ei->gdev;
31ab09b4218879b Dipen Patel 2022-04-22 254 ts_id = desc->attr.line_id;
31ab09b4218879b Dipen Patel 2022-04-22 255
31ab09b4218879b Dipen Patel 2022-04-22 256 mutex_lock(&ei->req_mlock);
31ab09b4218879b Dipen Patel 2022-04-22 257
31ab09b4218879b Dipen Patel 2022-04-22 258 if (!test_bit(HTE_TS_REGISTERED, &ei->flags)) {
31ab09b4218879b Dipen Patel 2022-04-22 259 dev_dbg(gdev->sdev, "id:%d is not registered", ts_id);
31ab09b4218879b Dipen Patel 2022-04-22 260 ret = -EUSERS;
31ab09b4218879b Dipen Patel 2022-04-22 261 goto out;
31ab09b4218879b Dipen Patel 2022-04-22 262 }
31ab09b4218879b Dipen Patel 2022-04-22 263
31ab09b4218879b Dipen Patel 2022-04-22 264 spin_lock_irqsave(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 265
31ab09b4218879b Dipen Patel 2022-04-22 266 if (en) {
31ab09b4218879b Dipen Patel 2022-04-22 267 if (!test_bit(HTE_TS_DISABLE, &ei->flags)) {
31ab09b4218879b Dipen Patel 2022-04-22 268 ret = 0;
31ab09b4218879b Dipen Patel 2022-04-22 269 goto out_unlock;
31ab09b4218879b Dipen Patel 2022-04-22 270 }
31ab09b4218879b Dipen Patel 2022-04-22 271
31ab09b4218879b Dipen Patel 2022-04-22 272 spin_unlock_irqrestore(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 273 ret = gdev->chip->ops->enable(gdev->chip, ei->xlated_id);
31ab09b4218879b Dipen Patel 2022-04-22 274 if (ret) {
31ab09b4218879b Dipen Patel 2022-04-22 275 dev_warn(gdev->sdev, "id: %d enable failed\n",
31ab09b4218879b Dipen Patel 2022-04-22 276 ts_id);
31ab09b4218879b Dipen Patel 2022-04-22 277 goto out;
31ab09b4218879b Dipen Patel 2022-04-22 278 }
31ab09b4218879b Dipen Patel 2022-04-22 279
31ab09b4218879b Dipen Patel 2022-04-22 280 spin_lock_irqsave(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 281 clear_bit(HTE_TS_DISABLE, &ei->flags);
31ab09b4218879b Dipen Patel 2022-04-22 282 } else {
31ab09b4218879b Dipen Patel 2022-04-22 283 if (test_bit(HTE_TS_DISABLE, &ei->flags)) {
31ab09b4218879b Dipen Patel 2022-04-22 284 ret = 0;
31ab09b4218879b Dipen Patel 2022-04-22 285 goto out_unlock;
31ab09b4218879b Dipen Patel 2022-04-22 286 }
31ab09b4218879b Dipen Patel 2022-04-22 287
31ab09b4218879b Dipen Patel 2022-04-22 288 spin_unlock_irqrestore(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 289 ret = gdev->chip->ops->disable(gdev->chip, ei->xlated_id);
31ab09b4218879b Dipen Patel 2022-04-22 290 if (ret) {
31ab09b4218879b Dipen Patel 2022-04-22 291 dev_warn(gdev->sdev, "id: %d disable failed\n",
31ab09b4218879b Dipen Patel 2022-04-22 292 ts_id);
31ab09b4218879b Dipen Patel 2022-04-22 293 goto out;
31ab09b4218879b Dipen Patel 2022-04-22 294 }
31ab09b4218879b Dipen Patel 2022-04-22 295
31ab09b4218879b Dipen Patel 2022-04-22 296 spin_lock_irqsave(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 297 set_bit(HTE_TS_DISABLE, &ei->flags);
31ab09b4218879b Dipen Patel 2022-04-22 298 }
31ab09b4218879b Dipen Patel 2022-04-22 299
31ab09b4218879b Dipen Patel 2022-04-22 300 out_unlock:
31ab09b4218879b Dipen Patel 2022-04-22 @301 spin_unlock_irqrestore(&ei->slock, flag);
31ab09b4218879b Dipen Patel 2022-04-22 302 out:
31ab09b4218879b Dipen Patel 2022-04-22 303 mutex_unlock(&ei->req_mlock);
31ab09b4218879b Dipen Patel 2022-04-22 304 return ret;
31ab09b4218879b Dipen Patel 2022-04-22 305 }
31ab09b4218879b Dipen Patel 2022-04-22 306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v7 24/26] PREEMPT_RT injection
2026-03-10 11:57 ` [PATCH v7 24/26] PREEMPT_RT injection Maarten Lankhorst
@ 2026-03-13 9:36 ` kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2026-03-13 9:36 UTC (permalink / raw)
To: Maarten Lankhorst
Cc: oe-lkp, lkp, intel-gfx, intel-xe, linux-kernel, dri-devel,
Maarten Lankhorst, oliver.sang
Hello,
we made a similar report two weeks ago. again, we cannot understand well the
purpose of this patch set, this report is just FYI what we observed in our
tests.
by this commit, a big config diff is introduced comparing to parent [1]
then a boot test which can pass on parent commit (previous patch) now fails
persistently.
=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/sleep:
vm-snb/boot/debian-13-x86_64-20250902.cgz/x86_64-rhel-9.4/gcc-14/1
24a93cdeef1153e2 20d2f07d259d55c5b2f1e8c97da
---------------- ---------------------------
fail:runs %reproduction fail:runs
| | |
:6 100% 6:6 dmesg.BUG:kernel_reboot-without-warning_in_test_stage
:6 100% 6:6 dmesg.boot_failures
unfortunately, we cannot find more useful information in dmesg.
below is full report FYI.
kernel test robot noticed "BUG:kernel_reboot-without-warning_in_test_stage" on:
commit: 20d2f07d259d55c5b2f1e8c97daa270b48b8554e ("[PATCH v7 24/26] PREEMPT_RT injection")
url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-vblank_work-Add-methods-to-schedule-vblank_work-in-2-stages/20260310-205630
base: https://gitlab.freedesktop.org/drm/i915/kernel.git for-linux-next
patch link: https://lore.kernel.org/all/20260310115709.2276203-25-dev@lankhorst.se/
patch subject: [PATCH v7 24/26] PREEMPT_RT injection
in testcase: boot
config: x86_64-rhel-9.4
compiler: gcc-14
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 32G
(please refer to attached dmesg/kmsg for entire log/backtrace)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202603131728.1fedee25-lkp@intel.com
[ 12.960487][ T186] scsi 1:0:0:0: Attached scsi generic sg0 type 5
[ 12.985908][ T186] sr 1:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray
[ 12.985917][ T186] cdrom: Uniform CD-ROM driver Revision: 3.20
[ 13.001113][ T186] sr 1:0:0:0: Attached scsi CD-ROM sr0
LKP: ttyS0: 213: LKP: tbox cant kexec and rebooting forcely
BUG: kernel reboot-without-warning in test stage
The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260313/202603131728.1fedee25-lkp@intel.com
[1]
--- /pkg/linux/x86_64-rhel-9.4/gcc-14/24a93cdeef1153e28b6157b6fd805b02ca23dd64/.config 2026-03-12 11:30:32.108505780 +0800
+++ /pkg/linux/x86_64-rhel-9.4/gcc-14/20d2f07d259d55c5b2f1e8c97daa270b48b8554e/.config 2026-03-12 12:24:04.187019016 +0800
@@ -131,7 +131,8 @@ CONFIG_PREEMPT_BUILD=y
CONFIG_ARCH_HAS_PREEMPT_LAZY=y
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_LAZY=y
-# CONFIG_PREEMPT_RT is not set
+CONFIG_PREEMPT_RT=y
+# CONFIG_PREEMPT_RT_NEEDS_BH_LOCK is not set
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
# CONFIG_PREEMPT_DYNAMIC is not set
@@ -160,6 +161,7 @@ CONFIG_CPU_ISOLATION=y
# RCU Subsystem
#
CONFIG_TREE_RCU=y
+CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU_GENERIC=y
@@ -169,8 +171,11 @@ CONFIG_TASKS_RUDE_RCU=y
CONFIG_TASKS_TRACE_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_BOOST=y
+CONFIG_RCU_BOOST_DELAY=500
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
+CONFIG_RCU_NOCB_CPU_CB_BOOST=y
# CONFIG_RCU_LAZY is not set
# end of RCU Subsystem
@@ -186,7 +191,6 @@ CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
# Scheduler features
#
# CONFIG_UCLAMP_TASK is not set
-# CONFIG_SCHED_PROXY_EXEC is not set
# end of Scheduler features
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
@@ -198,8 +202,6 @@ CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
CONFIG_ARCH_SUPPORTS_INT128=y
-CONFIG_NUMA_BALANCING=y
-CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_SLAB_OBJ_EXT=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
@@ -928,14 +930,12 @@ CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PU
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_ARCH_WANT_PMD_MKWRITE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_ARCH_HAS_EXECMEM_ROX=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
-CONFIG_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
@@ -1100,7 +1100,6 @@ CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
@@ -1189,12 +1188,11 @@ CONFIG_SPLIT_PMD_PTLOCKS=y
CONFIG_BALLOON=y
CONFIG_BALLOON_MIGRATION=y
CONFIG_COMPACTION=y
-CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=0
CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
CONFIG_DEVICE_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
-CONFIG_ARCH_ENABLE_THP_MIGRATION=y
CONFIG_CONTIG_ALLOC=y
CONFIG_PCP_BATCH_SCALE_MAX=5
CONFIG_PHYS_ADDR_T_64BIT=y
@@ -1206,30 +1204,10 @@ CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_WANTS_THP_SWAP=y
-# CONFIG_PERSISTENT_HUGE_ZERO_FOLIO is not set
-CONFIG_MM_ID=y
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
-# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
-CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_NEVER=y
-# CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_ALWAYS is not set
-# CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_WITHIN_SIZE is not set
-# CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_ADVISE is not set
-CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_NEVER=y
-# CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_ALWAYS is not set
-# CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_WITHIN_SIZE is not set
-# CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_ADVISE is not set
-CONFIG_THP_SWAP=y
-# CONFIG_READ_ONLY_THP_FOR_FS is not set
-# CONFIG_NO_PAGE_MAPCOUNT is not set
CONFIG_PAGE_MAPCOUNT=y
CONFIG_PGTABLE_HAS_HUGE_LEAVES=y
CONFIG_HAVE_GIGANTIC_FOLIOS=y
CONFIG_ASYNC_KERNEL_PGTABLE_FREE=y
-CONFIG_ARCH_SUPPORTS_HUGE_PFNMAP=y
-CONFIG_ARCH_SUPPORTS_PMD_PFNMAP=y
-CONFIG_ARCH_SUPPORTS_PUD_PFNMAP=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
@@ -1531,7 +1509,6 @@ CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XTABLES=y
-# CONFIG_NETFILTER_XTABLES_LEGACY is not set
#
# Xtables combined modules
@@ -2842,7 +2819,6 @@ CONFIG_DM_INTEGRITY=m
# CONFIG_DM_ZONED is not set
CONFIG_DM_AUDIT=y
# CONFIG_DM_VDO is not set
-# CONFIG_DM_PCACHE is not set
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
@@ -5412,7 +5388,6 @@ CONFIG_DRM_I915_DP_TUNNEL=y
# CONFIG_DRM_I915_DEBUG_GUC is not set
# CONFIG_DRM_I915_SELFTEST is not set
# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
# CONFIG_DRM_I915_DEBUG_WAKEREF is not set
# end of drm/i915 Debugging
@@ -5432,6 +5407,7 @@ CONFIG_DRM_I915_TIMESLICE_DURATION=1
# end of drm/i915 Profile Guided Optimisation
CONFIG_DRM_MGAG200=m
+# CONFIG_DRM_MGAG200_DISABLE_WRITECOMBINE is not set
CONFIG_DRM_NOUVEAU=m
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
@@ -7014,7 +6990,6 @@ CONFIG_LEDS_TRIGGER_DISK=y
# CONFIG_LEDS_TRIGGER_MTD is not set
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-# CONFIG_LEDS_TRIGGER_CPU is not set
# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
@@ -8441,12 +8416,8 @@ CONFIG_RAMDAX=m
CONFIG_NVDIMM_KEYS=y
# CONFIG_NVDIMM_SECURITY_TEST is not set
CONFIG_DAX=y
-CONFIG_DEV_DAX=m
-CONFIG_DEV_DAX_PMEM=m
CONFIG_DEV_DAX_HMEM=m
-CONFIG_DEV_DAX_CXL=m
CONFIG_DEV_DAX_HMEM_DEVICES=y
-CONFIG_DEV_DAX_KMEM=m
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
# CONFIG_NVMEM_LAYOUTS is not set
@@ -8543,7 +8514,6 @@ CONFIG_F2FS_IOSTAT=y
# CONFIG_F2FS_UNFAIR_RWSEM is not set
# CONFIG_ZONEFS_FS is not set
CONFIG_FS_DAX=y
-CONFIG_FS_DAX_PMD=y
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_EXPORTFS_BLOCK_OPS=y
@@ -9571,7 +9541,6 @@ CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=480
CONFIG_BOOTPARAM_HUNG_TASK_PANIC=0
-CONFIG_DETECT_HUNG_TASK_BLOCKER=y
CONFIG_WQ_WATCHDOG=y
CONFIG_BOOTPARAM_WQ_STALL_PANIC=0
# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set
@@ -9596,9 +9565,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v7 24/26] PREEMPT_RT injection
@ 2026-03-13 17:52 kernel test robot
0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2026-03-13 17:52 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260310115709.2276203-25-dev@lankhorst.se>
References: <20260310115709.2276203-25-dev@lankhorst.se>
TO: Maarten Lankhorst <dev@lankhorst.se>
TO: intel-xe@lists.freedesktop.org
TO: intel-gfx@lists.freedesktop.org
CC: dri-devel@lists.freedesktop.org
CC: Maarten Lankhorst <dev@lankhorst.se>
Hi Maarten,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-i915/for-linux-next]
[also build test WARNING on next-20260311]
[cannot apply to drm-i915/for-linux-next-fixes drm-misc/drm-misc-next drm-xe/drm-xe-next linus/master v7.0-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-vblank_work-Add-methods-to-schedule-vblank_work-in-2-stages/20260310-205630
base: https://gitlab.freedesktop.org/drm/i915/kernel.git for-linux-next
patch link: https://lore.kernel.org/r/20260310115709.2276203-25-dev%40lankhorst.se
patch subject: [PATCH v7 24/26] PREEMPT_RT injection
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-141-20260311 (https://download.01.org/0day-ci/archive/20260314/202603140159.q9J8zmoL-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9004-gb810ac53
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603140159.q9J8zmoL-lkp@intel.com/
New smatch warnings:
drivers/char/ipmi/ssif_bmc.c:155 ssif_bmc_read() error: calling 'spin_unlock_irqrestore()' with bogus flags
drivers/char/ipmi/ssif_bmc.c:226 ssif_bmc_write() error: calling 'spin_unlock_irqrestore()' with bogus flags
Old smatch warnings:
drivers/char/ipmi/ssif_bmc.c:163 ssif_bmc_read() error: calling 'spin_unlock_irqrestore()' with bogus flags
vim +155 drivers/char/ipmi/ssif_bmc.c
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 131
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 132 /* Handle SSIF message that will be sent to user */
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 133 static ssize_t ssif_bmc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 134 {
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 135 struct ssif_bmc_ctx *ssif_bmc = to_ssif_bmc(file);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 136 struct ipmi_ssif_msg msg;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 137 unsigned long flags;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 138 ssize_t ret;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 139
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 140 spin_lock_irqsave(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 141 while (!ssif_bmc->request_available) {
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 142 spin_unlock_irqrestore(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 143 if (file->f_flags & O_NONBLOCK)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 144 return -EAGAIN;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 145 ret = wait_event_interruptible(ssif_bmc->wait_queue,
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 146 ssif_bmc->request_available);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 147 if (ret)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 148 return ret;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 149 spin_lock_irqsave(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 150 }
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 151
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 152 if (count < min_t(ssize_t,
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 153 sizeof_field(struct ipmi_ssif_msg, len) + ssif_bmc->request.len,
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 154 sizeof(struct ipmi_ssif_msg))) {
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 @155 spin_unlock_irqrestore(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 156 ret = -EINVAL;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 157 } else {
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 158 count = min_t(ssize_t,
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 159 sizeof_field(struct ipmi_ssif_msg, len) + ssif_bmc->request.len,
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 160 sizeof(struct ipmi_ssif_msg));
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 161 memcpy(&msg, &ssif_bmc->request, count);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 162 ssif_bmc->request_available = false;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 163 spin_unlock_irqrestore(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 164
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 165 ret = copy_to_user(buf, &msg, count);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 166 }
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 167
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 168 return (ret < 0) ? ret : count;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 169 }
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 170
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 171 /* Handle SSIF message that is written by user */
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 172 static ssize_t ssif_bmc_write(struct file *file, const char __user *buf, size_t count,
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 173 loff_t *ppos)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 174 {
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 175 struct ssif_bmc_ctx *ssif_bmc = to_ssif_bmc(file);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 176 struct ipmi_ssif_msg msg;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 177 unsigned long flags;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 178 ssize_t ret;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 179
0627cef36145c9 Dan Carpenter 2024-06-14 180 if (count < sizeof(msg.len) ||
0627cef36145c9 Dan Carpenter 2024-06-14 181 count > sizeof(struct ipmi_ssif_msg))
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 182 return -EINVAL;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 183
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 184 if (copy_from_user(&msg, buf, count))
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 185 return -EFAULT;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 186
0627cef36145c9 Dan Carpenter 2024-06-14 187 if (!msg.len || msg.len > IPMI_SSIF_PAYLOAD_MAX ||
0627cef36145c9 Dan Carpenter 2024-06-14 188 count < sizeof_field(struct ipmi_ssif_msg, len) + msg.len)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 189 return -EINVAL;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 190
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 191 spin_lock_irqsave(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 192 while (ssif_bmc->response_in_progress) {
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 193 spin_unlock_irqrestore(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 194 if (file->f_flags & O_NONBLOCK)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 195 return -EAGAIN;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 196 ret = wait_event_interruptible(ssif_bmc->wait_queue,
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 197 !ssif_bmc->response_in_progress);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 198 if (ret)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 199 return ret;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 200 spin_lock_irqsave(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 201 }
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 202
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 203 /*
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 204 * The write must complete before the response timeout fired, otherwise
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 205 * the response is aborted and wait for next request
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 206 * Return -EINVAL if the response is aborted
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 207 */
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 208 ret = (ssif_bmc->response_timer_inited) ? 0 : -EINVAL;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 209 if (ret)
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 210 goto exit;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 211
8fa7292fee5c52 Thomas Gleixner 2025-04-05 212 timer_delete(&ssif_bmc->response_timer);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 213 ssif_bmc->response_timer_inited = false;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 214
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 215 memcpy(&ssif_bmc->response, &msg, count);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 216 ssif_bmc->is_singlepart_read = (msg.len <= MAX_PAYLOAD_PER_TRANSACTION);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 217
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 218 ssif_bmc->response_in_progress = true;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 219
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 220 /* ssif_bmc not busy */
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 221 ssif_bmc->busy = false;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 222
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 223 /* Clean old request buffer */
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 224 memset(&ssif_bmc->request, 0, sizeof(struct ipmi_ssif_msg));
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 225 exit:
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 @226 spin_unlock_irqrestore(&ssif_bmc->lock, flags);
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 227
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 228 return (ret < 0) ? ret : count;
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 229 }
dd2bc5cc9e2555 Quan Nguyen 2022-10-04 230
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-03-13 17:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-11 0:52 [PATCH v7 24/26] PREEMPT_RT injection kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2026-03-13 17:52 kernel test robot
2026-03-11 22:58 kernel test robot
2026-03-11 22:37 kernel test robot
2026-03-10 11:56 [PATCH v7 00/26] drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe Maarten Lankhorst
2026-03-10 11:57 ` [PATCH v7 24/26] PREEMPT_RT injection Maarten Lankhorst
2026-03-13 9:36 ` kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.