Skip to content
/ linux Public
forked from torvalds/linux

Commit

Permalink
media: rockchip: vicap fixed dvp segfault
Browse files Browse the repository at this point in the history
[    0.463070] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[    0.457836] rkcif rkcif_dvp: rkcif driver version: v00.01.0a
[    0.458009] rkcif rkcif_dvp: attach to cif hw node
[    0.458033] rkcif rkcif_dvp: rkcif wait line 0
[    0.458056] : terminal subdev does not exist
[    0.463620] rkcif_dvp: There is not terminal subdev, not synchronized with ISP
[    0.464566] [00000000] *pgd=00000000
[    0.468850] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[    0.469332] Modules linked in:
[    0.469627] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.10.110 torvalds#273
[    0.470186] Hardware name: Generic DT based system
[    0.470637] PC is at subdev_notifier_complete+0x2c0/0x3a0
[    0.471124] LR is at subdev_notifier_complete+0x34c/0x3a0
[    0.471608] pc : [<b06587e4>]    lr : [<b0658870>]    psr: 60000013
[    0.472169] sp : b86dbc78  ip : 0001c52c  fp : b1708030
[    0.472640] r10: b170801c  r9 : b1708078  r8 : b1708238
[    0.473113] r7 : b1708220  r6 : b1708220  r5 : 00000000  r4 : b170fcb0
[    0.473697] r3 : 00000000  r2 : 00000000  r1 : 60000013  r0 : b170fcb4
[    0.474282] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[    0.474922] Control: 10c5387d  Table: 0000406a  DAC: 00000055
[    0.475442] Process swapper/0 (pid: 1, stack limit = 0xe78b9f4a)

Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com>
Change-Id: Ic36dfc2cbc0928e39844263647eee082e5229e95
  • Loading branch information
Zefa Chen authored and rkhuangtao committed Aug 4, 2022
1 parent 731602b commit 5f2f434
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions drivers/media/platform/rockchip/cif/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1451,12 +1451,16 @@ static int subdev_notifier_complete(struct v4l2_async_notifier *notifier)

if (!completion_done(&dev->cmpl_ntf))
complete(&dev->cmpl_ntf);
ret = v4l2_subdev_call(dev->active_sensor->sd,
core, ioctl,
RKCIF_CMD_SET_CSI_IDX,
&dev->csi_host_idx);
if (ret)
v4l2_err(&dev->v4l2_dev, "set csi idx %d fail\n", dev->csi_host_idx);
if (dev->active_sensor &&
(dev->active_sensor->mbus.type == V4L2_MBUS_CSI2_DPHY ||
dev->active_sensor->mbus.type == V4L2_MBUS_CSI2_CPHY)) {
ret = v4l2_subdev_call(dev->active_sensor->sd,
core, ioctl,
RKCIF_CMD_SET_CSI_IDX,
&dev->csi_host_idx);
if (ret)
v4l2_err(&dev->v4l2_dev, "set csi idx %d fail\n", dev->csi_host_idx);
}
v4l2_info(&dev->v4l2_dev, "Async subdev notifier completed\n");

return ret;
Expand Down

0 comments on commit 5f2f434

Please sign in to comment.