All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] iov_iter: Move unnecessary inclusion of crypto/hash.h
Date: Thu, 11 Jun 2020 18:48:29 +0800	[thread overview]
Message-ID: <202006111819.2aG1SMWK%lkp@intel.com> (raw)
In-Reply-To: <20200611074332.GA12274@gondor.apana.org.au>

[-- Attachment #1: Type: text/plain, Size: 16479 bytes --]

Hi Herbert,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.7 next-20200611]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Herbert-Xu/iov_iter-Move-unnecessary-inclusion-of-crypto-hash-h/20200611-154742
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b29482fde649c72441d5478a4ea2c52c56d97a5e
config: c6x-allyesconfig (attached as .config)
compiler: c6x-elf-gcc (GCC) 9.3.0
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
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=c6x 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>, old ones prefixed by <<):

drivers/soc/qcom/pdr_interface.c: In function 'pdr_indack_work':
>> drivers/soc/qcom/pdr_interface.c:292:3: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
292 |   kfree(ind);
|   ^~~~~
drivers/soc/qcom/pdr_interface.c: In function 'pdr_indication_cb':
>> drivers/soc/qcom/pdr_interface.c:328:8: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
328 |  ind = kzalloc(sizeof(*ind), GFP_KERNEL);
|        ^~~~~~~
>> drivers/soc/qcom/pdr_interface.c:328:6: warning: assignment to 'struct pdr_list_node *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
328 |  ind = kzalloc(sizeof(*ind), GFP_KERNEL);
|      ^
drivers/soc/qcom/pdr_interface.c: In function 'pdr_locate_service':
>> drivers/soc/qcom/pdr_interface.c:401:7: warning: assignment to 'struct servreg_get_domain_list_resp *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
401 |  resp = kzalloc(sizeof(*resp), GFP_KERNEL);
|       ^
drivers/soc/qcom/pdr_interface.c: In function 'pdr_add_lookup':
>> drivers/soc/qcom/pdr_interface.c:526:6: warning: assignment to 'struct pdr_service *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
526 |  pds = kzalloc(sizeof(*pds), GFP_KERNEL);
|      ^
drivers/soc/qcom/pdr_interface.c: In function 'pdr_handle_alloc':
>> drivers/soc/qcom/pdr_interface.c:656:6: warning: assignment to 'struct pdr_handle *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
656 |  pdr = kzalloc(sizeof(*pdr), GFP_KERNEL);
|      ^
cc1: some warnings being treated as errors

vim +/kfree +292 drivers/soc/qcom/pdr_interface.c

fbe639b44a8275 Sibi Sankar       2020-03-12  271  
fbe639b44a8275 Sibi Sankar       2020-03-12  272  static void pdr_indack_work(struct work_struct *work)
fbe639b44a8275 Sibi Sankar       2020-03-12  273  {
fbe639b44a8275 Sibi Sankar       2020-03-12  274  	struct pdr_handle *pdr = container_of(work, struct pdr_handle,
fbe639b44a8275 Sibi Sankar       2020-03-12  275  					      indack_work);
fbe639b44a8275 Sibi Sankar       2020-03-12  276  	struct pdr_list_node *ind, *tmp;
fbe639b44a8275 Sibi Sankar       2020-03-12  277  	struct pdr_service *pds;
fbe639b44a8275 Sibi Sankar       2020-03-12  278  
fbe639b44a8275 Sibi Sankar       2020-03-12  279  	list_for_each_entry_safe(ind, tmp, &pdr->indack_list, node) {
fbe639b44a8275 Sibi Sankar       2020-03-12  280  		pds = ind->pds;
fbe639b44a8275 Sibi Sankar       2020-03-12  281  		pdr_send_indack_msg(pdr, pds, ind->transaction_id);
fbe639b44a8275 Sibi Sankar       2020-03-12  282  
fbe639b44a8275 Sibi Sankar       2020-03-12  283  		mutex_lock(&pdr->status_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  284  		pds->state = ind->curr_state;
fbe639b44a8275 Sibi Sankar       2020-03-12  285  		pdr->status(pds->state, pds->service_path, pdr->priv);
fbe639b44a8275 Sibi Sankar       2020-03-12  286  		mutex_unlock(&pdr->status_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  287  
fbe639b44a8275 Sibi Sankar       2020-03-12  288  		mutex_lock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  289  		list_del(&ind->node);
fbe639b44a8275 Sibi Sankar       2020-03-12  290  		mutex_unlock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  291  
fbe639b44a8275 Sibi Sankar       2020-03-12 @292  		kfree(ind);
fbe639b44a8275 Sibi Sankar       2020-03-12  293  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  294  }
fbe639b44a8275 Sibi Sankar       2020-03-12  295  
fbe639b44a8275 Sibi Sankar       2020-03-12  296  static void pdr_indication_cb(struct qmi_handle *qmi,
fbe639b44a8275 Sibi Sankar       2020-03-12  297  			      struct sockaddr_qrtr *sq,
fbe639b44a8275 Sibi Sankar       2020-03-12  298  			      struct qmi_txn *txn, const void *data)
fbe639b44a8275 Sibi Sankar       2020-03-12  299  {
fbe639b44a8275 Sibi Sankar       2020-03-12  300  	struct pdr_handle *pdr = container_of(qmi, struct pdr_handle,
fbe639b44a8275 Sibi Sankar       2020-03-12  301  					      notifier_hdl);
fbe639b44a8275 Sibi Sankar       2020-03-12  302  	const struct servreg_state_updated_ind *ind_msg = data;
fbe639b44a8275 Sibi Sankar       2020-03-12  303  	struct pdr_list_node *ind;
fbe639b44a8275 Sibi Sankar       2020-03-12  304  	struct pdr_service *pds;
e69b3bede1b2f7 Nathan Chancellor 2020-03-16  305  	bool found = false;
fbe639b44a8275 Sibi Sankar       2020-03-12  306  
fbe639b44a8275 Sibi Sankar       2020-03-12  307  	if (!ind_msg || !ind_msg->service_path[0] ||
fbe639b44a8275 Sibi Sankar       2020-03-12  308  	    strlen(ind_msg->service_path) > SERVREG_NAME_LENGTH)
fbe639b44a8275 Sibi Sankar       2020-03-12  309  		return;
fbe639b44a8275 Sibi Sankar       2020-03-12  310  
fbe639b44a8275 Sibi Sankar       2020-03-12  311  	mutex_lock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  312  	list_for_each_entry(pds, &pdr->lookups, node) {
fbe639b44a8275 Sibi Sankar       2020-03-12  313  		if (strcmp(pds->service_path, ind_msg->service_path))
fbe639b44a8275 Sibi Sankar       2020-03-12  314  			continue;
fbe639b44a8275 Sibi Sankar       2020-03-12  315  
fbe639b44a8275 Sibi Sankar       2020-03-12  316  		found = true;
fbe639b44a8275 Sibi Sankar       2020-03-12  317  		break;
fbe639b44a8275 Sibi Sankar       2020-03-12  318  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  319  	mutex_unlock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  320  
fbe639b44a8275 Sibi Sankar       2020-03-12  321  	if (!found)
fbe639b44a8275 Sibi Sankar       2020-03-12  322  		return;
fbe639b44a8275 Sibi Sankar       2020-03-12  323  
fbe639b44a8275 Sibi Sankar       2020-03-12  324  	pr_info("PDR: Indication received from %s, state: 0x%x, trans-id: %d\n",
fbe639b44a8275 Sibi Sankar       2020-03-12  325  		ind_msg->service_path, ind_msg->curr_state,
fbe639b44a8275 Sibi Sankar       2020-03-12  326  		ind_msg->transaction_id);
fbe639b44a8275 Sibi Sankar       2020-03-12  327  
fbe639b44a8275 Sibi Sankar       2020-03-12 @328  	ind = kzalloc(sizeof(*ind), GFP_KERNEL);
fbe639b44a8275 Sibi Sankar       2020-03-12  329  	if (!ind)
fbe639b44a8275 Sibi Sankar       2020-03-12  330  		return;
fbe639b44a8275 Sibi Sankar       2020-03-12  331  
fbe639b44a8275 Sibi Sankar       2020-03-12  332  	ind->transaction_id = ind_msg->transaction_id;
fbe639b44a8275 Sibi Sankar       2020-03-12  333  	ind->curr_state = ind_msg->curr_state;
fbe639b44a8275 Sibi Sankar       2020-03-12  334  	ind->pds = pds;
fbe639b44a8275 Sibi Sankar       2020-03-12  335  
fbe639b44a8275 Sibi Sankar       2020-03-12  336  	mutex_lock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  337  	list_add_tail(&ind->node, &pdr->indack_list);
fbe639b44a8275 Sibi Sankar       2020-03-12  338  	mutex_unlock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  339  
fbe639b44a8275 Sibi Sankar       2020-03-12  340  	queue_work(pdr->indack_wq, &pdr->indack_work);
fbe639b44a8275 Sibi Sankar       2020-03-12  341  }
fbe639b44a8275 Sibi Sankar       2020-03-12  342  
fbe639b44a8275 Sibi Sankar       2020-03-12  343  static struct qmi_msg_handler qmi_indication_handler[] = {
fbe639b44a8275 Sibi Sankar       2020-03-12  344  	{
fbe639b44a8275 Sibi Sankar       2020-03-12  345  		.type = QMI_INDICATION,
fbe639b44a8275 Sibi Sankar       2020-03-12  346  		.msg_id = SERVREG_STATE_UPDATED_IND_ID,
fbe639b44a8275 Sibi Sankar       2020-03-12  347  		.ei = servreg_state_updated_ind_ei,
fbe639b44a8275 Sibi Sankar       2020-03-12  348  		.decoded_size = sizeof(struct servreg_state_updated_ind),
fbe639b44a8275 Sibi Sankar       2020-03-12  349  		.fn = pdr_indication_cb,
fbe639b44a8275 Sibi Sankar       2020-03-12  350  	},
fbe639b44a8275 Sibi Sankar       2020-03-12  351  	{}
fbe639b44a8275 Sibi Sankar       2020-03-12  352  };
fbe639b44a8275 Sibi Sankar       2020-03-12  353  
fbe639b44a8275 Sibi Sankar       2020-03-12  354  static int pdr_get_domain_list(struct servreg_get_domain_list_req *req,
fbe639b44a8275 Sibi Sankar       2020-03-12  355  			       struct servreg_get_domain_list_resp *resp,
fbe639b44a8275 Sibi Sankar       2020-03-12  356  			       struct pdr_handle *pdr)
fbe639b44a8275 Sibi Sankar       2020-03-12  357  {
fbe639b44a8275 Sibi Sankar       2020-03-12  358  	struct qmi_txn txn;
fbe639b44a8275 Sibi Sankar       2020-03-12  359  	int ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  360  
fbe639b44a8275 Sibi Sankar       2020-03-12  361  	ret = qmi_txn_init(&pdr->locator_hdl, &txn,
fbe639b44a8275 Sibi Sankar       2020-03-12  362  			   servreg_get_domain_list_resp_ei, resp);
fbe639b44a8275 Sibi Sankar       2020-03-12  363  	if (ret < 0)
fbe639b44a8275 Sibi Sankar       2020-03-12  364  		return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  365  
fbe639b44a8275 Sibi Sankar       2020-03-12  366  	ret = qmi_send_request(&pdr->locator_hdl,
fbe639b44a8275 Sibi Sankar       2020-03-12  367  			       &pdr->locator_addr,
fbe639b44a8275 Sibi Sankar       2020-03-12  368  			       &txn, SERVREG_GET_DOMAIN_LIST_REQ,
fbe639b44a8275 Sibi Sankar       2020-03-12  369  			       SERVREG_GET_DOMAIN_LIST_REQ_MAX_LEN,
fbe639b44a8275 Sibi Sankar       2020-03-12  370  			       servreg_get_domain_list_req_ei,
fbe639b44a8275 Sibi Sankar       2020-03-12  371  			       req);
fbe639b44a8275 Sibi Sankar       2020-03-12  372  	if (ret < 0) {
fbe639b44a8275 Sibi Sankar       2020-03-12  373  		qmi_txn_cancel(&txn);
fbe639b44a8275 Sibi Sankar       2020-03-12  374  		return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  375  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  376  
fbe639b44a8275 Sibi Sankar       2020-03-12  377  	ret = qmi_txn_wait(&txn, 5 * HZ);
fbe639b44a8275 Sibi Sankar       2020-03-12  378  	if (ret < 0) {
fbe639b44a8275 Sibi Sankar       2020-03-12  379  		pr_err("PDR: %s get domain list txn wait failed: %d\n",
fbe639b44a8275 Sibi Sankar       2020-03-12  380  		       req->service_name, ret);
fbe639b44a8275 Sibi Sankar       2020-03-12  381  		return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  382  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  383  
fbe639b44a8275 Sibi Sankar       2020-03-12  384  	if (resp->resp.result != QMI_RESULT_SUCCESS_V01) {
fbe639b44a8275 Sibi Sankar       2020-03-12  385  		pr_err("PDR: %s get domain list failed: 0x%x\n",
fbe639b44a8275 Sibi Sankar       2020-03-12  386  		       req->service_name, resp->resp.error);
fbe639b44a8275 Sibi Sankar       2020-03-12  387  		return -EREMOTEIO;
fbe639b44a8275 Sibi Sankar       2020-03-12  388  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  389  
fbe639b44a8275 Sibi Sankar       2020-03-12  390  	return 0;
fbe639b44a8275 Sibi Sankar       2020-03-12  391  }
fbe639b44a8275 Sibi Sankar       2020-03-12  392  
fbe639b44a8275 Sibi Sankar       2020-03-12  393  static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
fbe639b44a8275 Sibi Sankar       2020-03-12  394  {
fbe639b44a8275 Sibi Sankar       2020-03-12  395  	struct servreg_get_domain_list_resp *resp;
fbe639b44a8275 Sibi Sankar       2020-03-12  396  	struct servreg_get_domain_list_req req;
fbe639b44a8275 Sibi Sankar       2020-03-12  397  	struct servreg_location_entry *entry;
fbe639b44a8275 Sibi Sankar       2020-03-12  398  	int domains_read = 0;
fbe639b44a8275 Sibi Sankar       2020-03-12  399  	int ret, i;
fbe639b44a8275 Sibi Sankar       2020-03-12  400  
fbe639b44a8275 Sibi Sankar       2020-03-12 @401  	resp = kzalloc(sizeof(*resp), GFP_KERNEL);
fbe639b44a8275 Sibi Sankar       2020-03-12  402  	if (!resp)
fbe639b44a8275 Sibi Sankar       2020-03-12  403  		return -ENOMEM;
fbe639b44a8275 Sibi Sankar       2020-03-12  404  
fbe639b44a8275 Sibi Sankar       2020-03-12  405  	/* Prepare req message */
fbe639b44a8275 Sibi Sankar       2020-03-12  406  	strcpy(req.service_name, pds->service_name);
fbe639b44a8275 Sibi Sankar       2020-03-12  407  	req.domain_offset_valid = true;
fbe639b44a8275 Sibi Sankar       2020-03-12  408  	req.domain_offset = 0;
fbe639b44a8275 Sibi Sankar       2020-03-12  409  
fbe639b44a8275 Sibi Sankar       2020-03-12  410  	do {
fbe639b44a8275 Sibi Sankar       2020-03-12  411  		req.domain_offset = domains_read;
fbe639b44a8275 Sibi Sankar       2020-03-12  412  		ret = pdr_get_domain_list(&req, resp, pdr);
fbe639b44a8275 Sibi Sankar       2020-03-12  413  		if (ret < 0)
fbe639b44a8275 Sibi Sankar       2020-03-12  414  			goto out;
fbe639b44a8275 Sibi Sankar       2020-03-12  415  
fbe639b44a8275 Sibi Sankar       2020-03-12  416  		for (i = domains_read; i < resp->domain_list_len; i++) {
fbe639b44a8275 Sibi Sankar       2020-03-12  417  			entry = &resp->domain_list[i];
fbe639b44a8275 Sibi Sankar       2020-03-12  418  
fbe639b44a8275 Sibi Sankar       2020-03-12  419  			if (strnlen(entry->name, sizeof(entry->name)) == sizeof(entry->name))
fbe639b44a8275 Sibi Sankar       2020-03-12  420  				continue;
fbe639b44a8275 Sibi Sankar       2020-03-12  421  
fbe639b44a8275 Sibi Sankar       2020-03-12  422  			if (!strcmp(entry->name, pds->service_path)) {
fbe639b44a8275 Sibi Sankar       2020-03-12  423  				pds->service_data_valid = entry->service_data_valid;
fbe639b44a8275 Sibi Sankar       2020-03-12  424  				pds->service_data = entry->service_data;
fbe639b44a8275 Sibi Sankar       2020-03-12  425  				pds->instance = entry->instance;
fbe639b44a8275 Sibi Sankar       2020-03-12  426  				goto out;
fbe639b44a8275 Sibi Sankar       2020-03-12  427  			}
fbe639b44a8275 Sibi Sankar       2020-03-12  428  		}
fbe639b44a8275 Sibi Sankar       2020-03-12  429  
fbe639b44a8275 Sibi Sankar       2020-03-12  430  		/* Update ret to indicate that the service is not yet found */
fbe639b44a8275 Sibi Sankar       2020-03-12  431  		ret = -ENXIO;
fbe639b44a8275 Sibi Sankar       2020-03-12  432  
fbe639b44a8275 Sibi Sankar       2020-03-12  433  		/* Always read total_domains from the response msg */
fbe639b44a8275 Sibi Sankar       2020-03-12  434  		if (resp->domain_list_len > resp->total_domains)
fbe639b44a8275 Sibi Sankar       2020-03-12  435  			resp->domain_list_len = resp->total_domains;
fbe639b44a8275 Sibi Sankar       2020-03-12  436  
fbe639b44a8275 Sibi Sankar       2020-03-12  437  		domains_read += resp->domain_list_len;
fbe639b44a8275 Sibi Sankar       2020-03-12  438  	} while (domains_read < resp->total_domains);
fbe639b44a8275 Sibi Sankar       2020-03-12  439  out:
fbe639b44a8275 Sibi Sankar       2020-03-12  440  	kfree(resp);
fbe639b44a8275 Sibi Sankar       2020-03-12  441  	return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  442  }
fbe639b44a8275 Sibi Sankar       2020-03-12  443  

:::::: The code at line 292 was first introduced by commit
:::::: fbe639b44a82755d639df1c5d147c93f02ac5a0f soc: qcom: Introduce Protection Domain Restart helpers

:::::: TO: Sibi Sankar <sibis@codeaurora.org>
:::::: CC: Bjorn Andersson <bjorn.andersson@linaro.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 53390 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Herbert Xu <herbert@gondor.apana.org.au>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Sagi Grimberg <sagi@lightbitslabs.com>,
	Christoph Hellwig <hch@lst.de>,
	"David S. Miller" <davem@davemloft.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: kbuild-all@lists.01.org, netdev@vger.kernel.org
Subject: Re: [PATCH] iov_iter: Move unnecessary inclusion of crypto/hash.h
Date: Thu, 11 Jun 2020 18:48:29 +0800	[thread overview]
Message-ID: <202006111819.2aG1SMWK%lkp@intel.com> (raw)
In-Reply-To: <20200611074332.GA12274@gondor.apana.org.au>

[-- Attachment #1: Type: text/plain, Size: 16242 bytes --]

Hi Herbert,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.7 next-20200611]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Herbert-Xu/iov_iter-Move-unnecessary-inclusion-of-crypto-hash-h/20200611-154742
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b29482fde649c72441d5478a4ea2c52c56d97a5e
config: c6x-allyesconfig (attached as .config)
compiler: c6x-elf-gcc (GCC) 9.3.0
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
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=c6x 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>, old ones prefixed by <<):

drivers/soc/qcom/pdr_interface.c: In function 'pdr_indack_work':
>> drivers/soc/qcom/pdr_interface.c:292:3: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
292 |   kfree(ind);
|   ^~~~~
drivers/soc/qcom/pdr_interface.c: In function 'pdr_indication_cb':
>> drivers/soc/qcom/pdr_interface.c:328:8: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
328 |  ind = kzalloc(sizeof(*ind), GFP_KERNEL);
|        ^~~~~~~
>> drivers/soc/qcom/pdr_interface.c:328:6: warning: assignment to 'struct pdr_list_node *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
328 |  ind = kzalloc(sizeof(*ind), GFP_KERNEL);
|      ^
drivers/soc/qcom/pdr_interface.c: In function 'pdr_locate_service':
>> drivers/soc/qcom/pdr_interface.c:401:7: warning: assignment to 'struct servreg_get_domain_list_resp *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
401 |  resp = kzalloc(sizeof(*resp), GFP_KERNEL);
|       ^
drivers/soc/qcom/pdr_interface.c: In function 'pdr_add_lookup':
>> drivers/soc/qcom/pdr_interface.c:526:6: warning: assignment to 'struct pdr_service *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
526 |  pds = kzalloc(sizeof(*pds), GFP_KERNEL);
|      ^
drivers/soc/qcom/pdr_interface.c: In function 'pdr_handle_alloc':
>> drivers/soc/qcom/pdr_interface.c:656:6: warning: assignment to 'struct pdr_handle *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
656 |  pdr = kzalloc(sizeof(*pdr), GFP_KERNEL);
|      ^
cc1: some warnings being treated as errors

vim +/kfree +292 drivers/soc/qcom/pdr_interface.c

fbe639b44a8275 Sibi Sankar       2020-03-12  271  
fbe639b44a8275 Sibi Sankar       2020-03-12  272  static void pdr_indack_work(struct work_struct *work)
fbe639b44a8275 Sibi Sankar       2020-03-12  273  {
fbe639b44a8275 Sibi Sankar       2020-03-12  274  	struct pdr_handle *pdr = container_of(work, struct pdr_handle,
fbe639b44a8275 Sibi Sankar       2020-03-12  275  					      indack_work);
fbe639b44a8275 Sibi Sankar       2020-03-12  276  	struct pdr_list_node *ind, *tmp;
fbe639b44a8275 Sibi Sankar       2020-03-12  277  	struct pdr_service *pds;
fbe639b44a8275 Sibi Sankar       2020-03-12  278  
fbe639b44a8275 Sibi Sankar       2020-03-12  279  	list_for_each_entry_safe(ind, tmp, &pdr->indack_list, node) {
fbe639b44a8275 Sibi Sankar       2020-03-12  280  		pds = ind->pds;
fbe639b44a8275 Sibi Sankar       2020-03-12  281  		pdr_send_indack_msg(pdr, pds, ind->transaction_id);
fbe639b44a8275 Sibi Sankar       2020-03-12  282  
fbe639b44a8275 Sibi Sankar       2020-03-12  283  		mutex_lock(&pdr->status_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  284  		pds->state = ind->curr_state;
fbe639b44a8275 Sibi Sankar       2020-03-12  285  		pdr->status(pds->state, pds->service_path, pdr->priv);
fbe639b44a8275 Sibi Sankar       2020-03-12  286  		mutex_unlock(&pdr->status_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  287  
fbe639b44a8275 Sibi Sankar       2020-03-12  288  		mutex_lock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  289  		list_del(&ind->node);
fbe639b44a8275 Sibi Sankar       2020-03-12  290  		mutex_unlock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  291  
fbe639b44a8275 Sibi Sankar       2020-03-12 @292  		kfree(ind);
fbe639b44a8275 Sibi Sankar       2020-03-12  293  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  294  }
fbe639b44a8275 Sibi Sankar       2020-03-12  295  
fbe639b44a8275 Sibi Sankar       2020-03-12  296  static void pdr_indication_cb(struct qmi_handle *qmi,
fbe639b44a8275 Sibi Sankar       2020-03-12  297  			      struct sockaddr_qrtr *sq,
fbe639b44a8275 Sibi Sankar       2020-03-12  298  			      struct qmi_txn *txn, const void *data)
fbe639b44a8275 Sibi Sankar       2020-03-12  299  {
fbe639b44a8275 Sibi Sankar       2020-03-12  300  	struct pdr_handle *pdr = container_of(qmi, struct pdr_handle,
fbe639b44a8275 Sibi Sankar       2020-03-12  301  					      notifier_hdl);
fbe639b44a8275 Sibi Sankar       2020-03-12  302  	const struct servreg_state_updated_ind *ind_msg = data;
fbe639b44a8275 Sibi Sankar       2020-03-12  303  	struct pdr_list_node *ind;
fbe639b44a8275 Sibi Sankar       2020-03-12  304  	struct pdr_service *pds;
e69b3bede1b2f7 Nathan Chancellor 2020-03-16  305  	bool found = false;
fbe639b44a8275 Sibi Sankar       2020-03-12  306  
fbe639b44a8275 Sibi Sankar       2020-03-12  307  	if (!ind_msg || !ind_msg->service_path[0] ||
fbe639b44a8275 Sibi Sankar       2020-03-12  308  	    strlen(ind_msg->service_path) > SERVREG_NAME_LENGTH)
fbe639b44a8275 Sibi Sankar       2020-03-12  309  		return;
fbe639b44a8275 Sibi Sankar       2020-03-12  310  
fbe639b44a8275 Sibi Sankar       2020-03-12  311  	mutex_lock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  312  	list_for_each_entry(pds, &pdr->lookups, node) {
fbe639b44a8275 Sibi Sankar       2020-03-12  313  		if (strcmp(pds->service_path, ind_msg->service_path))
fbe639b44a8275 Sibi Sankar       2020-03-12  314  			continue;
fbe639b44a8275 Sibi Sankar       2020-03-12  315  
fbe639b44a8275 Sibi Sankar       2020-03-12  316  		found = true;
fbe639b44a8275 Sibi Sankar       2020-03-12  317  		break;
fbe639b44a8275 Sibi Sankar       2020-03-12  318  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  319  	mutex_unlock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  320  
fbe639b44a8275 Sibi Sankar       2020-03-12  321  	if (!found)
fbe639b44a8275 Sibi Sankar       2020-03-12  322  		return;
fbe639b44a8275 Sibi Sankar       2020-03-12  323  
fbe639b44a8275 Sibi Sankar       2020-03-12  324  	pr_info("PDR: Indication received from %s, state: 0x%x, trans-id: %d\n",
fbe639b44a8275 Sibi Sankar       2020-03-12  325  		ind_msg->service_path, ind_msg->curr_state,
fbe639b44a8275 Sibi Sankar       2020-03-12  326  		ind_msg->transaction_id);
fbe639b44a8275 Sibi Sankar       2020-03-12  327  
fbe639b44a8275 Sibi Sankar       2020-03-12 @328  	ind = kzalloc(sizeof(*ind), GFP_KERNEL);
fbe639b44a8275 Sibi Sankar       2020-03-12  329  	if (!ind)
fbe639b44a8275 Sibi Sankar       2020-03-12  330  		return;
fbe639b44a8275 Sibi Sankar       2020-03-12  331  
fbe639b44a8275 Sibi Sankar       2020-03-12  332  	ind->transaction_id = ind_msg->transaction_id;
fbe639b44a8275 Sibi Sankar       2020-03-12  333  	ind->curr_state = ind_msg->curr_state;
fbe639b44a8275 Sibi Sankar       2020-03-12  334  	ind->pds = pds;
fbe639b44a8275 Sibi Sankar       2020-03-12  335  
fbe639b44a8275 Sibi Sankar       2020-03-12  336  	mutex_lock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  337  	list_add_tail(&ind->node, &pdr->indack_list);
fbe639b44a8275 Sibi Sankar       2020-03-12  338  	mutex_unlock(&pdr->list_lock);
fbe639b44a8275 Sibi Sankar       2020-03-12  339  
fbe639b44a8275 Sibi Sankar       2020-03-12  340  	queue_work(pdr->indack_wq, &pdr->indack_work);
fbe639b44a8275 Sibi Sankar       2020-03-12  341  }
fbe639b44a8275 Sibi Sankar       2020-03-12  342  
fbe639b44a8275 Sibi Sankar       2020-03-12  343  static struct qmi_msg_handler qmi_indication_handler[] = {
fbe639b44a8275 Sibi Sankar       2020-03-12  344  	{
fbe639b44a8275 Sibi Sankar       2020-03-12  345  		.type = QMI_INDICATION,
fbe639b44a8275 Sibi Sankar       2020-03-12  346  		.msg_id = SERVREG_STATE_UPDATED_IND_ID,
fbe639b44a8275 Sibi Sankar       2020-03-12  347  		.ei = servreg_state_updated_ind_ei,
fbe639b44a8275 Sibi Sankar       2020-03-12  348  		.decoded_size = sizeof(struct servreg_state_updated_ind),
fbe639b44a8275 Sibi Sankar       2020-03-12  349  		.fn = pdr_indication_cb,
fbe639b44a8275 Sibi Sankar       2020-03-12  350  	},
fbe639b44a8275 Sibi Sankar       2020-03-12  351  	{}
fbe639b44a8275 Sibi Sankar       2020-03-12  352  };
fbe639b44a8275 Sibi Sankar       2020-03-12  353  
fbe639b44a8275 Sibi Sankar       2020-03-12  354  static int pdr_get_domain_list(struct servreg_get_domain_list_req *req,
fbe639b44a8275 Sibi Sankar       2020-03-12  355  			       struct servreg_get_domain_list_resp *resp,
fbe639b44a8275 Sibi Sankar       2020-03-12  356  			       struct pdr_handle *pdr)
fbe639b44a8275 Sibi Sankar       2020-03-12  357  {
fbe639b44a8275 Sibi Sankar       2020-03-12  358  	struct qmi_txn txn;
fbe639b44a8275 Sibi Sankar       2020-03-12  359  	int ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  360  
fbe639b44a8275 Sibi Sankar       2020-03-12  361  	ret = qmi_txn_init(&pdr->locator_hdl, &txn,
fbe639b44a8275 Sibi Sankar       2020-03-12  362  			   servreg_get_domain_list_resp_ei, resp);
fbe639b44a8275 Sibi Sankar       2020-03-12  363  	if (ret < 0)
fbe639b44a8275 Sibi Sankar       2020-03-12  364  		return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  365  
fbe639b44a8275 Sibi Sankar       2020-03-12  366  	ret = qmi_send_request(&pdr->locator_hdl,
fbe639b44a8275 Sibi Sankar       2020-03-12  367  			       &pdr->locator_addr,
fbe639b44a8275 Sibi Sankar       2020-03-12  368  			       &txn, SERVREG_GET_DOMAIN_LIST_REQ,
fbe639b44a8275 Sibi Sankar       2020-03-12  369  			       SERVREG_GET_DOMAIN_LIST_REQ_MAX_LEN,
fbe639b44a8275 Sibi Sankar       2020-03-12  370  			       servreg_get_domain_list_req_ei,
fbe639b44a8275 Sibi Sankar       2020-03-12  371  			       req);
fbe639b44a8275 Sibi Sankar       2020-03-12  372  	if (ret < 0) {
fbe639b44a8275 Sibi Sankar       2020-03-12  373  		qmi_txn_cancel(&txn);
fbe639b44a8275 Sibi Sankar       2020-03-12  374  		return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  375  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  376  
fbe639b44a8275 Sibi Sankar       2020-03-12  377  	ret = qmi_txn_wait(&txn, 5 * HZ);
fbe639b44a8275 Sibi Sankar       2020-03-12  378  	if (ret < 0) {
fbe639b44a8275 Sibi Sankar       2020-03-12  379  		pr_err("PDR: %s get domain list txn wait failed: %d\n",
fbe639b44a8275 Sibi Sankar       2020-03-12  380  		       req->service_name, ret);
fbe639b44a8275 Sibi Sankar       2020-03-12  381  		return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  382  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  383  
fbe639b44a8275 Sibi Sankar       2020-03-12  384  	if (resp->resp.result != QMI_RESULT_SUCCESS_V01) {
fbe639b44a8275 Sibi Sankar       2020-03-12  385  		pr_err("PDR: %s get domain list failed: 0x%x\n",
fbe639b44a8275 Sibi Sankar       2020-03-12  386  		       req->service_name, resp->resp.error);
fbe639b44a8275 Sibi Sankar       2020-03-12  387  		return -EREMOTEIO;
fbe639b44a8275 Sibi Sankar       2020-03-12  388  	}
fbe639b44a8275 Sibi Sankar       2020-03-12  389  
fbe639b44a8275 Sibi Sankar       2020-03-12  390  	return 0;
fbe639b44a8275 Sibi Sankar       2020-03-12  391  }
fbe639b44a8275 Sibi Sankar       2020-03-12  392  
fbe639b44a8275 Sibi Sankar       2020-03-12  393  static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
fbe639b44a8275 Sibi Sankar       2020-03-12  394  {
fbe639b44a8275 Sibi Sankar       2020-03-12  395  	struct servreg_get_domain_list_resp *resp;
fbe639b44a8275 Sibi Sankar       2020-03-12  396  	struct servreg_get_domain_list_req req;
fbe639b44a8275 Sibi Sankar       2020-03-12  397  	struct servreg_location_entry *entry;
fbe639b44a8275 Sibi Sankar       2020-03-12  398  	int domains_read = 0;
fbe639b44a8275 Sibi Sankar       2020-03-12  399  	int ret, i;
fbe639b44a8275 Sibi Sankar       2020-03-12  400  
fbe639b44a8275 Sibi Sankar       2020-03-12 @401  	resp = kzalloc(sizeof(*resp), GFP_KERNEL);
fbe639b44a8275 Sibi Sankar       2020-03-12  402  	if (!resp)
fbe639b44a8275 Sibi Sankar       2020-03-12  403  		return -ENOMEM;
fbe639b44a8275 Sibi Sankar       2020-03-12  404  
fbe639b44a8275 Sibi Sankar       2020-03-12  405  	/* Prepare req message */
fbe639b44a8275 Sibi Sankar       2020-03-12  406  	strcpy(req.service_name, pds->service_name);
fbe639b44a8275 Sibi Sankar       2020-03-12  407  	req.domain_offset_valid = true;
fbe639b44a8275 Sibi Sankar       2020-03-12  408  	req.domain_offset = 0;
fbe639b44a8275 Sibi Sankar       2020-03-12  409  
fbe639b44a8275 Sibi Sankar       2020-03-12  410  	do {
fbe639b44a8275 Sibi Sankar       2020-03-12  411  		req.domain_offset = domains_read;
fbe639b44a8275 Sibi Sankar       2020-03-12  412  		ret = pdr_get_domain_list(&req, resp, pdr);
fbe639b44a8275 Sibi Sankar       2020-03-12  413  		if (ret < 0)
fbe639b44a8275 Sibi Sankar       2020-03-12  414  			goto out;
fbe639b44a8275 Sibi Sankar       2020-03-12  415  
fbe639b44a8275 Sibi Sankar       2020-03-12  416  		for (i = domains_read; i < resp->domain_list_len; i++) {
fbe639b44a8275 Sibi Sankar       2020-03-12  417  			entry = &resp->domain_list[i];
fbe639b44a8275 Sibi Sankar       2020-03-12  418  
fbe639b44a8275 Sibi Sankar       2020-03-12  419  			if (strnlen(entry->name, sizeof(entry->name)) == sizeof(entry->name))
fbe639b44a8275 Sibi Sankar       2020-03-12  420  				continue;
fbe639b44a8275 Sibi Sankar       2020-03-12  421  
fbe639b44a8275 Sibi Sankar       2020-03-12  422  			if (!strcmp(entry->name, pds->service_path)) {
fbe639b44a8275 Sibi Sankar       2020-03-12  423  				pds->service_data_valid = entry->service_data_valid;
fbe639b44a8275 Sibi Sankar       2020-03-12  424  				pds->service_data = entry->service_data;
fbe639b44a8275 Sibi Sankar       2020-03-12  425  				pds->instance = entry->instance;
fbe639b44a8275 Sibi Sankar       2020-03-12  426  				goto out;
fbe639b44a8275 Sibi Sankar       2020-03-12  427  			}
fbe639b44a8275 Sibi Sankar       2020-03-12  428  		}
fbe639b44a8275 Sibi Sankar       2020-03-12  429  
fbe639b44a8275 Sibi Sankar       2020-03-12  430  		/* Update ret to indicate that the service is not yet found */
fbe639b44a8275 Sibi Sankar       2020-03-12  431  		ret = -ENXIO;
fbe639b44a8275 Sibi Sankar       2020-03-12  432  
fbe639b44a8275 Sibi Sankar       2020-03-12  433  		/* Always read total_domains from the response msg */
fbe639b44a8275 Sibi Sankar       2020-03-12  434  		if (resp->domain_list_len > resp->total_domains)
fbe639b44a8275 Sibi Sankar       2020-03-12  435  			resp->domain_list_len = resp->total_domains;
fbe639b44a8275 Sibi Sankar       2020-03-12  436  
fbe639b44a8275 Sibi Sankar       2020-03-12  437  		domains_read += resp->domain_list_len;
fbe639b44a8275 Sibi Sankar       2020-03-12  438  	} while (domains_read < resp->total_domains);
fbe639b44a8275 Sibi Sankar       2020-03-12  439  out:
fbe639b44a8275 Sibi Sankar       2020-03-12  440  	kfree(resp);
fbe639b44a8275 Sibi Sankar       2020-03-12  441  	return ret;
fbe639b44a8275 Sibi Sankar       2020-03-12  442  }
fbe639b44a8275 Sibi Sankar       2020-03-12  443  

:::::: The code at line 292 was first introduced by commit
:::::: fbe639b44a82755d639df1c5d147c93f02ac5a0f soc: qcom: Introduce Protection Domain Restart helpers

:::::: TO: Sibi Sankar <sibis@codeaurora.org>
:::::: CC: Bjorn Andersson <bjorn.andersson@linaro.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 53390 bytes --]

  parent reply	other threads:[~2020-06-11 10:48 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-11  7:43 [PATCH] iov_iter: Move unnecessary inclusion of crypto/hash.h Herbert Xu
2020-06-11  7:56 ` Herbert Xu
2020-06-11 10:48 ` kernel test robot [this message]
2020-06-11 10:48   ` kernel test robot
2020-06-11 10:51 ` kernel test robot
2020-06-11 10:51   ` kernel test robot
2020-06-11 10:51 ` kernel test robot
2020-06-11 10:51   ` kernel test robot
2020-06-11 10:53 ` kernel test robot
2020-06-11 10:53   ` kernel test robot
2020-06-11 11:49 ` [v2 PATCH] " Herbert Xu
2020-06-12  6:57   ` [v3 " Herbert Xu
2020-06-15  7:09     ` Christoph Hellwig
2020-06-15 14:16     ` Al Viro

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=202006111819.2aG1SMWK%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /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.