Hello Thomas Zimmermann, The patch 55dc449a7c60: "drm/ast: Handle failed I2C initialization gracefully" from Dec 6, 2021, leads to the following Smatch static checker warning: drivers/gpu/drm/ast/ast_mode.c:1232 ast_get_modes() warn: passing freed memory 'edid' drivers/gpu/drm/ast/ast_mode.c 1209 static int ast_get_modes(struct drm_connector *connector) 1210 { 1211 struct ast_connector *ast_connector = to_ast_connector(connector); 1212 struct ast_private *ast = to_ast_private(connector->dev); 1213 struct edid *edid = NULL; 1214 bool flags = false; 1215 int ret; 1216 1217 if (ast->tx_chip_type == AST_TX_DP501) { 1218 ast->dp501_maxclk = 0xff; 1219 edid = kmalloc(128, GFP_KERNEL); 1220 if (!edid) 1221 return -ENOMEM; 1222 1223 flags = ast_dp501_read_edid(connector->dev, (u8 *)edid); 1224 if (flags) 1225 ast->dp501_maxclk = ast_get_dp501_max_clk(connector->dev); 1226 else 1227 kfree(edid); kfree 1228 } 1229 if (!flags && ast_connector->i2c) 1230 edid = drm_get_edid(connector, &ast_connector->i2c->adapter); If "!flags" is true but "ast_connector->i2c" is false 1231 if (edid) { --> 1232 drm_connector_update_edid_property(&ast_connector->base, edid); Then perhaps "edid" is free here. 1233 ret = drm_add_edid_modes(connector, edid); 1234 kfree(edid); 1235 return ret; 1236 } 1237 drm_connector_update_edid_property(&ast_connector->base, NULL); 1238 return 0; 1239 } regards, dan carpenter