Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm/mdp5: use devres-managed allocation for configuration data

Use devm_kzalloc to create configuration data structure. This allows us
to remove corresponding kfree and drop mdp5_cfg_destroy() function.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/546156/
Link: https://lore.kernel.org/r/20230708010407.3871346-3-dmitry.baryshkov@linaro.org

+5 -22
+5 -19
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c
··· 1350 1350 return cfg_handler->revision; 1351 1351 } 1352 1352 1353 - void mdp5_cfg_destroy(struct mdp5_cfg_handler *cfg_handler) 1354 - { 1355 - kfree(cfg_handler); 1356 - } 1357 - 1358 1353 struct mdp5_cfg_handler *mdp5_cfg_init(struct mdp5_kms *mdp5_kms, 1359 1354 uint32_t major, uint32_t minor) 1360 1355 { 1361 1356 struct drm_device *dev = mdp5_kms->dev; 1362 1357 struct mdp5_cfg_handler *cfg_handler; 1363 1358 const struct mdp5_cfg_handler *cfg_handlers; 1364 - int i, ret = 0, num_handlers; 1359 + int i, num_handlers; 1365 1360 1366 - cfg_handler = kzalloc(sizeof(*cfg_handler), GFP_KERNEL); 1361 + cfg_handler = devm_kzalloc(dev->dev, sizeof(*cfg_handler), GFP_KERNEL); 1367 1362 if (unlikely(!cfg_handler)) { 1368 - ret = -ENOMEM; 1369 - goto fail; 1363 + return ERR_PTR(-ENOMEM); 1370 1364 } 1371 1365 1372 1366 switch (major) { ··· 1375 1381 default: 1376 1382 DRM_DEV_ERROR(dev->dev, "unexpected MDP major version: v%d.%d\n", 1377 1383 major, minor); 1378 - ret = -ENXIO; 1379 - goto fail; 1384 + return ERR_PTR(-ENXIO); 1380 1385 } 1381 1386 1382 1387 /* only after mdp5_cfg global pointer's init can we access the hw */ ··· 1389 1396 if (unlikely(!mdp5_cfg)) { 1390 1397 DRM_DEV_ERROR(dev->dev, "unexpected MDP minor revision: v%d.%d\n", 1391 1398 major, minor); 1392 - ret = -ENXIO; 1393 - goto fail; 1399 + return ERR_PTR(-ENXIO); 1394 1400 } 1395 1401 1396 1402 cfg_handler->revision = minor; ··· 1398 1406 DBG("MDP5: %s hw config selected", mdp5_cfg->name); 1399 1407 1400 1408 return cfg_handler; 1401 - 1402 - fail: 1403 - if (cfg_handler) 1404 - mdp5_cfg_destroy(cfg_handler); 1405 - 1406 - return ERR_PTR(ret); 1407 1409 }
-1
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.h
··· 121 121 122 122 struct mdp5_cfg_handler *mdp5_cfg_init(struct mdp5_kms *mdp5_kms, 123 123 uint32_t major, uint32_t minor); 124 - void mdp5_cfg_destroy(struct mdp5_cfg_handler *cfg_hnd); 125 124 126 125 #endif /* __MDP5_CFG_H__ */
-2
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
··· 629 629 mdp5_ctlm_destroy(mdp5_kms->ctlm); 630 630 if (mdp5_kms->smp) 631 631 mdp5_smp_destroy(mdp5_kms->smp); 632 - if (mdp5_kms->cfg) 633 - mdp5_cfg_destroy(mdp5_kms->cfg); 634 632 635 633 for (i = 0; i < mdp5_kms->num_intfs; i++) 636 634 kfree(mdp5_kms->intfs[i]);