From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, "André Apitzsch" <git@apitzsch.eu>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
linux-media@vger.kernel.org,
Sakari Ailus <sakari.ailus@linux.intel.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: [sailus-media-tree:cleanup 30/54] drivers/media/i2c/imx214.c:1109 imx214_ctrls_init() error: we previously assumed 'imx214->link_freq' could be null (see line 1017)
Date: Wed, 27 Aug 2025 10:17:26 +0300 [thread overview]
Message-ID: <202508270603.MDqIVFss-lkp@intel.com> (raw)
tree: git://linuxtv.org/sailus/media_tree.git cleanup
head: 9a8e7210e8e21ebba263affd0d7481ef0d6c323e
commit: 7407c0acdb2ff0c1e3a962543db7d775b3b611c8 [30/54] media: i2c: imx214: Move imx214_pll_update to imx214_ctrls_init
config: i386-randconfig-141-20250827 (https://download.01.org/0day-ci/archive/20250827/202508270603.MDqIVFss-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
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 <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202508270603.MDqIVFss-lkp@intel.com/
smatch warnings:
drivers/media/i2c/imx214.c:1109 imx214_ctrls_init() error: we previously assumed 'imx214->link_freq' could be null (see line 1017)
vim +1109 drivers/media/i2c/imx214.c
4f302d004bd0fc André Apitzsch 2023-12-06 987 static int imx214_ctrls_init(struct imx214 *imx214)
4f302d004bd0fc André Apitzsch 2023-12-06 988 {
4f302d004bd0fc André Apitzsch 2023-12-06 989 static const struct v4l2_area unit_size = {
4f302d004bd0fc André Apitzsch 2023-12-06 990 .width = 1120,
4f302d004bd0fc André Apitzsch 2023-12-06 991 .height = 1120,
4f302d004bd0fc André Apitzsch 2023-12-06 992 };
0b57fcf81d32b8 André Apitzsch 2024-12-20 993 const struct imx214_mode *mode = &imx214_modes[0];
2ae9f9780d8097 André Apitzsch 2023-12-06 994 struct v4l2_fwnode_device_properties props;
4f302d004bd0fc André Apitzsch 2023-12-06 995 struct v4l2_ctrl_handler *ctrl_hdlr;
0b57fcf81d32b8 André Apitzsch 2024-12-20 996 int exposure_max, exposure_def;
0b57fcf81d32b8 André Apitzsch 2024-12-20 997 int hblank;
aac37a3a763d1f André Apitzsch 2024-12-20 998 int i, ret;
4f302d004bd0fc André Apitzsch 2023-12-06 999
2ae9f9780d8097 André Apitzsch 2023-12-06 1000 ret = v4l2_fwnode_device_parse(imx214->dev, &props);
2ae9f9780d8097 André Apitzsch 2023-12-06 1001 if (ret < 0)
2ae9f9780d8097 André Apitzsch 2023-12-06 1002 return ret;
2ae9f9780d8097 André Apitzsch 2023-12-06 1003
4f302d004bd0fc André Apitzsch 2023-12-06 1004 ctrl_hdlr = &imx214->ctrls;
aac37a3a763d1f André Apitzsch 2024-12-20 1005 ret = v4l2_ctrl_handler_init(&imx214->ctrls, 13);
4f302d004bd0fc André Apitzsch 2023-12-06 1006 if (ret)
4f302d004bd0fc André Apitzsch 2023-12-06 1007 return ret;
4f302d004bd0fc André Apitzsch 2023-12-06 1008
b9b359662952ff André Apitzsch 2025-05-24 1009 imx214->pixel_rate =
b9b359662952ff André Apitzsch 2025-05-24 1010 v4l2_ctrl_new_std(ctrl_hdlr, NULL, V4L2_CID_PIXEL_RATE, 1,
b9b359662952ff André Apitzsch 2025-05-24 1011 INT_MAX, 1, 1);
4f302d004bd0fc André Apitzsch 2023-12-06 1012
4f302d004bd0fc André Apitzsch 2023-12-06 1013 imx214->link_freq = v4l2_ctrl_new_int_menu(ctrl_hdlr, NULL,
4f302d004bd0fc André Apitzsch 2023-12-06 1014 V4L2_CID_LINK_FREQ,
b9b359662952ff André Apitzsch 2025-05-24 1015 imx214->bus_cfg.nr_of_link_frequencies - 1,
b9b359662952ff André Apitzsch 2025-05-24 1016 0, imx214->bus_cfg.link_frequencies);
4f302d004bd0fc André Apitzsch 2023-12-06 @1017 if (imx214->link_freq)
^^^^^^^^^^^^^^^^^
This assumes ->link_freq can be NULL.
4f302d004bd0fc André Apitzsch 2023-12-06 1018 imx214->link_freq->flags |= V4L2_CTRL_FLAG_READ_ONLY;
4f302d004bd0fc André Apitzsch 2023-12-06 1019
4f302d004bd0fc André Apitzsch 2023-12-06 1020 /*
4f302d004bd0fc André Apitzsch 2023-12-06 1021 * WARNING!
4f302d004bd0fc André Apitzsch 2023-12-06 1022 * Values obtained reverse engineering blobs and/or devices.
4f302d004bd0fc André Apitzsch 2023-12-06 1023 * Ranges and functionality might be wrong.
4f302d004bd0fc André Apitzsch 2023-12-06 1024 *
4f302d004bd0fc André Apitzsch 2023-12-06 1025 * Sony, please release some register set documentation for the
4f302d004bd0fc André Apitzsch 2023-12-06 1026 * device.
4f302d004bd0fc André Apitzsch 2023-12-06 1027 *
4f302d004bd0fc André Apitzsch 2023-12-06 1028 * Yours sincerely, Ricardo.
4f302d004bd0fc André Apitzsch 2023-12-06 1029 */
0b57fcf81d32b8 André Apitzsch 2024-12-20 1030
0b57fcf81d32b8 André Apitzsch 2024-12-20 1031 /* Initial vblank/hblank/exposure parameters based on current mode */
0b57fcf81d32b8 André Apitzsch 2024-12-20 1032 imx214->vblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops,
0b57fcf81d32b8 André Apitzsch 2024-12-20 1033 V4L2_CID_VBLANK, IMX214_VBLANK_MIN,
0b57fcf81d32b8 André Apitzsch 2024-12-20 1034 IMX214_VTS_MAX - mode->height, 2,
0b57fcf81d32b8 André Apitzsch 2024-12-20 1035 mode->vts_def - mode->height);
0b57fcf81d32b8 André Apitzsch 2024-12-20 1036
0b57fcf81d32b8 André Apitzsch 2024-12-20 1037 hblank = IMX214_PPL_DEFAULT - mode->width;
0b57fcf81d32b8 André Apitzsch 2024-12-20 1038 imx214->hblank = v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops,
0b57fcf81d32b8 André Apitzsch 2024-12-20 1039 V4L2_CID_HBLANK, hblank, hblank,
0b57fcf81d32b8 André Apitzsch 2024-12-20 1040 1, hblank);
0b57fcf81d32b8 André Apitzsch 2024-12-20 1041 if (imx214->hblank)
0b57fcf81d32b8 André Apitzsch 2024-12-20 1042 imx214->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY;
0b57fcf81d32b8 André Apitzsch 2024-12-20 1043
0b57fcf81d32b8 André Apitzsch 2024-12-20 1044 exposure_max = mode->vts_def - IMX214_EXPOSURE_OFFSET;
0b57fcf81d32b8 André Apitzsch 2024-12-20 1045 exposure_def = min(exposure_max, IMX214_EXPOSURE_DEFAULT);
4f302d004bd0fc André Apitzsch 2023-12-06 1046 imx214->exposure = v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops,
4f302d004bd0fc André Apitzsch 2023-12-06 1047 V4L2_CID_EXPOSURE,
4f302d004bd0fc André Apitzsch 2023-12-06 1048 IMX214_EXPOSURE_MIN,
0b57fcf81d32b8 André Apitzsch 2024-12-20 1049 exposure_max,
4f302d004bd0fc André Apitzsch 2023-12-06 1050 IMX214_EXPOSURE_STEP,
0b57fcf81d32b8 André Apitzsch 2024-12-20 1051 exposure_def);
4f302d004bd0fc André Apitzsch 2023-12-06 1052
dafbd1e960446e André Apitzsch 2024-12-20 1053 v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,
dafbd1e960446e André Apitzsch 2024-12-20 1054 IMX214_ANA_GAIN_MIN, IMX214_ANA_GAIN_MAX,
dafbd1e960446e André Apitzsch 2024-12-20 1055 IMX214_ANA_GAIN_STEP, IMX214_ANA_GAIN_DEFAULT);
dafbd1e960446e André Apitzsch 2024-12-20 1056
dafbd1e960446e André Apitzsch 2024-12-20 1057 v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops, V4L2_CID_DIGITAL_GAIN,
dafbd1e960446e André Apitzsch 2024-12-20 1058 IMX214_DGTL_GAIN_MIN, IMX214_DGTL_GAIN_MAX,
dafbd1e960446e André Apitzsch 2024-12-20 1059 IMX214_DGTL_GAIN_STEP, IMX214_DGTL_GAIN_DEFAULT);
dafbd1e960446e André Apitzsch 2024-12-20 1060
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1061 imx214->hflip = v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops,
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1062 V4L2_CID_HFLIP, 0, 1, 1, 0);
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1063 if (imx214->hflip)
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1064 imx214->hflip->flags |= V4L2_CTRL_FLAG_MODIFY_LAYOUT;
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1065
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1066 imx214->vflip = v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops,
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1067 V4L2_CID_VFLIP, 0, 1, 1, 0);
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1068 if (imx214->vflip)
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1069 imx214->vflip->flags |= V4L2_CTRL_FLAG_MODIFY_LAYOUT;
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1070
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1071 v4l2_ctrl_cluster(2, &imx214->hflip);
5f8d5fe0bd9471 André Apitzsch 2024-12-20 1072
aac37a3a763d1f André Apitzsch 2024-12-20 1073 v4l2_ctrl_new_std_menu_items(ctrl_hdlr, &imx214_ctrl_ops,
aac37a3a763d1f André Apitzsch 2024-12-20 1074 V4L2_CID_TEST_PATTERN,
aac37a3a763d1f André Apitzsch 2024-12-20 1075 ARRAY_SIZE(imx214_test_pattern_menu) - 1,
aac37a3a763d1f André Apitzsch 2024-12-20 1076 0, 0, imx214_test_pattern_menu);
aac37a3a763d1f André Apitzsch 2024-12-20 1077 for (i = 0; i < 4; i++) {
aac37a3a763d1f André Apitzsch 2024-12-20 1078 /*
aac37a3a763d1f André Apitzsch 2024-12-20 1079 * The assumption is that
aac37a3a763d1f André Apitzsch 2024-12-20 1080 * V4L2_CID_TEST_PATTERN_GREENR == V4L2_CID_TEST_PATTERN_RED + 1
aac37a3a763d1f André Apitzsch 2024-12-20 1081 * V4L2_CID_TEST_PATTERN_BLUE == V4L2_CID_TEST_PATTERN_RED + 2
aac37a3a763d1f André Apitzsch 2024-12-20 1082 * V4L2_CID_TEST_PATTERN_GREENB == V4L2_CID_TEST_PATTERN_RED + 3
aac37a3a763d1f André Apitzsch 2024-12-20 1083 */
aac37a3a763d1f André Apitzsch 2024-12-20 1084 v4l2_ctrl_new_std(ctrl_hdlr, &imx214_ctrl_ops,
aac37a3a763d1f André Apitzsch 2024-12-20 1085 V4L2_CID_TEST_PATTERN_RED + i,
aac37a3a763d1f André Apitzsch 2024-12-20 1086 IMX214_TESTP_COLOUR_MIN,
aac37a3a763d1f André Apitzsch 2024-12-20 1087 IMX214_TESTP_COLOUR_MAX,
aac37a3a763d1f André Apitzsch 2024-12-20 1088 IMX214_TESTP_COLOUR_STEP,
aac37a3a763d1f André Apitzsch 2024-12-20 1089 IMX214_TESTP_COLOUR_MAX);
aac37a3a763d1f André Apitzsch 2024-12-20 1090 /* The "Solid color" pattern is white by default */
aac37a3a763d1f André Apitzsch 2024-12-20 1091 }
aac37a3a763d1f André Apitzsch 2024-12-20 1092
4f302d004bd0fc André Apitzsch 2023-12-06 1093 imx214->unit_size = v4l2_ctrl_new_std_compound(ctrl_hdlr,
4f302d004bd0fc André Apitzsch 2023-12-06 1094 NULL,
4f302d004bd0fc André Apitzsch 2023-12-06 1095 V4L2_CID_UNIT_CELL_SIZE,
a5bd42aafb0684 Hans Verkuil 2025-02-03 1096 v4l2_ctrl_ptr_create((void *)&unit_size),
a5bd42aafb0684 Hans Verkuil 2025-02-03 1097 v4l2_ctrl_ptr_create(NULL),
a5bd42aafb0684 Hans Verkuil 2025-02-03 1098 v4l2_ctrl_ptr_create(NULL));
4f302d004bd0fc André Apitzsch 2023-12-06 1099
2ae9f9780d8097 André Apitzsch 2023-12-06 1100 v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &imx214_ctrl_ops, &props);
2ae9f9780d8097 André Apitzsch 2023-12-06 1101
4f302d004bd0fc André Apitzsch 2023-12-06 1102 ret = ctrl_hdlr->error;
4f302d004bd0fc André Apitzsch 2023-12-06 1103 if (ret) {
4f302d004bd0fc André Apitzsch 2023-12-06 1104 v4l2_ctrl_handler_free(ctrl_hdlr);
4f302d004bd0fc André Apitzsch 2023-12-06 1105 dev_err(imx214->dev, "failed to add controls: %d\n", ret);
4f302d004bd0fc André Apitzsch 2023-12-06 1106 return ret;
4f302d004bd0fc André Apitzsch 2023-12-06 1107 }
4f302d004bd0fc André Apitzsch 2023-12-06 1108
7407c0acdb2ff0 André Apitzsch 2025-06-30 @1109 ret = imx214_pll_update(imx214);
^^^^^^
This adds an unchecked dereference.
7407c0acdb2ff0 André Apitzsch 2025-06-30 1110 if (ret < 0) {
7407c0acdb2ff0 André Apitzsch 2025-06-30 1111 v4l2_ctrl_handler_free(ctrl_hdlr);
7407c0acdb2ff0 André Apitzsch 2025-06-30 1112 dev_err(imx214->dev, "failed to update PLL\n");
7407c0acdb2ff0 André Apitzsch 2025-06-30 1113 return ret;
7407c0acdb2ff0 André Apitzsch 2025-06-30 1114 }
7407c0acdb2ff0 André Apitzsch 2025-06-30 1115
4f302d004bd0fc André Apitzsch 2023-12-06 1116 imx214->sd.ctrl_handler = ctrl_hdlr;
4f302d004bd0fc André Apitzsch 2023-12-06 1117
4f302d004bd0fc André Apitzsch 2023-12-06 1118 return 0;
4f302d004bd0fc André Apitzsch 2023-12-06 1119 };
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2025-08-27 7:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-27 7:17 Dan Carpenter [this message]
2025-08-27 9:12 ` [sailus-media-tree:cleanup 30/54] drivers/media/i2c/imx214.c:1109 imx214_ctrls_init() error: we previously assumed 'imx214->link_freq' could be null (see line 1017) Sakari Ailus
2025-08-27 13:06 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202508270603.MDqIVFss-lkp@intel.com \
--to=dan.carpenter@linaro.org \
--cc=git@apitzsch.eu \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--cc=sakari.ailus@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox