All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.