From: kernel test robot <lkp@intel.com>
To: Vadim Fedorenko <vadfed@meta.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH RFC v6 6/6] ptp_ocp: implement DPLL ops
Date: Sun, 12 Mar 2023 13:12:55 +0800 [thread overview]
Message-ID: <202303121343.kC8XYcdk-lkp@intel.com> (raw)
In-Reply-To: <20230312022807.278528-7-vadfed@meta.com>
Hi Vadim,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on linus/master]
[also build test WARNING on v6.3-rc1 next-20230310]
[cannot apply to tnguy-next-queue/dev-queue]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Vadim-Fedorenko/dpll-spec-Add-Netlink-spec-in-YAML/20230312-103056
patch link: https://lore.kernel.org/r/20230312022807.278528-7-vadfed%40meta.com
patch subject: [PATCH RFC v6 6/6] ptp_ocp: implement DPLL ops
config: x86_64-randconfig-a005 (https://download.01.org/0day-ci/archive/20230312/202303121343.kC8XYcdk-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/fe16623a48f3c6592be80872758c19822b70ae62
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Vadim-Fedorenko/dpll-spec-Add-Netlink-spec-in-YAML/20230312-103056
git checkout fe16623a48f3c6592be80872758c19822b70ae62
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/dpll/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303121343.kC8XYcdk-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/dpll/dpll_core.c:285:1: warning: no previous prototype for function 'dpll_device_alloc' [-Wmissing-prototypes]
dpll_device_alloc(const u64 clock_id, u32 dev_driver_id, struct module *module)
^
drivers/dpll/dpll_core.c:284:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct dpll_device *
^
static
>> drivers/dpll/dpll_core.c:439:1: warning: no previous prototype for function 'dpll_pin_alloc' [-Wmissing-prototypes]
dpll_pin_alloc(u64 clock_id, u8 device_drv_id, struct module *module,
^
drivers/dpll/dpll_core.c:438:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct dpll_pin *
^
static
2 warnings generated.
--
>> drivers/dpll/dpll_netlink.c:1062:13: warning: no previous prototype for function 'dpll_netlink_fini' [-Wmissing-prototypes]
void __exit dpll_netlink_fini(void)
^
drivers/dpll/dpll_netlink.c:1062:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __exit dpll_netlink_fini(void)
^
static
1 warning generated.
vim +/dpll_device_alloc +285 drivers/dpll/dpll_core.c
55b810a5137d33 Vadim Fedorenko 2023-03-11 269
55b810a5137d33 Vadim Fedorenko 2023-03-11 270
55b810a5137d33 Vadim Fedorenko 2023-03-11 271 /**
55b810a5137d33 Vadim Fedorenko 2023-03-11 272 * dpll_device_alloc - allocate the memory for dpll device
55b810a5137d33 Vadim Fedorenko 2023-03-11 273 * @clock_id: clock_id of creator
55b810a5137d33 Vadim Fedorenko 2023-03-11 274 * @dev_driver_id: id given by dev driver
55b810a5137d33 Vadim Fedorenko 2023-03-11 275 * @module: reference to registering module
55b810a5137d33 Vadim Fedorenko 2023-03-11 276 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 277 * Allocates memory and initialize dpll device, hold its reference on global
55b810a5137d33 Vadim Fedorenko 2023-03-11 278 * xarray.
55b810a5137d33 Vadim Fedorenko 2023-03-11 279 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 280 * Return:
55b810a5137d33 Vadim Fedorenko 2023-03-11 281 * * dpll_device struct pointer if succeeded
55b810a5137d33 Vadim Fedorenko 2023-03-11 282 * * ERR_PTR(X) - failed allocation
55b810a5137d33 Vadim Fedorenko 2023-03-11 283 */
55b810a5137d33 Vadim Fedorenko 2023-03-11 284 struct dpll_device *
55b810a5137d33 Vadim Fedorenko 2023-03-11 @285 dpll_device_alloc(const u64 clock_id, u32 dev_driver_id, struct module *module)
55b810a5137d33 Vadim Fedorenko 2023-03-11 286 {
55b810a5137d33 Vadim Fedorenko 2023-03-11 287 struct dpll_device *dpll;
55b810a5137d33 Vadim Fedorenko 2023-03-11 288 int ret;
55b810a5137d33 Vadim Fedorenko 2023-03-11 289
55b810a5137d33 Vadim Fedorenko 2023-03-11 290 dpll = kzalloc(sizeof(*dpll), GFP_KERNEL);
55b810a5137d33 Vadim Fedorenko 2023-03-11 291 if (!dpll)
55b810a5137d33 Vadim Fedorenko 2023-03-11 292 return ERR_PTR(-ENOMEM);
55b810a5137d33 Vadim Fedorenko 2023-03-11 293 refcount_set(&dpll->refcount, 1);
55b810a5137d33 Vadim Fedorenko 2023-03-11 294 dpll->dev.class = &dpll_class;
55b810a5137d33 Vadim Fedorenko 2023-03-11 295 dpll->dev_driver_id = dev_driver_id;
55b810a5137d33 Vadim Fedorenko 2023-03-11 296 dpll->clock_id = clock_id;
55b810a5137d33 Vadim Fedorenko 2023-03-11 297 dpll->module = module;
55b810a5137d33 Vadim Fedorenko 2023-03-11 298 ret = xa_alloc(&dpll_device_xa, &dpll->id, dpll,
55b810a5137d33 Vadim Fedorenko 2023-03-11 299 xa_limit_16b, GFP_KERNEL);
55b810a5137d33 Vadim Fedorenko 2023-03-11 300 if (ret) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 301 kfree(dpll);
55b810a5137d33 Vadim Fedorenko 2023-03-11 302 return ERR_PTR(ret);
55b810a5137d33 Vadim Fedorenko 2023-03-11 303 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 304 xa_init_flags(&dpll->pin_refs, XA_FLAGS_ALLOC);
55b810a5137d33 Vadim Fedorenko 2023-03-11 305
55b810a5137d33 Vadim Fedorenko 2023-03-11 306 return dpll;
55b810a5137d33 Vadim Fedorenko 2023-03-11 307 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 308
55b810a5137d33 Vadim Fedorenko 2023-03-11 309 /**
55b810a5137d33 Vadim Fedorenko 2023-03-11 310 * dpll_device_get - find existing or create new dpll device
55b810a5137d33 Vadim Fedorenko 2023-03-11 311 * @clock_id: clock_id of creator
55b810a5137d33 Vadim Fedorenko 2023-03-11 312 * @dev_driver_id: id given by dev driver
55b810a5137d33 Vadim Fedorenko 2023-03-11 313 * @module: reference to registering module
55b810a5137d33 Vadim Fedorenko 2023-03-11 314 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 315 * Get existing object of a dpll device, unique for given arguments.
55b810a5137d33 Vadim Fedorenko 2023-03-11 316 * Create new if doesn't exist yet.
55b810a5137d33 Vadim Fedorenko 2023-03-11 317 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 318 * Return:
55b810a5137d33 Vadim Fedorenko 2023-03-11 319 * * valid dpll_device struct pointer if succeeded
55b810a5137d33 Vadim Fedorenko 2023-03-11 320 * * ERR_PTR of an error
55b810a5137d33 Vadim Fedorenko 2023-03-11 321 */
55b810a5137d33 Vadim Fedorenko 2023-03-11 322 struct dpll_device *
55b810a5137d33 Vadim Fedorenko 2023-03-11 323 dpll_device_get(u64 clock_id, u32 dev_driver_id, struct module *module)
55b810a5137d33 Vadim Fedorenko 2023-03-11 324 {
55b810a5137d33 Vadim Fedorenko 2023-03-11 325 struct dpll_device *dpll, *ret = NULL;
55b810a5137d33 Vadim Fedorenko 2023-03-11 326 unsigned long index;
55b810a5137d33 Vadim Fedorenko 2023-03-11 327
55b810a5137d33 Vadim Fedorenko 2023-03-11 328 mutex_lock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 329 xa_for_each(&dpll_device_xa, index, dpll) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 330 if (dpll->clock_id == clock_id &&
55b810a5137d33 Vadim Fedorenko 2023-03-11 331 dpll->dev_driver_id == dev_driver_id &&
55b810a5137d33 Vadim Fedorenko 2023-03-11 332 dpll->module == module) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 333 ret = dpll;
55b810a5137d33 Vadim Fedorenko 2023-03-11 334 refcount_inc(&ret->refcount);
55b810a5137d33 Vadim Fedorenko 2023-03-11 335 break;
55b810a5137d33 Vadim Fedorenko 2023-03-11 336 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 337 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 338 if (!ret)
55b810a5137d33 Vadim Fedorenko 2023-03-11 339 ret = dpll_device_alloc(clock_id, dev_driver_id, module);
55b810a5137d33 Vadim Fedorenko 2023-03-11 340 mutex_unlock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 341
55b810a5137d33 Vadim Fedorenko 2023-03-11 342 return ret;
55b810a5137d33 Vadim Fedorenko 2023-03-11 343 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 344 EXPORT_SYMBOL_GPL(dpll_device_get);
55b810a5137d33 Vadim Fedorenko 2023-03-11 345
55b810a5137d33 Vadim Fedorenko 2023-03-11 346 /**
55b810a5137d33 Vadim Fedorenko 2023-03-11 347 * dpll_device_put - decrease the refcount and free memory if possible
55b810a5137d33 Vadim Fedorenko 2023-03-11 348 * @dpll: dpll_device struct pointer
55b810a5137d33 Vadim Fedorenko 2023-03-11 349 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 350 * Drop reference for a dpll device, if all references are gone, delete
55b810a5137d33 Vadim Fedorenko 2023-03-11 351 * dpll device object.
55b810a5137d33 Vadim Fedorenko 2023-03-11 352 */
55b810a5137d33 Vadim Fedorenko 2023-03-11 353 void dpll_device_put(struct dpll_device *dpll)
55b810a5137d33 Vadim Fedorenko 2023-03-11 354 {
55b810a5137d33 Vadim Fedorenko 2023-03-11 355 if (!dpll)
55b810a5137d33 Vadim Fedorenko 2023-03-11 356 return;
55b810a5137d33 Vadim Fedorenko 2023-03-11 357 mutex_lock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 358 if (refcount_dec_and_test(&dpll->refcount)) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 359 WARN_ON_ONCE(!xa_empty(&dpll->pin_refs));
55b810a5137d33 Vadim Fedorenko 2023-03-11 360 xa_destroy(&dpll->pin_refs);
55b810a5137d33 Vadim Fedorenko 2023-03-11 361 xa_erase(&dpll_device_xa, dpll->id);
55b810a5137d33 Vadim Fedorenko 2023-03-11 362 kfree(dpll);
55b810a5137d33 Vadim Fedorenko 2023-03-11 363 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 364 mutex_unlock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 365 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 366 EXPORT_SYMBOL_GPL(dpll_device_put);
55b810a5137d33 Vadim Fedorenko 2023-03-11 367
55b810a5137d33 Vadim Fedorenko 2023-03-11 368 /**
55b810a5137d33 Vadim Fedorenko 2023-03-11 369 * dpll_device_register - register the dpll device in the subsystem
55b810a5137d33 Vadim Fedorenko 2023-03-11 370 * @dpll: pointer to a dpll
55b810a5137d33 Vadim Fedorenko 2023-03-11 371 * @type: type of a dpll
55b810a5137d33 Vadim Fedorenko 2023-03-11 372 * @ops: ops for a dpll device
55b810a5137d33 Vadim Fedorenko 2023-03-11 373 * @priv: pointer to private information of owner
55b810a5137d33 Vadim Fedorenko 2023-03-11 374 * @owner: pointer to owner device
55b810a5137d33 Vadim Fedorenko 2023-03-11 375 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 376 * Make dpll device available for user space.
55b810a5137d33 Vadim Fedorenko 2023-03-11 377 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 378 * Return:
55b810a5137d33 Vadim Fedorenko 2023-03-11 379 * * 0 on success
55b810a5137d33 Vadim Fedorenko 2023-03-11 380 * * -EINVAL on failure
55b810a5137d33 Vadim Fedorenko 2023-03-11 381 */
55b810a5137d33 Vadim Fedorenko 2023-03-11 382 int dpll_device_register(struct dpll_device *dpll, enum dpll_type type,
55b810a5137d33 Vadim Fedorenko 2023-03-11 383 struct dpll_device_ops *ops, void *priv,
55b810a5137d33 Vadim Fedorenko 2023-03-11 384 struct device *owner)
55b810a5137d33 Vadim Fedorenko 2023-03-11 385 {
55b810a5137d33 Vadim Fedorenko 2023-03-11 386 if (WARN_ON(!ops || !owner))
55b810a5137d33 Vadim Fedorenko 2023-03-11 387 return -EINVAL;
55b810a5137d33 Vadim Fedorenko 2023-03-11 388 if (WARN_ON(type <= DPLL_TYPE_UNSPEC || type > DPLL_TYPE_MAX))
55b810a5137d33 Vadim Fedorenko 2023-03-11 389 return -EINVAL;
55b810a5137d33 Vadim Fedorenko 2023-03-11 390 mutex_lock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 391 if (ASSERT_DPLL_NOT_REGISTERED(dpll)) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 392 mutex_unlock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 393 return -EEXIST;
55b810a5137d33 Vadim Fedorenko 2023-03-11 394 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 395 dpll->dev.bus = owner->bus;
55b810a5137d33 Vadim Fedorenko 2023-03-11 396 dpll->parent = owner;
55b810a5137d33 Vadim Fedorenko 2023-03-11 397 dpll->type = type;
55b810a5137d33 Vadim Fedorenko 2023-03-11 398 dpll->ops = ops;
55b810a5137d33 Vadim Fedorenko 2023-03-11 399 dev_set_name(&dpll->dev, "%s_%d", dev_name(owner),
55b810a5137d33 Vadim Fedorenko 2023-03-11 400 dpll->dev_driver_id);
55b810a5137d33 Vadim Fedorenko 2023-03-11 401 dpll->priv = priv;
55b810a5137d33 Vadim Fedorenko 2023-03-11 402 xa_set_mark(&dpll_device_xa, dpll->id, DPLL_REGISTERED);
55b810a5137d33 Vadim Fedorenko 2023-03-11 403 mutex_unlock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 404 dpll_notify_device_create(dpll);
55b810a5137d33 Vadim Fedorenko 2023-03-11 405
55b810a5137d33 Vadim Fedorenko 2023-03-11 406 return 0;
55b810a5137d33 Vadim Fedorenko 2023-03-11 407 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 408 EXPORT_SYMBOL_GPL(dpll_device_register);
55b810a5137d33 Vadim Fedorenko 2023-03-11 409
55b810a5137d33 Vadim Fedorenko 2023-03-11 410 /**
55b810a5137d33 Vadim Fedorenko 2023-03-11 411 * dpll_device_unregister - deregister dpll device
55b810a5137d33 Vadim Fedorenko 2023-03-11 412 * @dpll: registered dpll pointer
55b810a5137d33 Vadim Fedorenko 2023-03-11 413 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 414 * Deregister device, make it unavailable for userspace.
55b810a5137d33 Vadim Fedorenko 2023-03-11 415 * Note: It does not free the memory
55b810a5137d33 Vadim Fedorenko 2023-03-11 416 */
55b810a5137d33 Vadim Fedorenko 2023-03-11 417 void dpll_device_unregister(struct dpll_device *dpll)
55b810a5137d33 Vadim Fedorenko 2023-03-11 418 {
55b810a5137d33 Vadim Fedorenko 2023-03-11 419 mutex_lock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 420 ASSERT_DPLL_REGISTERED(dpll);
55b810a5137d33 Vadim Fedorenko 2023-03-11 421 xa_clear_mark(&dpll_device_xa, dpll->id, DPLL_REGISTERED);
55b810a5137d33 Vadim Fedorenko 2023-03-11 422 mutex_unlock(&dpll_device_xa_lock);
55b810a5137d33 Vadim Fedorenko 2023-03-11 423 dpll_notify_device_delete(dpll);
55b810a5137d33 Vadim Fedorenko 2023-03-11 424 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 425 EXPORT_SYMBOL_GPL(dpll_device_unregister);
55b810a5137d33 Vadim Fedorenko 2023-03-11 426
55b810a5137d33 Vadim Fedorenko 2023-03-11 427 /**
55b810a5137d33 Vadim Fedorenko 2023-03-11 428 * dpll_pin_alloc - allocate the memory for dpll pin
55b810a5137d33 Vadim Fedorenko 2023-03-11 429 * @clock_id: clock_id of creator
55b810a5137d33 Vadim Fedorenko 2023-03-11 430 * @dev_driver_id: id given by dev driver
55b810a5137d33 Vadim Fedorenko 2023-03-11 431 * @module: reference to registering module
55b810a5137d33 Vadim Fedorenko 2023-03-11 432 * @prop: dpll pin properties
55b810a5137d33 Vadim Fedorenko 2023-03-11 433 *
55b810a5137d33 Vadim Fedorenko 2023-03-11 434 * Return:
55b810a5137d33 Vadim Fedorenko 2023-03-11 435 * * valid allocated dpll_pin struct pointer if succeeded
55b810a5137d33 Vadim Fedorenko 2023-03-11 436 * * ERR_PTR of an error
55b810a5137d33 Vadim Fedorenko 2023-03-11 437 */
55b810a5137d33 Vadim Fedorenko 2023-03-11 438 struct dpll_pin *
55b810a5137d33 Vadim Fedorenko 2023-03-11 @439 dpll_pin_alloc(u64 clock_id, u8 device_drv_id, struct module *module,
55b810a5137d33 Vadim Fedorenko 2023-03-11 440 const struct dpll_pin_properties *prop)
55b810a5137d33 Vadim Fedorenko 2023-03-11 441 {
55b810a5137d33 Vadim Fedorenko 2023-03-11 442 struct dpll_pin *pin;
55b810a5137d33 Vadim Fedorenko 2023-03-11 443 int ret;
55b810a5137d33 Vadim Fedorenko 2023-03-11 444
55b810a5137d33 Vadim Fedorenko 2023-03-11 445 pin = kzalloc(sizeof(*pin), GFP_KERNEL);
55b810a5137d33 Vadim Fedorenko 2023-03-11 446 if (!pin)
55b810a5137d33 Vadim Fedorenko 2023-03-11 447 return ERR_PTR(-ENOMEM);
55b810a5137d33 Vadim Fedorenko 2023-03-11 448 pin->dev_driver_id = device_drv_id;
55b810a5137d33 Vadim Fedorenko 2023-03-11 449 pin->clock_id = clock_id;
55b810a5137d33 Vadim Fedorenko 2023-03-11 450 pin->module = module;
55b810a5137d33 Vadim Fedorenko 2023-03-11 451 refcount_set(&pin->refcount, 1);
55b810a5137d33 Vadim Fedorenko 2023-03-11 452 if (WARN_ON(!prop->description)) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 453 ret = -EINVAL;
55b810a5137d33 Vadim Fedorenko 2023-03-11 454 goto release;
55b810a5137d33 Vadim Fedorenko 2023-03-11 455 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 456 pin->prop.description = kstrdup(prop->description, GFP_KERNEL);
55b810a5137d33 Vadim Fedorenko 2023-03-11 457 if (!pin->prop.description) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 458 ret = -ENOMEM;
55b810a5137d33 Vadim Fedorenko 2023-03-11 459 goto release;
55b810a5137d33 Vadim Fedorenko 2023-03-11 460 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 461 if (WARN_ON(prop->type <= DPLL_PIN_TYPE_UNSPEC ||
55b810a5137d33 Vadim Fedorenko 2023-03-11 462 prop->type > DPLL_PIN_TYPE_MAX)) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 463 ret = -EINVAL;
55b810a5137d33 Vadim Fedorenko 2023-03-11 464 goto release;
55b810a5137d33 Vadim Fedorenko 2023-03-11 465 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 466 pin->prop.type = prop->type;
55b810a5137d33 Vadim Fedorenko 2023-03-11 467 pin->prop.capabilities = prop->capabilities;
55b810a5137d33 Vadim Fedorenko 2023-03-11 468 pin->prop.freq_supported = prop->freq_supported;
55b810a5137d33 Vadim Fedorenko 2023-03-11 469 pin->prop.any_freq_min = prop->any_freq_min;
55b810a5137d33 Vadim Fedorenko 2023-03-11 470 pin->prop.any_freq_max = prop->any_freq_max;
55b810a5137d33 Vadim Fedorenko 2023-03-11 471 xa_init_flags(&pin->dpll_refs, XA_FLAGS_ALLOC);
55b810a5137d33 Vadim Fedorenko 2023-03-11 472 xa_init_flags(&pin->parent_refs, XA_FLAGS_ALLOC);
55b810a5137d33 Vadim Fedorenko 2023-03-11 473 ret = xa_alloc(&dpll_pin_xa, &pin->idx, pin,
55b810a5137d33 Vadim Fedorenko 2023-03-11 474 xa_limit_16b, GFP_KERNEL);
55b810a5137d33 Vadim Fedorenko 2023-03-11 475 release:
55b810a5137d33 Vadim Fedorenko 2023-03-11 476 if (ret) {
55b810a5137d33 Vadim Fedorenko 2023-03-11 477 xa_destroy(&pin->dpll_refs);
55b810a5137d33 Vadim Fedorenko 2023-03-11 478 xa_destroy(&pin->parent_refs);
55b810a5137d33 Vadim Fedorenko 2023-03-11 479 kfree(pin->prop.description);
55b810a5137d33 Vadim Fedorenko 2023-03-11 480 kfree(pin->rclk_dev_name);
55b810a5137d33 Vadim Fedorenko 2023-03-11 481 kfree(pin);
55b810a5137d33 Vadim Fedorenko 2023-03-11 482 return ERR_PTR(ret);
55b810a5137d33 Vadim Fedorenko 2023-03-11 483 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 484
55b810a5137d33 Vadim Fedorenko 2023-03-11 485 return pin;
55b810a5137d33 Vadim Fedorenko 2023-03-11 486 }
55b810a5137d33 Vadim Fedorenko 2023-03-11 487
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next prev parent reply other threads:[~2023-03-12 5:13 UTC|newest]
Thread overview: 202+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-12 2:28 [PATCH RFC v6 0/6] Create common DPLL/clock configuration API Vadim Fedorenko
2023-03-12 2:28 ` Vadim Fedorenko
2023-03-12 2:28 ` [PATCH RFC v6 1/6] dpll: spec: Add Netlink spec in YAML Vadim Fedorenko
2023-03-12 2:28 ` Vadim Fedorenko
2023-03-14 14:44 ` Jiri Pirko
2023-03-14 14:44 ` Jiri Pirko
2023-03-16 13:15 ` Kubalewski, Arkadiusz
2023-03-16 13:15 ` Kubalewski, Arkadiusz
2023-03-16 13:45 ` Jiri Pirko
2023-03-16 13:45 ` Jiri Pirko
2023-03-16 15:19 ` Jiri Pirko
2023-03-16 15:19 ` Jiri Pirko
2023-03-17 0:53 ` Kubalewski, Arkadiusz
2023-03-17 0:53 ` Kubalewski, Arkadiusz
2023-03-17 10:07 ` Jiri Pirko
2023-03-17 10:07 ` Jiri Pirko
2023-03-17 0:52 ` Kubalewski, Arkadiusz
2023-03-17 0:52 ` Kubalewski, Arkadiusz
2023-03-17 10:05 ` Jiri Pirko
2023-03-17 10:05 ` Jiri Pirko
2023-03-17 14:29 ` Jiri Pirko
2023-03-17 14:29 ` Jiri Pirko
2023-03-17 15:14 ` Kubalewski, Arkadiusz
2023-03-17 15:14 ` Kubalewski, Arkadiusz
2023-03-17 16:20 ` Jiri Pirko
2023-03-17 16:20 ` Jiri Pirko
2023-03-17 18:22 ` Kubalewski, Arkadiusz
2023-03-17 18:22 ` Kubalewski, Arkadiusz
2023-03-20 8:10 ` Jiri Pirko
2023-03-20 8:10 ` Jiri Pirko
2023-03-21 4:05 ` Jakub Kicinski
2023-03-21 4:05 ` Jakub Kicinski
2023-03-21 4:13 ` Jakub Kicinski
2023-03-21 4:13 ` Jakub Kicinski
2023-03-21 4:20 ` Jakub Kicinski
2023-03-21 4:20 ` Jakub Kicinski
2023-03-17 16:23 ` Jiri Pirko
2023-03-17 16:23 ` Jiri Pirko
2023-03-21 4:00 ` Jakub Kicinski
2023-03-21 4:00 ` Jakub Kicinski
2023-03-17 16:53 ` Jiri Pirko
2023-03-17 16:53 ` Jiri Pirko
2023-03-17 18:50 ` Kubalewski, Arkadiusz
2023-03-17 18:50 ` Kubalewski, Arkadiusz
2023-03-12 2:28 ` [PATCH RFC v6 2/6] dpll: Add DPLL framework base functions Vadim Fedorenko
2023-03-12 2:28 ` Vadim Fedorenko
2023-03-13 16:21 ` Jiri Pirko
2023-03-13 16:21 ` Jiri Pirko
2023-03-13 22:59 ` Vadim Fedorenko
2023-03-13 22:59 ` Vadim Fedorenko
2023-03-14 9:21 ` Jiri Pirko
2023-03-14 17:50 ` Kubalewski, Arkadiusz
2023-03-14 17:50 ` Kubalewski, Arkadiusz
2023-03-15 9:22 ` Jiri Pirko
2023-03-15 9:22 ` Jiri Pirko
2023-03-16 12:31 ` Jiri Pirko
2023-03-16 12:31 ` Jiri Pirko
2023-03-28 15:22 ` Vadim Fedorenko
2023-03-28 15:22 ` Vadim Fedorenko
2023-04-01 12:49 ` Jiri Pirko
2023-04-01 12:49 ` Jiri Pirko
2023-04-03 18:18 ` Jakub Kicinski
2023-04-03 18:18 ` Jakub Kicinski
2023-04-09 7:51 ` Jiri Pirko
2023-04-09 7:51 ` Jiri Pirko
[not found] ` <20230410153149.602c6bad@kernel.org>
2023-04-16 16:23 ` Jiri Pirko
2023-04-16 16:23 ` Jiri Pirko
2023-04-17 15:53 ` Vadim Fedorenko
2023-04-17 15:53 ` Vadim Fedorenko
[not found] ` <20230417124942.4305abfa@kernel.org>
2023-04-27 8:05 ` Paolo Abeni
2023-04-27 8:05 ` Paolo Abeni
2023-04-27 10:20 ` Vadim Fedorenko
2023-04-27 10:20 ` Vadim Fedorenko
[not found] ` <ZFDPaXlJainSOqmV@nanopsycho>
[not found] ` <20230502083244.19543d26@kernel.org>
2023-05-03 7:56 ` Jiri Pirko
2023-05-03 7:56 ` Jiri Pirko
2023-05-04 2:16 ` Jakub Kicinski
2023-05-04 2:16 ` Jakub Kicinski
2023-05-04 11:00 ` Jiri Pirko
2023-05-04 11:00 ` Jiri Pirko
2023-05-04 11:14 ` Jiri Pirko
2023-05-04 11:14 ` Jiri Pirko
2023-05-04 16:04 ` Jakub Kicinski
2023-05-04 16:04 ` Jakub Kicinski
2023-05-04 17:51 ` Jiri Pirko
2023-05-04 17:51 ` Jiri Pirko
2023-05-04 18:44 ` Jakub Kicinski
2023-05-04 18:44 ` Jakub Kicinski
2023-05-05 10:41 ` Jiri Pirko
2023-05-05 10:41 ` Jiri Pirko
2023-05-05 15:35 ` Jakub Kicinski
2023-05-05 15:35 ` Jakub Kicinski
2023-05-07 7:58 ` Jiri Pirko
2023-05-07 7:58 ` Jiri Pirko
2023-05-08 6:50 ` Paolo Abeni
2023-05-08 12:17 ` Jiri Pirko
2023-05-08 19:42 ` Jakub Kicinski
2023-05-09 7:53 ` Jiri Pirko
2023-05-09 14:52 ` Jakub Kicinski
2023-05-09 15:21 ` Jiri Pirko
2023-05-09 17:53 ` Jakub Kicinski
2023-05-10 6:17 ` Jiri Pirko
2023-03-14 16:43 ` Kubalewski, Arkadiusz
2023-03-14 16:43 ` Kubalewski, Arkadiusz
2023-03-15 12:14 ` Jiri Pirko
2023-03-15 12:14 ` Jiri Pirko
2023-03-14 9:30 ` Jiri Pirko
2023-03-14 15:45 ` Jiri Pirko
2023-03-14 15:45 ` Jiri Pirko
2023-03-14 18:35 ` Kubalewski, Arkadiusz
2023-03-14 18:35 ` Kubalewski, Arkadiusz
2023-03-15 14:43 ` Jiri Pirko
2023-03-15 14:43 ` Jiri Pirko
2023-03-15 15:29 ` Jiri Pirko
2023-03-15 15:29 ` Jiri Pirko
2023-03-16 12:20 ` Jiri Pirko
2023-03-16 12:20 ` Jiri Pirko
2023-03-16 12:37 ` Jiri Pirko
2023-03-16 12:37 ` Jiri Pirko
2023-03-16 13:53 ` Jiri Pirko
2023-03-16 13:53 ` Jiri Pirko
2023-03-16 16:16 ` Jiri Pirko
2023-03-16 16:16 ` Jiri Pirko
2023-03-17 16:21 ` Jiri Pirko
2023-03-17 16:21 ` Jiri Pirko
2023-03-20 10:24 ` Jiri Pirko
2023-03-20 10:24 ` Jiri Pirko
2023-03-21 13:34 ` Jiri Pirko
2023-03-21 13:34 ` Jiri Pirko
2023-03-23 11:18 ` Jiri Pirko
2023-03-23 11:18 ` Jiri Pirko
2023-03-24 9:29 ` Jiri Pirko
2023-03-24 9:29 ` Jiri Pirko
2023-03-12 2:28 ` [PATCH RFC v6 3/6] dpll: documentation on DPLL subsystem interface Vadim Fedorenko
2023-03-12 2:28 ` Vadim Fedorenko
2023-03-14 16:14 ` Jiri Pirko
2023-03-14 16:14 ` Jiri Pirko
2023-04-03 10:21 ` Kubalewski, Arkadiusz
2023-04-03 10:21 ` Kubalewski, Arkadiusz
2023-03-16 13:46 ` Jiri Pirko
2023-03-16 13:46 ` Jiri Pirko
2023-04-03 10:23 ` Kubalewski, Arkadiusz
2023-04-03 10:23 ` Kubalewski, Arkadiusz
2023-03-12 2:28 ` [PATCH RFC v6 4/6] ice: add admin commands to access cgu configuration Vadim Fedorenko
2023-03-12 2:28 ` Vadim Fedorenko
2023-03-12 7:05 ` kernel test robot
2023-03-12 2:28 ` [PATCH RFC v6 5/6] ice: implement dpll interface to control cgu Vadim Fedorenko
2023-03-12 2:28 ` Vadim Fedorenko
2023-03-12 6:04 ` kernel test robot
2023-03-12 2:28 ` [PATCH RFC v6 6/6] ptp_ocp: implement DPLL ops Vadim Fedorenko
2023-03-12 2:28 ` Vadim Fedorenko
2023-03-12 5:12 ` kernel test robot [this message]
2023-03-14 10:05 ` Jiri Pirko
2023-03-15 0:10 ` Vadim Fedorenko
2023-03-15 0:10 ` Vadim Fedorenko
2023-03-15 12:24 ` Jiri Pirko
2023-03-15 12:24 ` Jiri Pirko
2023-03-31 23:28 ` Vadim Fedorenko
2023-03-31 23:28 ` Vadim Fedorenko
2023-04-01 12:53 ` Jiri Pirko
2023-04-01 12:53 ` Jiri Pirko
2023-03-15 15:34 ` Jiri Pirko
2023-03-15 15:34 ` Jiri Pirko
2023-03-15 15:52 ` Vadim Fedorenko
2023-03-15 15:52 ` Vadim Fedorenko
2023-03-16 12:12 ` Jiri Pirko
2023-03-16 12:12 ` Jiri Pirko
2023-03-13 12:20 ` [PATCH RFC v6 0/6] Create common DPLL/clock configuration API Jiri Pirko
2023-03-13 12:20 ` Jiri Pirko
2023-03-13 15:33 ` Vadim Fedorenko
2023-03-13 15:33 ` Vadim Fedorenko
2023-03-13 16:22 ` Jiri Pirko
2023-03-13 16:22 ` Jiri Pirko
2023-03-13 16:31 ` Vadim Fedorenko
2023-03-13 16:31 ` Vadim Fedorenko
2023-03-17 16:10 ` Jiri Pirko
2023-03-17 16:10 ` Jiri Pirko
2023-03-18 5:01 ` Jakub Kicinski
2023-03-18 5:01 ` Jakub Kicinski
2023-03-23 11:21 ` Jiri Pirko
2023-03-23 11:21 ` Jiri Pirko
2023-03-23 18:00 ` Vadim Fedorenko
2023-03-23 18:00 ` Vadim Fedorenko
2023-03-26 17:00 ` [patch dpll-rfc 0/7] dpll: initial patchset extension by mlx5 implementation Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-26 17:00 ` [patch dpll-rfc 1/7] dpll: make ops function args const Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-26 17:00 ` [patch dpll-rfc 2/7] dpll: allow to call device register multiple times Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-26 17:00 ` [patch dpll-rfc 3/7] dpll: introduce a helper to get first dpll ref and use it Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-26 17:00 ` [patch dpll-rfc 4/7] dpll: allow to call pin register multiple times Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-26 17:00 ` [patch dpll-rfc 5/7] dpll: export dpll_pin_notify() Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-26 17:00 ` [patch dpll-rfc 6/7] netdev: expose DPLL pin handle for netdevice Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-26 17:00 ` [patch dpll-rfc 7/7] mlx5: Implement SyncE support using DPLL infrastructure Jiri Pirko
2023-03-26 17:00 ` Jiri Pirko
2023-03-28 16:36 ` [patch dpll-rfc 0/7] dpll: initial patchset extension by mlx5 implementation Vadim Fedorenko
2023-03-28 16:36 ` Vadim Fedorenko
2023-04-01 12:54 ` Jiri Pirko
2023-04-01 12:54 ` Jiri Pirko
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=202303121343.kC8XYcdk-lkp@intel.com \
--to=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=vadfed@meta.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.