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 <lkp@xxxxxxxxx> 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