All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.