All of lore.kernel.org
 help / color / mirror / Atom feed
* [axboe-block:rw_iter 138/448] drivers/gpu/drm/i915/display/intel_hotplug.c:1040 i915_hpd_storm_ctl_write() warn: potential spectre issue 'tmp' [w]
@ 2024-09-22 15:17 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-09-22 15:17 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Jens Axboe <axboe@kernel.dk>

Hi Jens,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git rw_iter
head:   7ef9d29ff0268d9fb68e3b1bf7548981d7a61307
commit: fb267b131a04cfdc7c70d3f067b7f8545ca8b4f3 [138/448] drm/i915: convert to read/write iterators
:::::: branch date: 8 hours ago
:::::: commit date: 2 days ago
config: i386-randconfig-141-20240922 (https://download.01.org/0day-ci/archive/20240922/202409222356.Id5VC2Ol-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)

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/202409222356.Id5VC2Ol-lkp@intel.com/

smatch warnings:
drivers/gpu/drm/i915/display/intel_hotplug.c:1040 i915_hpd_storm_ctl_write() warn: potential spectre issue 'tmp' [w]
drivers/gpu/drm/i915/display/intel_hotplug.c:1121 i915_hpd_short_storm_ctl_write() warn: potential spectre issue 'tmp' [w]
drivers/gpu/drm/i915/display/intel_wm.c:305 wm_latency_write() warn: potential spectre issue 'tmp' [w]

vim +/tmp +1040 drivers/gpu/drm/i915/display/intel_hotplug.c

1bed8b07342069 Jani Nikula 2022-09-16  1021  
fb267b131a04cf Jens Axboe  2024-04-09  1022  static ssize_t i915_hpd_storm_ctl_write(struct kiocb *iocb,
fb267b131a04cf Jens Axboe  2024-04-09  1023  					struct iov_iter *from)
1bed8b07342069 Jani Nikula 2022-09-16  1024  {
fb267b131a04cf Jens Axboe  2024-04-09  1025  	struct seq_file *m = iocb->ki_filp->private_data;
1bed8b07342069 Jani Nikula 2022-09-16  1026  	struct drm_i915_private *dev_priv = m->private;
1bed8b07342069 Jani Nikula 2022-09-16  1027  	struct intel_hotplug *hotplug = &dev_priv->display.hotplug;
fb267b131a04cf Jens Axboe  2024-04-09  1028  	size_t len = iov_iter_count(from);
1bed8b07342069 Jani Nikula 2022-09-16  1029  	unsigned int new_threshold;
1bed8b07342069 Jani Nikula 2022-09-16  1030  	int i;
1bed8b07342069 Jani Nikula 2022-09-16  1031  	char *newline;
1bed8b07342069 Jani Nikula 2022-09-16  1032  	char tmp[16];
1bed8b07342069 Jani Nikula 2022-09-16  1033  
1bed8b07342069 Jani Nikula 2022-09-16  1034  	if (len >= sizeof(tmp))
1bed8b07342069 Jani Nikula 2022-09-16  1035  		return -EINVAL;
1bed8b07342069 Jani Nikula 2022-09-16  1036  
fb267b131a04cf Jens Axboe  2024-04-09  1037  	if (!copy_from_iter_full(tmp, len, from))
1bed8b07342069 Jani Nikula 2022-09-16  1038  		return -EFAULT;
1bed8b07342069 Jani Nikula 2022-09-16  1039  
1bed8b07342069 Jani Nikula 2022-09-16 @1040  	tmp[len] = '\0';
1bed8b07342069 Jani Nikula 2022-09-16  1041  
1bed8b07342069 Jani Nikula 2022-09-16  1042  	/* Strip newline, if any */
1bed8b07342069 Jani Nikula 2022-09-16  1043  	newline = strchr(tmp, '\n');
1bed8b07342069 Jani Nikula 2022-09-16  1044  	if (newline)
1bed8b07342069 Jani Nikula 2022-09-16  1045  		*newline = '\0';
1bed8b07342069 Jani Nikula 2022-09-16  1046  
1bed8b07342069 Jani Nikula 2022-09-16  1047  	if (strcmp(tmp, "reset") == 0)
1bed8b07342069 Jani Nikula 2022-09-16  1048  		new_threshold = HPD_STORM_DEFAULT_THRESHOLD;
1bed8b07342069 Jani Nikula 2022-09-16  1049  	else if (kstrtouint(tmp, 10, &new_threshold) != 0)
1bed8b07342069 Jani Nikula 2022-09-16  1050  		return -EINVAL;
1bed8b07342069 Jani Nikula 2022-09-16  1051  
1bed8b07342069 Jani Nikula 2022-09-16  1052  	if (new_threshold > 0)
1bed8b07342069 Jani Nikula 2022-09-16  1053  		drm_dbg_kms(&dev_priv->drm,
1bed8b07342069 Jani Nikula 2022-09-16  1054  			    "Setting HPD storm detection threshold to %d\n",
1bed8b07342069 Jani Nikula 2022-09-16  1055  			    new_threshold);
1bed8b07342069 Jani Nikula 2022-09-16  1056  	else
1bed8b07342069 Jani Nikula 2022-09-16  1057  		drm_dbg_kms(&dev_priv->drm, "Disabling HPD storm detection\n");
1bed8b07342069 Jani Nikula 2022-09-16  1058  
1bed8b07342069 Jani Nikula 2022-09-16  1059  	spin_lock_irq(&dev_priv->irq_lock);
1bed8b07342069 Jani Nikula 2022-09-16  1060  	hotplug->hpd_storm_threshold = new_threshold;
1bed8b07342069 Jani Nikula 2022-09-16  1061  	/* Reset the HPD storm stats so we don't accidentally trigger a storm */
1bed8b07342069 Jani Nikula 2022-09-16  1062  	for_each_hpd_pin(i)
1bed8b07342069 Jani Nikula 2022-09-16  1063  		hotplug->stats[i].count = 0;
1bed8b07342069 Jani Nikula 2022-09-16  1064  	spin_unlock_irq(&dev_priv->irq_lock);
1bed8b07342069 Jani Nikula 2022-09-16  1065  
1bed8b07342069 Jani Nikula 2022-09-16  1066  	/* Re-enable hpd immediately if we were in an irq storm */
1bed8b07342069 Jani Nikula 2022-09-16  1067  	flush_delayed_work(&dev_priv->display.hotplug.reenable_work);
1bed8b07342069 Jani Nikula 2022-09-16  1068  
1bed8b07342069 Jani Nikula 2022-09-16  1069  	return len;
1bed8b07342069 Jani Nikula 2022-09-16  1070  }
1bed8b07342069 Jani Nikula 2022-09-16  1071  
1bed8b07342069 Jani Nikula 2022-09-16  1072  static int i915_hpd_storm_ctl_open(struct inode *inode, struct file *file)
1bed8b07342069 Jani Nikula 2022-09-16  1073  {
1bed8b07342069 Jani Nikula 2022-09-16  1074  	return single_open(file, i915_hpd_storm_ctl_show, inode->i_private);
1bed8b07342069 Jani Nikula 2022-09-16  1075  }
1bed8b07342069 Jani Nikula 2022-09-16  1076  
1bed8b07342069 Jani Nikula 2022-09-16  1077  static const struct file_operations i915_hpd_storm_ctl_fops = {
1bed8b07342069 Jani Nikula 2022-09-16  1078  	.owner = THIS_MODULE,
1bed8b07342069 Jani Nikula 2022-09-16  1079  	.open = i915_hpd_storm_ctl_open,
fb267b131a04cf Jens Axboe  2024-04-09  1080  	.read_iter = seq_read_iter,
1bed8b07342069 Jani Nikula 2022-09-16  1081  	.llseek = seq_lseek,
1bed8b07342069 Jani Nikula 2022-09-16  1082  	.release = single_release,
fb267b131a04cf Jens Axboe  2024-04-09  1083  	.write_iter = i915_hpd_storm_ctl_write
1bed8b07342069 Jani Nikula 2022-09-16  1084  };
1bed8b07342069 Jani Nikula 2022-09-16  1085  
1bed8b07342069 Jani Nikula 2022-09-16  1086  static int i915_hpd_short_storm_ctl_show(struct seq_file *m, void *data)
1bed8b07342069 Jani Nikula 2022-09-16  1087  {
1bed8b07342069 Jani Nikula 2022-09-16  1088  	struct drm_i915_private *dev_priv = m->private;
1bed8b07342069 Jani Nikula 2022-09-16  1089  
1bed8b07342069 Jani Nikula 2022-09-16  1090  	seq_printf(m, "Enabled: %s\n",
1bed8b07342069 Jani Nikula 2022-09-16  1091  		   str_yes_no(dev_priv->display.hotplug.hpd_short_storm_enabled));
1bed8b07342069 Jani Nikula 2022-09-16  1092  
1bed8b07342069 Jani Nikula 2022-09-16  1093  	return 0;
1bed8b07342069 Jani Nikula 2022-09-16  1094  }
1bed8b07342069 Jani Nikula 2022-09-16  1095  
1bed8b07342069 Jani Nikula 2022-09-16  1096  static int
1bed8b07342069 Jani Nikula 2022-09-16  1097  i915_hpd_short_storm_ctl_open(struct inode *inode, struct file *file)
1bed8b07342069 Jani Nikula 2022-09-16  1098  {
1bed8b07342069 Jani Nikula 2022-09-16  1099  	return single_open(file, i915_hpd_short_storm_ctl_show,
1bed8b07342069 Jani Nikula 2022-09-16  1100  			   inode->i_private);
1bed8b07342069 Jani Nikula 2022-09-16  1101  }
1bed8b07342069 Jani Nikula 2022-09-16  1102  
fb267b131a04cf Jens Axboe  2024-04-09  1103  static ssize_t i915_hpd_short_storm_ctl_write(struct kiocb *iocb,
fb267b131a04cf Jens Axboe  2024-04-09  1104  					      struct iov_iter *from)
1bed8b07342069 Jani Nikula 2022-09-16  1105  {
fb267b131a04cf Jens Axboe  2024-04-09  1106  	struct seq_file *m = iocb->ki_filp->private_data;
1bed8b07342069 Jani Nikula 2022-09-16  1107  	struct drm_i915_private *dev_priv = m->private;
1bed8b07342069 Jani Nikula 2022-09-16  1108  	struct intel_hotplug *hotplug = &dev_priv->display.hotplug;
fb267b131a04cf Jens Axboe  2024-04-09  1109  	size_t len = iov_iter_count(from);
1bed8b07342069 Jani Nikula 2022-09-16  1110  	char *newline;
1bed8b07342069 Jani Nikula 2022-09-16  1111  	char tmp[16];
1bed8b07342069 Jani Nikula 2022-09-16  1112  	int i;
1bed8b07342069 Jani Nikula 2022-09-16  1113  	bool new_state;
1bed8b07342069 Jani Nikula 2022-09-16  1114  
1bed8b07342069 Jani Nikula 2022-09-16  1115  	if (len >= sizeof(tmp))
1bed8b07342069 Jani Nikula 2022-09-16  1116  		return -EINVAL;
1bed8b07342069 Jani Nikula 2022-09-16  1117  
fb267b131a04cf Jens Axboe  2024-04-09  1118  	if (!copy_from_iter_full(tmp, len, from))
1bed8b07342069 Jani Nikula 2022-09-16  1119  		return -EFAULT;
1bed8b07342069 Jani Nikula 2022-09-16  1120  
1bed8b07342069 Jani Nikula 2022-09-16 @1121  	tmp[len] = '\0';
1bed8b07342069 Jani Nikula 2022-09-16  1122  
1bed8b07342069 Jani Nikula 2022-09-16  1123  	/* Strip newline, if any */
1bed8b07342069 Jani Nikula 2022-09-16  1124  	newline = strchr(tmp, '\n');
1bed8b07342069 Jani Nikula 2022-09-16  1125  	if (newline)
1bed8b07342069 Jani Nikula 2022-09-16  1126  		*newline = '\0';
1bed8b07342069 Jani Nikula 2022-09-16  1127  
1bed8b07342069 Jani Nikula 2022-09-16  1128  	/* Reset to the "default" state for this system */
1bed8b07342069 Jani Nikula 2022-09-16  1129  	if (strcmp(tmp, "reset") == 0)
1bed8b07342069 Jani Nikula 2022-09-16  1130  		new_state = !HAS_DP_MST(dev_priv);
1bed8b07342069 Jani Nikula 2022-09-16  1131  	else if (kstrtobool(tmp, &new_state) != 0)
1bed8b07342069 Jani Nikula 2022-09-16  1132  		return -EINVAL;
1bed8b07342069 Jani Nikula 2022-09-16  1133  
1bed8b07342069 Jani Nikula 2022-09-16  1134  	drm_dbg_kms(&dev_priv->drm, "%sabling HPD short storm detection\n",
1bed8b07342069 Jani Nikula 2022-09-16  1135  		    new_state ? "En" : "Dis");
1bed8b07342069 Jani Nikula 2022-09-16  1136  
1bed8b07342069 Jani Nikula 2022-09-16  1137  	spin_lock_irq(&dev_priv->irq_lock);
1bed8b07342069 Jani Nikula 2022-09-16  1138  	hotplug->hpd_short_storm_enabled = new_state;
1bed8b07342069 Jani Nikula 2022-09-16  1139  	/* Reset the HPD storm stats so we don't accidentally trigger a storm */
1bed8b07342069 Jani Nikula 2022-09-16  1140  	for_each_hpd_pin(i)
1bed8b07342069 Jani Nikula 2022-09-16  1141  		hotplug->stats[i].count = 0;
1bed8b07342069 Jani Nikula 2022-09-16  1142  	spin_unlock_irq(&dev_priv->irq_lock);
1bed8b07342069 Jani Nikula 2022-09-16  1143  
1bed8b07342069 Jani Nikula 2022-09-16  1144  	/* Re-enable hpd immediately if we were in an irq storm */
1bed8b07342069 Jani Nikula 2022-09-16  1145  	flush_delayed_work(&dev_priv->display.hotplug.reenable_work);
1bed8b07342069 Jani Nikula 2022-09-16  1146  
1bed8b07342069 Jani Nikula 2022-09-16  1147  	return len;
1bed8b07342069 Jani Nikula 2022-09-16  1148  }
1bed8b07342069 Jani Nikula 2022-09-16  1149  

:::::: The code at line 1040 was first introduced by commit
:::::: 1bed8b07342069ebfbab6794e5ce3084c3eb9bc8 drm/i915/hotplug: move hotplug storm debugfs to intel_hotplug.c

:::::: TO: Jani Nikula <jani.nikula@intel.com>
:::::: CC: Jani Nikula <jani.nikula@intel.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-09-22 15:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-22 15:17 [axboe-block:rw_iter 138/448] drivers/gpu/drm/i915/display/intel_hotplug.c:1040 i915_hpd_storm_ctl_write() warn: potential spectre issue 'tmp' [w] 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.