linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [arm:csi-v6 3/5] drivers/media/i2c/imx219.c:2218:2-8: preceding lock on line 2206 (fwd)
@ 2018-12-20 15:23 Julia Lawall
  2018-12-21 15:25 ` Russell King - ARM Linux
  0 siblings, 1 reply; 2+ messages in thread
From: Julia Lawall @ 2018-12-20 15:23 UTC (permalink / raw)
  To: Russell King; +Cc: kbuild-all, linux-arm-kernel

Hello,

It looks like an unlock may be needed at line 2218.

julia

---------- Forwarded message ----------
Date: Thu, 20 Dec 2018 23:15:54 +0800
From: kbuild test robot <lkp@intel.com>
To: kbuild@01.org
Cc: Julia Lawall <julia.lawall@lip6.fr>
Subject: [arm:csi-v6 3/5] drivers/media/i2c/imx219.c:2218:2-8: preceding lock on
     line 2206

CC: kbuild-all@01.org
CC: linux-arm-kernel@lists.infradead.org
TO: Russell King <rmk+kernel@armlinux.org.uk>

tree:   git://git.armlinux.org.uk/~rmk/linux-arm.git csi-v6
head:   787eec29b136e015f9f10ba0475c800a43dc9f65
commit: 2aaa1f8a02040955a755baa0e39d5f1c3c33c8e7 [3/5] media: i2c: imx219 camera driver
:::::: branch date: 7 days ago
:::::: commit date: 7 days ago

>> drivers/media/i2c/imx219.c:2218:2-8: preceding lock on line 2206

git remote add arm git://git.armlinux.org.uk/~rmk/linux-arm.git
git remote update arm
git checkout 2aaa1f8a02040955a755baa0e39d5f1c3c33c8e7
vim +2218 drivers/media/i2c/imx219.c

2aaa1f8a Russell King 2017-01-21  2162
2aaa1f8a Russell King 2017-01-21  2163  /*
2aaa1f8a Russell King 2017-01-21  2164   * Hardware limitations:
2aaa1f8a Russell King 2017-01-21  2165   * The sink crop rectangle must always fit within the sink pad format size.
2aaa1f8a Russell King 2017-01-21  2166   * The sink compose rectangle must always fit within the sink crop rectangle.
2aaa1f8a Russell King 2017-01-21  2167   * The source pad format size must always match the compose rectangle size.
2aaa1f8a Russell King 2017-01-21  2168   *
2aaa1f8a Russell King 2017-01-21  2169   * Even if V4L2_SEL_FLAG_KEEP_CONFIG is set, we _must_ propagate a change
2aaa1f8a Russell King 2017-01-21  2170   * in the compose rectangle size to the source pad format, because the
2aaa1f8a Russell King 2017-01-21  2171   * difference is a pure software fallacy.
2aaa1f8a Russell King 2017-01-21  2172   */
2aaa1f8a Russell King 2017-01-21  2173  static int imx219_set_selection(struct v4l2_subdev *sd,
2aaa1f8a Russell King 2017-01-21  2174  				struct v4l2_subdev_pad_config *cfg,
2aaa1f8a Russell King 2017-01-21  2175  				struct v4l2_subdev_selection *sel)
2aaa1f8a Russell King 2017-01-21  2176  {
2aaa1f8a Russell King 2017-01-21  2177  	struct imx219_private *priv = imx219_get_priv(sd);
2aaa1f8a Russell King 2017-01-21  2178  	struct imx219_sub *sub = imx219_get_sub(sd);
2aaa1f8a Russell King 2017-01-21  2179  	struct v4l2_mbus_framefmt *pad_fmt, *src_fmt;
2aaa1f8a Russell King 2017-01-21  2180  	struct v4l2_rect *pad_crop, *pad_compose;
2aaa1f8a Russell King 2017-01-21  2181  	struct v4l2_rect *rects[4], sink_fmt_rect, src_fmt_rect;
2aaa1f8a Russell King 2017-01-21  2182  	int ret, idx;
2aaa1f8a Russell King 2017-01-21  2183
2aaa1f8a Russell King 2017-01-21  2184  	if (!sub->pad_ops->adj_selection)
2aaa1f8a Russell King 2017-01-21  2185  		return -ENOTTY;
2aaa1f8a Russell King 2017-01-21  2186
2aaa1f8a Russell King 2017-01-21  2187  	switch (sel->target) {
2aaa1f8a Russell King 2017-01-21  2188  	case V4L2_SEL_TGT_CROP:
2aaa1f8a Russell King 2017-01-21  2189  		idx = 1;
2aaa1f8a Russell King 2017-01-21  2190  		break;
2aaa1f8a Russell King 2017-01-21  2191  	case V4L2_SEL_TGT_COMPOSE:
2aaa1f8a Russell King 2017-01-21  2192  		idx = 2;
2aaa1f8a Russell King 2017-01-21  2193  		break;
2aaa1f8a Russell King 2017-01-21  2194  	default:
2aaa1f8a Russell King 2017-01-21  2195  		return -EINVAL;
2aaa1f8a Russell King 2017-01-21  2196  	}
2aaa1f8a Russell King 2017-01-21  2197
2aaa1f8a Russell King 2017-01-21  2198  	pad_fmt = imx219_get_pad_fmt(sd, cfg, sel->which, sel->pad);
2aaa1f8a Russell King 2017-01-21  2199  	pad_crop = imx219_get_pad_crop(sd, cfg, sel->which, sel->pad);
2aaa1f8a Russell King 2017-01-21  2200  	pad_compose = imx219_get_pad_compose(sd, cfg, sel->which, sel->pad);
2aaa1f8a Russell King 2017-01-21  2201  	if (!pad_fmt || !pad_compose || !pad_crop)
2aaa1f8a Russell King 2017-01-21  2202  		return -EINVAL;
2aaa1f8a Russell King 2017-01-21  2203
2aaa1f8a Russell King 2017-01-21  2204  	src_fmt = imx219_get_pad_fmt(sd, cfg, sel->which, PAD_SRC);
2aaa1f8a Russell King 2017-01-21  2205
2aaa1f8a Russell King 2017-01-21 @2206  	mutex_lock(&priv->mutex);
2aaa1f8a Russell King 2017-01-21  2207  	imx219_framefmt_to_rect(&sink_fmt_rect, pad_fmt);
2aaa1f8a Russell King 2017-01-21  2208  	imx219_framefmt_to_rect(&src_fmt_rect, src_fmt);
2aaa1f8a Russell King 2017-01-21  2209
2aaa1f8a Russell King 2017-01-21  2210  	rects[0] = &sink_fmt_rect;
2aaa1f8a Russell King 2017-01-21  2211  	rects[1] = pad_crop;
2aaa1f8a Russell King 2017-01-21  2212  	rects[2] = pad_compose;
2aaa1f8a Russell King 2017-01-21  2213  	rects[3] = &src_fmt_rect;
2aaa1f8a Russell King 2017-01-21  2214
2aaa1f8a Russell King 2017-01-21  2215  	ret = sub->pad_ops->adj_selection(priv, sel->target, sel->flags,
2aaa1f8a Russell King 2017-01-21  2216  					  &sel->r, rects + idx);
2aaa1f8a Russell King 2017-01-21  2217  	if (ret)
2aaa1f8a Russell King 2017-01-21 @2218  		return ret;
2aaa1f8a Russell King 2017-01-21  2219
2aaa1f8a Russell King 2017-01-21  2220  	if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
2aaa1f8a Russell King 2017-01-21  2221  		ret = sub->pad_ops->set_selection(priv, sub, sel->pad,
2aaa1f8a Russell King 2017-01-21  2222  						  sel->target,
2aaa1f8a Russell King 2017-01-21  2223  						  &sel->r, rects[idx - 1]);
2aaa1f8a Russell King 2017-01-21  2224
2aaa1f8a Russell King 2017-01-21  2225  		/* Setting the crop also propagates to the compose */
2aaa1f8a Russell King 2017-01-21  2226  		if (sel->target == V4L2_SEL_TGT_CROP && ret == 0)
2aaa1f8a Russell King 2017-01-21  2227  			ret = sub->pad_ops->set_selection(priv, sub, sel->pad,
2aaa1f8a Russell King 2017-01-21  2228  							  V4L2_SEL_TGT_COMPOSE,
2aaa1f8a Russell King 2017-01-21  2229  							  &sel->r, &sel->r);
2aaa1f8a Russell King 2017-01-21  2230  	}
2aaa1f8a Russell King 2017-01-21  2231
2aaa1f8a Russell King 2017-01-21  2232  	if (ret == 0) {
2aaa1f8a Russell King 2017-01-21  2233  		*rects[idx] = sel->r;
2aaa1f8a Russell King 2017-01-21  2234
2aaa1f8a Russell King 2017-01-21  2235  		if (!(sel->flags & V4L2_SEL_FLAG_KEEP_CONFIG)) {
2aaa1f8a Russell King 2017-01-21  2236  			while (++idx < ARRAY_SIZE(rects))
2aaa1f8a Russell King 2017-01-21  2237  				*rects[idx] = sel->r;
2aaa1f8a Russell King 2017-01-21  2238
2aaa1f8a Russell King 2017-01-21  2239  			src_fmt->width = src_fmt_rect.width;
2aaa1f8a Russell King 2017-01-21  2240  			src_fmt->height = src_fmt_rect.height;
2aaa1f8a Russell King 2017-01-21  2241  		}
2aaa1f8a Russell King 2017-01-21  2242  	}
2aaa1f8a Russell King 2017-01-21  2243  	mutex_unlock(&priv->mutex);
2aaa1f8a Russell King 2017-01-21  2244
2aaa1f8a Russell King 2017-01-21  2245  	return ret;
2aaa1f8a Russell King 2017-01-21  2246  }
2aaa1f8a Russell King 2017-01-21  2247

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [arm:csi-v6 3/5] drivers/media/i2c/imx219.c:2218:2-8: preceding lock on line 2206 (fwd)
  2018-12-20 15:23 [arm:csi-v6 3/5] drivers/media/i2c/imx219.c:2218:2-8: preceding lock on line 2206 (fwd) Julia Lawall
@ 2018-12-21 15:25 ` Russell King - ARM Linux
  0 siblings, 0 replies; 2+ messages in thread
From: Russell King - ARM Linux @ 2018-12-21 15:25 UTC (permalink / raw)
  To: Julia Lawall; +Cc: kbuild-all, linux-arm-kernel

Thanks, fixed.

On Thu, Dec 20, 2018 at 04:23:23PM +0100, Julia Lawall wrote:
> Hello,
> 
> It looks like an unlock may be needed at line 2218.
> 
> julia
> 
> ---------- Forwarded message ----------
> Date: Thu, 20 Dec 2018 23:15:54 +0800
> From: kbuild test robot <lkp@intel.com>
> To: kbuild@01.org
> Cc: Julia Lawall <julia.lawall@lip6.fr>
> Subject: [arm:csi-v6 3/5] drivers/media/i2c/imx219.c:2218:2-8: preceding lock on
>      line 2206
> 
> CC: kbuild-all@01.org
> CC: linux-arm-kernel@lists.infradead.org
> TO: Russell King <rmk+kernel@armlinux.org.uk>
> 
> tree:   git://git.armlinux.org.uk/~rmk/linux-arm.git csi-v6
> head:   787eec29b136e015f9f10ba0475c800a43dc9f65
> commit: 2aaa1f8a02040955a755baa0e39d5f1c3c33c8e7 [3/5] media: i2c: imx219 camera driver
> :::::: branch date: 7 days ago
> :::::: commit date: 7 days ago
> 
> >> drivers/media/i2c/imx219.c:2218:2-8: preceding lock on line 2206
> 
> git remote add arm git://git.armlinux.org.uk/~rmk/linux-arm.git
> git remote update arm
> git checkout 2aaa1f8a02040955a755baa0e39d5f1c3c33c8e7
> vim +2218 drivers/media/i2c/imx219.c
> 
> 2aaa1f8a Russell King 2017-01-21  2162
> 2aaa1f8a Russell King 2017-01-21  2163  /*
> 2aaa1f8a Russell King 2017-01-21  2164   * Hardware limitations:
> 2aaa1f8a Russell King 2017-01-21  2165   * The sink crop rectangle must always fit within the sink pad format size.
> 2aaa1f8a Russell King 2017-01-21  2166   * The sink compose rectangle must always fit within the sink crop rectangle.
> 2aaa1f8a Russell King 2017-01-21  2167   * The source pad format size must always match the compose rectangle size.
> 2aaa1f8a Russell King 2017-01-21  2168   *
> 2aaa1f8a Russell King 2017-01-21  2169   * Even if V4L2_SEL_FLAG_KEEP_CONFIG is set, we _must_ propagate a change
> 2aaa1f8a Russell King 2017-01-21  2170   * in the compose rectangle size to the source pad format, because the
> 2aaa1f8a Russell King 2017-01-21  2171   * difference is a pure software fallacy.
> 2aaa1f8a Russell King 2017-01-21  2172   */
> 2aaa1f8a Russell King 2017-01-21  2173  static int imx219_set_selection(struct v4l2_subdev *sd,
> 2aaa1f8a Russell King 2017-01-21  2174  				struct v4l2_subdev_pad_config *cfg,
> 2aaa1f8a Russell King 2017-01-21  2175  				struct v4l2_subdev_selection *sel)
> 2aaa1f8a Russell King 2017-01-21  2176  {
> 2aaa1f8a Russell King 2017-01-21  2177  	struct imx219_private *priv = imx219_get_priv(sd);
> 2aaa1f8a Russell King 2017-01-21  2178  	struct imx219_sub *sub = imx219_get_sub(sd);
> 2aaa1f8a Russell King 2017-01-21  2179  	struct v4l2_mbus_framefmt *pad_fmt, *src_fmt;
> 2aaa1f8a Russell King 2017-01-21  2180  	struct v4l2_rect *pad_crop, *pad_compose;
> 2aaa1f8a Russell King 2017-01-21  2181  	struct v4l2_rect *rects[4], sink_fmt_rect, src_fmt_rect;
> 2aaa1f8a Russell King 2017-01-21  2182  	int ret, idx;
> 2aaa1f8a Russell King 2017-01-21  2183
> 2aaa1f8a Russell King 2017-01-21  2184  	if (!sub->pad_ops->adj_selection)
> 2aaa1f8a Russell King 2017-01-21  2185  		return -ENOTTY;
> 2aaa1f8a Russell King 2017-01-21  2186
> 2aaa1f8a Russell King 2017-01-21  2187  	switch (sel->target) {
> 2aaa1f8a Russell King 2017-01-21  2188  	case V4L2_SEL_TGT_CROP:
> 2aaa1f8a Russell King 2017-01-21  2189  		idx = 1;
> 2aaa1f8a Russell King 2017-01-21  2190  		break;
> 2aaa1f8a Russell King 2017-01-21  2191  	case V4L2_SEL_TGT_COMPOSE:
> 2aaa1f8a Russell King 2017-01-21  2192  		idx = 2;
> 2aaa1f8a Russell King 2017-01-21  2193  		break;
> 2aaa1f8a Russell King 2017-01-21  2194  	default:
> 2aaa1f8a Russell King 2017-01-21  2195  		return -EINVAL;
> 2aaa1f8a Russell King 2017-01-21  2196  	}
> 2aaa1f8a Russell King 2017-01-21  2197
> 2aaa1f8a Russell King 2017-01-21  2198  	pad_fmt = imx219_get_pad_fmt(sd, cfg, sel->which, sel->pad);
> 2aaa1f8a Russell King 2017-01-21  2199  	pad_crop = imx219_get_pad_crop(sd, cfg, sel->which, sel->pad);
> 2aaa1f8a Russell King 2017-01-21  2200  	pad_compose = imx219_get_pad_compose(sd, cfg, sel->which, sel->pad);
> 2aaa1f8a Russell King 2017-01-21  2201  	if (!pad_fmt || !pad_compose || !pad_crop)
> 2aaa1f8a Russell King 2017-01-21  2202  		return -EINVAL;
> 2aaa1f8a Russell King 2017-01-21  2203
> 2aaa1f8a Russell King 2017-01-21  2204  	src_fmt = imx219_get_pad_fmt(sd, cfg, sel->which, PAD_SRC);
> 2aaa1f8a Russell King 2017-01-21  2205
> 2aaa1f8a Russell King 2017-01-21 @2206  	mutex_lock(&priv->mutex);
> 2aaa1f8a Russell King 2017-01-21  2207  	imx219_framefmt_to_rect(&sink_fmt_rect, pad_fmt);
> 2aaa1f8a Russell King 2017-01-21  2208  	imx219_framefmt_to_rect(&src_fmt_rect, src_fmt);
> 2aaa1f8a Russell King 2017-01-21  2209
> 2aaa1f8a Russell King 2017-01-21  2210  	rects[0] = &sink_fmt_rect;
> 2aaa1f8a Russell King 2017-01-21  2211  	rects[1] = pad_crop;
> 2aaa1f8a Russell King 2017-01-21  2212  	rects[2] = pad_compose;
> 2aaa1f8a Russell King 2017-01-21  2213  	rects[3] = &src_fmt_rect;
> 2aaa1f8a Russell King 2017-01-21  2214
> 2aaa1f8a Russell King 2017-01-21  2215  	ret = sub->pad_ops->adj_selection(priv, sel->target, sel->flags,
> 2aaa1f8a Russell King 2017-01-21  2216  					  &sel->r, rects + idx);
> 2aaa1f8a Russell King 2017-01-21  2217  	if (ret)
> 2aaa1f8a Russell King 2017-01-21 @2218  		return ret;
> 2aaa1f8a Russell King 2017-01-21  2219
> 2aaa1f8a Russell King 2017-01-21  2220  	if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE) {
> 2aaa1f8a Russell King 2017-01-21  2221  		ret = sub->pad_ops->set_selection(priv, sub, sel->pad,
> 2aaa1f8a Russell King 2017-01-21  2222  						  sel->target,
> 2aaa1f8a Russell King 2017-01-21  2223  						  &sel->r, rects[idx - 1]);
> 2aaa1f8a Russell King 2017-01-21  2224
> 2aaa1f8a Russell King 2017-01-21  2225  		/* Setting the crop also propagates to the compose */
> 2aaa1f8a Russell King 2017-01-21  2226  		if (sel->target == V4L2_SEL_TGT_CROP && ret == 0)
> 2aaa1f8a Russell King 2017-01-21  2227  			ret = sub->pad_ops->set_selection(priv, sub, sel->pad,
> 2aaa1f8a Russell King 2017-01-21  2228  							  V4L2_SEL_TGT_COMPOSE,
> 2aaa1f8a Russell King 2017-01-21  2229  							  &sel->r, &sel->r);
> 2aaa1f8a Russell King 2017-01-21  2230  	}
> 2aaa1f8a Russell King 2017-01-21  2231
> 2aaa1f8a Russell King 2017-01-21  2232  	if (ret == 0) {
> 2aaa1f8a Russell King 2017-01-21  2233  		*rects[idx] = sel->r;
> 2aaa1f8a Russell King 2017-01-21  2234
> 2aaa1f8a Russell King 2017-01-21  2235  		if (!(sel->flags & V4L2_SEL_FLAG_KEEP_CONFIG)) {
> 2aaa1f8a Russell King 2017-01-21  2236  			while (++idx < ARRAY_SIZE(rects))
> 2aaa1f8a Russell King 2017-01-21  2237  				*rects[idx] = sel->r;
> 2aaa1f8a Russell King 2017-01-21  2238
> 2aaa1f8a Russell King 2017-01-21  2239  			src_fmt->width = src_fmt_rect.width;
> 2aaa1f8a Russell King 2017-01-21  2240  			src_fmt->height = src_fmt_rect.height;
> 2aaa1f8a Russell King 2017-01-21  2241  		}
> 2aaa1f8a Russell King 2017-01-21  2242  	}
> 2aaa1f8a Russell King 2017-01-21  2243  	mutex_unlock(&priv->mutex);
> 2aaa1f8a Russell King 2017-01-21  2244
> 2aaa1f8a Russell King 2017-01-21  2245  	return ret;
> 2aaa1f8a Russell King 2017-01-21  2246  }
> 2aaa1f8a Russell King 2017-01-21  2247
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-12-21 15:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-20 15:23 [arm:csi-v6 3/5] drivers/media/i2c/imx219.c:2218:2-8: preceding lock on line 2206 (fwd) Julia Lawall
2018-12-21 15:25 ` Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).