* drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c:72:6-12: inconsistent IS_ERR and PTR_ERR on line 73.
@ 2026-10-06 6:40 kernel test robot
2026-10-06 9:14 ` Luca Ceresoli
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2026-10-06 6:40 UTC (permalink / raw)
To: Luca Ceresoli
Cc: oe-kbuild-all, linux-kernel, Linus Walleij, Laurent Pinchart,
Louis Chauvet
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2c3418fffa9d037b2038a6db48be63f9e2291806
commit: 5b03d4907db93627ef48396f39c3455ce644c946 drm: rcar-du: encoder: convert to of_drm_find_and_get_bridge()
date: 6 months ago
config: sparc64-randconfig-r2106-20261005 (https://download.01.org/0day-ci/archive/20261006/202610060853.t5Q4BX8P-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 195c81658995a4b7531c30a12c5aef6cf2bbd671)
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
| Fixes: 5b03d4907db9 ("drm: rcar-du: encoder: convert to of_drm_find_and_get_bridge()")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610060853.t5Q4BX8P-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c:72:6-12: inconsistent IS_ERR and PTR_ERR on line 73.
vim +72 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c
f5f16725edbc1a drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 47
6978f123776594 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2013-06-15 48 int rcar_du_encoder_init(struct rcar_du_device *rcdu,
ef67a902e946ad drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2013-06-17 49 enum rcar_du_output output,
5aebc852af25d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-01-17 50 struct device_node *enc_node)
4bf8e1962f91ee drivers/gpu/drm/rcar-du/rcar_du_lvds.c Laurent Pinchart 2013-06-19 51 {
4bf8e1962f91ee drivers/gpu/drm/rcar-du/rcar_du_lvds.c Laurent Pinchart 2013-06-19 52 struct rcar_du_encoder *renc;
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 53 struct drm_connector *connector;
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 54 struct drm_bridge *bridge __free(drm_bridge_put) = NULL;
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 55 int ret;
4bf8e1962f91ee drivers/gpu/drm/rcar-du/rcar_du_lvds.c Laurent Pinchart 2013-06-19 56
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 57 /*
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 58 * Locate the DRM bridge from the DT node. For the DPAD outputs, if the
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 59 * DT node has a single port, assume that it describes a panel and
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 60 * create a panel bridge.
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 61 */
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 62 if ((output == RCAR_DU_OUTPUT_DPAD0 ||
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 63 output == RCAR_DU_OUTPUT_DPAD1) &&
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 64 rcar_du_encoder_count_ports(enc_node) == 1) {
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 65 struct drm_panel *panel = of_drm_find_panel(enc_node);
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 66
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 67 if (IS_ERR(panel))
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 68 return PTR_ERR(panel);
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 69
89958b7cd9555a drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-09-04 70 bridge = devm_drm_panel_bridge_add_typed(rcdu->dev, panel,
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 71 DRM_MODE_CONNECTOR_DPI);
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 @72 if (IS_ERR(bridge))
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 @73 return PTR_ERR(no_free_ptr(bridge));
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 74
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 75 /*
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 76 * The reference taken by devm_drm_panel_bridge_add_typed() is
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 77 * released automatically. Take a second one for the __free()
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 78 * when this function will return.
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 79 */
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 80 drm_bridge_get(bridge);
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 81 } else {
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 82 bridge = of_drm_find_and_get_bridge(enc_node);
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 83 if (!bridge)
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 84 return -EPROBE_DEFER;
53ced169373aab drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-04 85
53ced169373aab drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-04 86 if (output == RCAR_DU_OUTPUT_LVDS0 ||
53ced169373aab drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-04 87 output == RCAR_DU_OUTPUT_LVDS1)
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 88 rcdu->lvds[output - RCAR_DU_OUTPUT_LVDS0] =
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 89 drm_bridge_get(bridge);
957fe62d7d15f4 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Tomi Valkeinen 2022-08-24 90
957fe62d7d15f4 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Tomi Valkeinen 2022-08-24 91 if (output == RCAR_DU_OUTPUT_DSI0 ||
957fe62d7d15f4 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Tomi Valkeinen 2022-08-24 92 output == RCAR_DU_OUTPUT_DSI1)
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 93 rcdu->dsi[output - RCAR_DU_OUTPUT_DSI0] =
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 94 drm_bridge_get(bridge);
73eb5476df7207 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-02 95 }
ef67a902e946ad drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2013-06-17 96
8e8fddab0d0acd drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-05 97 /*
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 98 * Create and initialize the encoder. On Gen3, skip the LVDS1 output if
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 99 * the LVDS1 encoder is used as a companion for LVDS0 in dual-link
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 100 * mode, or any LVDS output if it isn't connected. The latter may happen
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 101 * on D3 or E3 as the LVDS encoders are needed to provide the pixel
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 102 * clock to the DU, even when the LVDS outputs are not used.
8e8fddab0d0acd drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-05 103 */
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 104 if (rcdu->info->gen >= 3) {
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 105 if (output == RCAR_DU_OUTPUT_LVDS1 &&
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 106 rcar_lvds_dual_link(bridge))
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 107 return -ENOLINK;
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 108
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 109 if ((output == RCAR_DU_OUTPUT_LVDS0 ||
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 110 output == RCAR_DU_OUTPUT_LVDS1) &&
187502afe87a0f drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 111 !rcar_lvds_is_connected(bridge))
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 112 return -ENOLINK;
8e8fddab0d0acd drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-05 113 }
8e8fddab0d0acd drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2019-03-05 114
206c54710882d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 115 dev_dbg(rcdu->dev, "initializing encoder %pOF for output %s\n",
206c54710882d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 116 enc_node, rcar_du_output_name(output));
9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 117
7a1adbd2399023 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Kieran Bingham 2021-01-13 118 renc = drmm_encoder_alloc(&rcdu->ddev, struct rcar_du_encoder, base,
7a1adbd2399023 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Kieran Bingham 2021-01-13 119 &rcar_du_encoder_funcs, DRM_MODE_ENCODER_NONE,
7a1adbd2399023 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Kieran Bingham 2021-01-13 120 NULL);
40f43730f43699 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Dan Carpenter 2023-02-27 121 if (IS_ERR(renc))
40f43730f43699 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Dan Carpenter 2023-02-27 122 return PTR_ERR(renc);
f5f16725edbc1a drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 123
7a1adbd2399023 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Kieran Bingham 2021-01-13 124 renc->output = output;
4bf8e1962f91ee drivers/gpu/drm/rcar-du/rcar_du_lvds.c Laurent Pinchart 2013-06-19 125
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 126 /* Attach the bridge to the encoder. */
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 127 ret = drm_bridge_attach(&renc->base, bridge, NULL,
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 128 DRM_BRIDGE_ATTACH_NO_CONNECTOR);
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 129 if (ret) {
206c54710882d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 130 dev_err(rcdu->dev,
206c54710882d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 131 "failed to attach bridge %pOF for output %s (%d)\n",
206c54710882d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 132 bridge->of_node, rcar_du_output_name(output), ret);
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 133 return ret;
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 134 }
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 135
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 136 /* Create the connector for the chain of bridges. */
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 137 connector = drm_bridge_connector_init(&rcdu->ddev, &renc->base);
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 138 if (IS_ERR(connector)) {
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 139 dev_err(rcdu->dev,
206c54710882d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 140 "failed to created connector for output %s (%ld)\n",
206c54710882d8 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2021-08-22 141 rcar_du_output_name(output), PTR_ERR(connector));
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 142 return PTR_ERR(connector);
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 143 }
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 144
c24110a8fd09ac drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-05-25 145 return drm_connector_attach_encoder(connector, &renc->base);
4bf8e1962f91ee drivers/gpu/drm/rcar-du/rcar_du_lvds.c Laurent Pinchart 2013-06-19 146 }
5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 147
:::::: The code at line 72 was first introduced by commit
:::::: 9a248605980a7547100d06ab9053f49f3ce43418 drm: rcar-du: Skip encoder allocation for LVDS1 in dual-link mode
:::::: TO: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
:::::: CC: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c:72:6-12: inconsistent IS_ERR and PTR_ERR on line 73.
2026-10-06 6:40 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c:72:6-12: inconsistent IS_ERR and PTR_ERR on line 73 kernel test robot
@ 2026-10-06 9:14 ` Luca Ceresoli
0 siblings, 0 replies; 2+ messages in thread
From: Luca Ceresoli @ 2026-10-06 9:14 UTC (permalink / raw)
To: kernel test robot, Luca Ceresoli
Cc: oe-kbuild-all, linux-kernel, Linus Walleij, Laurent Pinchart,
Louis Chauvet
Hello,
On Tue Oct 6, 2026 at 8:40 AM CEST, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 2c3418fffa9d037b2038a6db48be63f9e2291806
> commit: 5b03d4907db93627ef48396f39c3455ce644c946 drm: rcar-du: encoder: convert to of_drm_find_and_get_bridge()
> date: 6 months ago
> config: sparc64-randconfig-r2106-20261005 (https://download.01.org/0day-ci/archive/20261006/202610060853.t5Q4BX8P-lkp@intel.com/config)
> compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 195c81658995a4b7531c30a12c5aef6cf2bbd671)
>
> 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
> | Fixes: 5b03d4907db9 ("drm: rcar-du: encoder: convert to of_drm_find_and_get_bridge()")
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202610060853.t5Q4BX8P-lkp@intel.com/
>
> cocci warnings: (new ones prefixed by >>)
>>> drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c:72:6-12: inconsistent IS_ERR and PTR_ERR on line 73.
...
> 9a248605980a75 drivers/gpu/drm/rcar-du/rcar_du_encoder.c Laurent Pinchart 2020-12-03 @72 if (IS_ERR(bridge))
> 5b03d4907db936 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c Luca Ceresoli 2026-04-09 @73 return PTR_ERR(no_free_ptr(bridge));
This looks like a false positive to me. I guess this code would not trigger
any warning without the infixed no_free_ptr(). But no_free_ptr(p) is
transparent in the sense that it returns a copy of p.
So I guess no fix is needed for this driver. Just let me know in case I'm
wrong.
Luca
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-06 9:14 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-06 6:40 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c:72:6-12: inconsistent IS_ERR and PTR_ERR on line 73 kernel test robot
2026-10-06 9:14 ` Luca Ceresoli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®