Re: [PATCH v2 06/11] drm/tests: helpers: Create a helper to allocate an atomic state

From: kernel test robot
Date: Thu Jul 20 2023 - 14:08:05 EST


Hi Maxime,

kernel test robot noticed the following build warnings:

[auto build test WARNING on c58c49dd89324b18a812762a2bfa5a0458e4f252]

url: https://github.com/intel-lab-lkp/linux/commits/Maxime-Ripard/drm-tests-helpers-Switch-to-kunit-actions/20230720-191901
base: c58c49dd89324b18a812762a2bfa5a0458e4f252
patch link: https://lore.kernel.org/r/20230720-kms-kunit-actions-rework-v2-6-175017bd56ab%40kernel.org
patch subject: [PATCH v2 06/11] drm/tests: helpers: Create a helper to allocate an atomic state
config: arm64-randconfig-r022-20230720 (https://download.01.org/0day-ci/archive/20230721/202307210124.Ur3UNuxZ-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230721/202307210124.Ur3UNuxZ-lkp@xxxxxxxxx/reproduce)

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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307210124.Ur3UNuxZ-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/gpu/drm/tests/drm_kunit_helpers.c:54:6: warning: cast from 'void (*)(struct platform_driver *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
54 | (kunit_action_t *)platform_driver_unregister,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tests/drm_kunit_helpers.c:62:6: warning: cast from 'void (*)(struct platform_device *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
62 | (kunit_action_t *)platform_device_put,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tests/drm_kunit_helpers.c:70:6: warning: cast from 'void (*)(struct platform_device *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
70 | (kunit_action_t *)platform_device_del,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tests/drm_kunit_helpers.c:90:9: warning: cast from 'void (*)(struct platform_device *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
90 | (kunit_action_t *)platform_device_unregister,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tests/drm_kunit_helpers.c:94:9: warning: cast from 'void (*)(struct platform_driver *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
94 | (kunit_action_t *)platform_driver_unregister,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/tests/drm_kunit_helpers.c:192:6: warning: cast from 'void (*)(struct drm_atomic_state *)' to 'kunit_action_t *' (aka 'void (*)(void *)') converts to incompatible function type [-Wcast-function-type-strict]
192 | (kunit_action_t *)drm_atomic_state_put,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 warnings generated.


vim +192 drivers/gpu/drm/tests/drm_kunit_helpers.c

164
165 /**
166 * drm_kunit_helper_atomic_state_alloc - Allocates an atomic state
167 * @test: The test context object
168 * @drm: The device to alloc the state for
169 * @ctx: Locking context for that atomic update
170 *
171 * Allocates a empty atomic state.
172 *
173 * The state is tied to the kunit test context, so we must not call
174 * drm_atomic_state_put() on it, it will be done so automatically.
175 *
176 * Returns:
177 * An ERR_PTR on error, a pointer to the newly allocated state otherwise
178 */
179 struct drm_atomic_state *
180 drm_kunit_helper_atomic_state_alloc(struct kunit *test,
181 struct drm_device *drm,
182 struct drm_modeset_acquire_ctx *ctx)
183 {
184 struct drm_atomic_state *state;
185 int ret;
186
187 state = drm_atomic_state_alloc(drm);
188 if (!state)
189 return ERR_PTR(-ENOMEM);
190
191 ret = kunit_add_action_or_reset(test,
> 192 (kunit_action_t *)drm_atomic_state_put,
193 state);
194 if (ret)
195 return ERR_PTR(ret);
196
197 state->acquire_ctx = ctx;
198
199 return state;
200 }
201 EXPORT_SYMBOL_GPL(drm_kunit_helper_atomic_state_alloc);
202

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki