* [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).