Hi Herbert,

I love your patch! Yet something to improve:

[auto build test ERROR on cryptodev/master]
[also build test ERROR on crypto/master rockchip/for-next 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/crypto-algapi-Remove-skbuff-h-inclusion/20200611-222332
base:   
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-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=m68k 

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

All errors (new ones prefixed by >>, old ones prefixed by <<):

drivers/crypto/qcom-rng.c: In function 'qcom_rng_read':
>> drivers/crypto/qcom-rng.c:48:9: error: implicit declaration of function 
>> 'readl_relaxed' [-Werror=implicit-function-declaration]
48 |   val = readl_relaxed(rng->base + PRNG_STATUS);
|         ^~~~~~~~~~~~~
drivers/crypto/qcom-rng.c: In function 'qcom_rng_enable':
>> drivers/crypto/qcom-rng.c:115:2: error: implicit declaration of function 
>> 'writel' [-Werror=implicit-function-declaration]
115 |  writel(val, rng->base + PRNG_LFSR_CFG);
|  ^~~~~~
cc1: some warnings being treated as errors

vim +/readl_relaxed +48 drivers/crypto/qcom-rng.c

ceec5f5b59882b Vinod Koul 2018-07-16   40  
ceec5f5b59882b Vinod Koul 2018-07-16   41  static int qcom_rng_read(struct 
qcom_rng *rng, u8 *data, unsigned int max)
ceec5f5b59882b Vinod Koul 2018-07-16   42  {
ceec5f5b59882b Vinod Koul 2018-07-16   43       unsigned int currsize = 0;
ceec5f5b59882b Vinod Koul 2018-07-16   44       u32 val;
ceec5f5b59882b Vinod Koul 2018-07-16   45  
ceec5f5b59882b Vinod Koul 2018-07-16   46       /* read random data from 
hardware */
ceec5f5b59882b Vinod Koul 2018-07-16   47       do {
ceec5f5b59882b Vinod Koul 2018-07-16  @48               val = 
readl_relaxed(rng->base + PRNG_STATUS);
ceec5f5b59882b Vinod Koul 2018-07-16   49               if (!(val & 
PRNG_STATUS_DATA_AVAIL))
ceec5f5b59882b Vinod Koul 2018-07-16   50                       break;
ceec5f5b59882b Vinod Koul 2018-07-16   51  
ceec5f5b59882b Vinod Koul 2018-07-16   52               val = 
readl_relaxed(rng->base + PRNG_DATA_OUT);
ceec5f5b59882b Vinod Koul 2018-07-16   53               if (!val)
ceec5f5b59882b Vinod Koul 2018-07-16   54                       break;
ceec5f5b59882b Vinod Koul 2018-07-16   55  
ceec5f5b59882b Vinod Koul 2018-07-16   56               if ((max - currsize) >= 
WORD_SZ) {
ceec5f5b59882b Vinod Koul 2018-07-16   57                       memcpy(data, 
&val, WORD_SZ);
ceec5f5b59882b Vinod Koul 2018-07-16   58                       data += WORD_SZ;
ceec5f5b59882b Vinod Koul 2018-07-16   59                       currsize += 
WORD_SZ;
ceec5f5b59882b Vinod Koul 2018-07-16   60               } else {
ceec5f5b59882b Vinod Koul 2018-07-16   61                       /* copy only 
remaining bytes */
ceec5f5b59882b Vinod Koul 2018-07-16   62                       memcpy(data, 
&val, max - currsize);
ceec5f5b59882b Vinod Koul 2018-07-16   63                       break;
ceec5f5b59882b Vinod Koul 2018-07-16   64               }
ceec5f5b59882b Vinod Koul 2018-07-16   65       } while (currsize < max);
ceec5f5b59882b Vinod Koul 2018-07-16   66  
ceec5f5b59882b Vinod Koul 2018-07-16   67       return currsize;
ceec5f5b59882b Vinod Koul 2018-07-16   68  }
ceec5f5b59882b Vinod Koul 2018-07-16   69  
ceec5f5b59882b Vinod Koul 2018-07-16   70  static int qcom_rng_generate(struct 
crypto_rng *tfm,
ceec5f5b59882b Vinod Koul 2018-07-16   71                            const u8 
*src, unsigned int slen,
ceec5f5b59882b Vinod Koul 2018-07-16   72                            u8 *dstn, 
unsigned int dlen)
ceec5f5b59882b Vinod Koul 2018-07-16   73  {
ceec5f5b59882b Vinod Koul 2018-07-16   74       struct qcom_rng_ctx *ctx = 
crypto_rng_ctx(tfm);
ceec5f5b59882b Vinod Koul 2018-07-16   75       struct qcom_rng *rng = ctx->rng;
ceec5f5b59882b Vinod Koul 2018-07-16   76       int ret;
ceec5f5b59882b Vinod Koul 2018-07-16   77  
ceec5f5b59882b Vinod Koul 2018-07-16   78       ret = 
clk_prepare_enable(rng->clk);
ceec5f5b59882b Vinod Koul 2018-07-16   79       if (ret)
ceec5f5b59882b Vinod Koul 2018-07-16   80               return ret;
ceec5f5b59882b Vinod Koul 2018-07-16   81  
ceec5f5b59882b Vinod Koul 2018-07-16   82       mutex_lock(&rng->lock);
ceec5f5b59882b Vinod Koul 2018-07-16   83  
ceec5f5b59882b Vinod Koul 2018-07-16   84       ret = qcom_rng_read(rng, dstn, 
dlen);
ceec5f5b59882b Vinod Koul 2018-07-16   85  
ceec5f5b59882b Vinod Koul 2018-07-16   86       mutex_unlock(&rng->lock);
ceec5f5b59882b Vinod Koul 2018-07-16   87       clk_disable_unprepare(rng->clk);
ceec5f5b59882b Vinod Koul 2018-07-16   88  
ceec5f5b59882b Vinod Koul 2018-07-16   89       return 0;
ceec5f5b59882b Vinod Koul 2018-07-16   90  }
ceec5f5b59882b Vinod Koul 2018-07-16   91  
ceec5f5b59882b Vinod Koul 2018-07-16   92  static int qcom_rng_seed(struct 
crypto_rng *tfm, const u8 *seed,
ceec5f5b59882b Vinod Koul 2018-07-16   93                        unsigned int 
slen)
ceec5f5b59882b Vinod Koul 2018-07-16   94  {
ceec5f5b59882b Vinod Koul 2018-07-16   95       return 0;
ceec5f5b59882b Vinod Koul 2018-07-16   96  }
ceec5f5b59882b Vinod Koul 2018-07-16   97  
ceec5f5b59882b Vinod Koul 2018-07-16   98  static int qcom_rng_enable(struct 
qcom_rng *rng)
ceec5f5b59882b Vinod Koul 2018-07-16   99  {
ceec5f5b59882b Vinod Koul 2018-07-16  100       u32 val;
ceec5f5b59882b Vinod Koul 2018-07-16  101       int ret;
ceec5f5b59882b Vinod Koul 2018-07-16  102  
ceec5f5b59882b Vinod Koul 2018-07-16  103       ret = 
clk_prepare_enable(rng->clk);
ceec5f5b59882b Vinod Koul 2018-07-16  104       if (ret)
ceec5f5b59882b Vinod Koul 2018-07-16  105               return ret;
ceec5f5b59882b Vinod Koul 2018-07-16  106  
ceec5f5b59882b Vinod Koul 2018-07-16  107       /* Enable PRNG only if it is 
not already enabled */
ceec5f5b59882b Vinod Koul 2018-07-16  108       val = readl_relaxed(rng->base + 
PRNG_CONFIG);
ceec5f5b59882b Vinod Koul 2018-07-16  109       if (val & PRNG_CONFIG_HW_ENABLE)
ceec5f5b59882b Vinod Koul 2018-07-16  110               goto already_enabled;
ceec5f5b59882b Vinod Koul 2018-07-16  111  
ceec5f5b59882b Vinod Koul 2018-07-16  112       val = readl_relaxed(rng->base + 
PRNG_LFSR_CFG);
ceec5f5b59882b Vinod Koul 2018-07-16  113       val &= ~PRNG_LFSR_CFG_MASK;
ceec5f5b59882b Vinod Koul 2018-07-16  114       val |= PRNG_LFSR_CFG_CLOCKS;
ceec5f5b59882b Vinod Koul 2018-07-16 @115       writel(val, rng->base + 
PRNG_LFSR_CFG);
ceec5f5b59882b Vinod Koul 2018-07-16  116  
ceec5f5b59882b Vinod Koul 2018-07-16  117       val = readl_relaxed(rng->base + 
PRNG_CONFIG);
ceec5f5b59882b Vinod Koul 2018-07-16  118       val |= PRNG_CONFIG_HW_ENABLE;
ceec5f5b59882b Vinod Koul 2018-07-16  119       writel(val, rng->base + 
PRNG_CONFIG);
ceec5f5b59882b Vinod Koul 2018-07-16  120  
ceec5f5b59882b Vinod Koul 2018-07-16  121  already_enabled:
ceec5f5b59882b Vinod Koul 2018-07-16  122       clk_disable_unprepare(rng->clk);
ceec5f5b59882b Vinod Koul 2018-07-16  123  
ceec5f5b59882b Vinod Koul 2018-07-16  124       return 0;
ceec5f5b59882b Vinod Koul 2018-07-16  125  }
ceec5f5b59882b Vinod Koul 2018-07-16  126  

:::::: The code at line 48 was first introduced by commit
:::::: ceec5f5b59882b871a722ca4d49b767a09a4bde9 crypto: qcom-rng - Add Qcom 
prng driver

:::::: TO: Vinod Koul <vk...@kernel.org>
:::::: CC: Herbert Xu <herb...@gondor.apana.org.au>

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

Attachment: .config.gz
Description: application/gzip

Reply via email to