tree:   
https://kernel.googlesource.com/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
 master
head:   78a1bc18c8ea2bf8bffa007f62c1e471c543d669
commit: 649021ce0f08ac0c19535ef48821fefedfbddd7e [288/301] crypto: caam - 
dispose of IRQ mapping only after IRQ is freed
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.4.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 649021ce0f08ac0c19535ef48821fefedfbddd7e
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=arm64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>

All warnings (new ones prefixed by >>):

   drivers/crypto//caam/jr.c: In function 'caam_jr_irq_dispose_mapping':
>> drivers/crypto//caam/jr.c:491:22: warning: cast from pointer to integer of 
>> different size [-Wpointer-to-int-cast]
     irq_dispose_mapping((int)data);
                         ^
   drivers/crypto//caam/jr.c: In function 'caam_jr_probe':
>> drivers/crypto//caam/jr.c:549:7: warning: cast to pointer from integer of 
>> different size [-Wint-to-pointer-cast]
          (void *)jrpriv->irq);
          ^

vim +491 drivers/crypto//caam/jr.c

   488  
   489  static void caam_jr_irq_dispose_mapping(void *data)
   490  {
 > 491          irq_dispose_mapping((int)data);
   492  }
   493  
   494  /*
   495   * Probe routine for each detected JobR subsystem.
   496   */
   497  static int caam_jr_probe(struct platform_device *pdev)
   498  {
   499          struct device *jrdev;
   500          struct device_node *nprop;
   501          struct caam_job_ring __iomem *ctrl;
   502          struct caam_drv_private_jr *jrpriv;
   503          static int total_jobrs;
   504          struct resource *r;
   505          int error;
   506  
   507          jrdev = &pdev->dev;
   508          jrpriv = devm_kmalloc(jrdev, sizeof(*jrpriv), GFP_KERNEL);
   509          if (!jrpriv)
   510                  return -ENOMEM;
   511  
   512          dev_set_drvdata(jrdev, jrpriv);
   513  
   514          /* save ring identity relative to detection */
   515          jrpriv->ridx = total_jobrs++;
   516  
   517          nprop = pdev->dev.of_node;
   518          /* Get configuration properties from device tree */
   519          /* First, get register page */
   520          r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
   521          if (!r) {
   522                  dev_err(jrdev, "platform_get_resource() failed\n");
   523                  return -ENOMEM;
   524          }
   525  
   526          ctrl = devm_ioremap(jrdev, r->start, resource_size(r));
   527          if (!ctrl) {
   528                  dev_err(jrdev, "devm_ioremap() failed\n");
   529                  return -ENOMEM;
   530          }
   531  
   532          jrpriv->rregs = (struct caam_job_ring __iomem __force *)ctrl;
   533  
   534          error = dma_set_mask_and_coherent(jrdev, 
caam_get_dma_mask(jrdev));
   535          if (error) {
   536                  dev_err(jrdev, "dma_set_mask_and_coherent failed 
(%d)\n",
   537                          error);
   538                  return error;
   539          }
   540  
   541          /* Identify the interrupt */
   542          jrpriv->irq = irq_of_parse_and_map(nprop, 0);
   543          if (!jrpriv->irq) {
   544                  dev_err(jrdev, "irq_of_parse_and_map failed\n");
   545                  return -EINVAL;
   546          }
   547  
   548          error = devm_add_action_or_reset(jrdev, 
caam_jr_irq_dispose_mapping,
 > 549                                           (void *)jrpriv->irq);
   550          if (error)
   551                  return error;
   552  
   553          /* Now do the platform independent part */
   554          error = caam_jr_init(jrdev); /* now turn on hardware */
   555          if (error)
   556                  return error;
   557  
   558          jrpriv->dev = jrdev;
   559          spin_lock(&driver_data.jr_alloc_lock);
   560          list_add_tail(&jrpriv->list_node, &driver_data.jr_list);
   561          spin_unlock(&driver_data.jr_alloc_lock);
   562  
   563          atomic_set(&jrpriv->tfm_count, 0);
   564  
   565          register_algs(jrdev->parent);
   566  
   567          return 0;
   568  }
   569  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to