tree:
https://github.com/l1k/linux spi_fixes_part2
head: 7e3aa793208e7679cbeaddd23911685c89efb115
commit: 87559c2497a3deb6b08b469522e5f2e16d2c59ad [5/15] spi: atmel-quadspi: Fix
use-after-free on unbind
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-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
#
https://github.com/l1k/linux/commit/87559c2497a3deb6b08b469522e5f2e16d2c59ad
git remote add l1k
https://github.com/l1k/linux
git fetch --no-tags l1k spi_fixes_part2
git checkout 87559c2497a3deb6b08b469522e5f2e16d2c59ad
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/spi/atmel-quadspi.c: In function 'atmel_qspi_probe':
> drivers/spi/atmel-quadspi.c:594:3: error: label 'exit'
used but not defined
594 | goto exit;
| ^~~~
vim +/exit +594 drivers/spi/atmel-quadspi.c
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 530
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 531
static int atmel_qspi_probe(struct platform_device *pdev)
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 532 {
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 533
struct spi_controller *ctrl;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 534
struct atmel_qspi *aq;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 535
struct resource *res;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 536 int
irq, err = 0;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 537
87559c2497a3deb drivers/spi/atmel-quadspi.c Lukas Wunner 2020-11-05 538 ctrl
= devm_spi_alloc_master(&pdev->dev, sizeof(*aq));
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 539 if
(!ctrl)
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 540
return -ENOMEM;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 541
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 542
ctrl->mode_bits = SPI_RX_DUAL | SPI_RX_QUAD | SPI_TX_DUAL | SPI_TX_QUAD;
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 543
ctrl->setup = atmel_qspi_setup;
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 544
ctrl->bus_num = -1;
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 545
ctrl->mem_ops = &atmel_qspi_mem_ops;
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 546
ctrl->num_chipselect = 1;
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 547
ctrl->dev.of_node = pdev->dev.of_node;
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 548
platform_set_drvdata(pdev, ctrl);
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 549
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 550 aq =
spi_controller_get_devdata(ctrl);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 551
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 552
init_completion(&aq->cmd_completion);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 553
aq->pdev = pdev;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 554
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 555 /*
Map the registers */
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 556 res
= platform_get_resource_byname(pdev, IORESOURCE_MEM, "qspi_base");
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 557
aq->regs = devm_ioremap_resource(&pdev->dev, res);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 558 if
(IS_ERR(aq->regs)) {
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 559
dev_err(&pdev->dev, "missing registers\n");
87559c2497a3deb drivers/spi/atmel-quadspi.c Lukas Wunner 2020-11-05 560
return PTR_ERR(aq->regs);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 561 }
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 562
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 563 /*
Map the AHB memory */
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 564 res
= platform_get_resource_byname(pdev, IORESOURCE_MEM, "qspi_mmap");
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 565
aq->mem = devm_ioremap_resource(&pdev->dev, res);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 566 if
(IS_ERR(aq->mem)) {
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 567
dev_err(&pdev->dev, "missing AHB memory\n");
87559c2497a3deb drivers/spi/atmel-quadspi.c Lukas Wunner 2020-11-05 568
return PTR_ERR(aq->mem);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 569 }
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 570
8e093ea4d359337 drivers/spi/atmel-quadspi.c Tudor Ambarus 2020-02-28 571
aq->mmap_size = resource_size(res);
8e093ea4d359337 drivers/spi/atmel-quadspi.c Tudor Ambarus 2020-02-28 572
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 573 /*
Get the peripheral clock */
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 574
aq->pclk = devm_clk_get(&pdev->dev, "pclk");
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 575 if
(IS_ERR(aq->pclk))
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 576
aq->pclk = devm_clk_get(&pdev->dev, NULL);
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 577
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 578 if
(IS_ERR(aq->pclk)) {
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 579
dev_err(&pdev->dev, "missing peripheral clock\n");
87559c2497a3deb drivers/spi/atmel-quadspi.c Lukas Wunner 2020-11-05 580
return PTR_ERR(aq->pclk);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 581 }
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 582
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 583 /*
Enable the peripheral clock */
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 584 err
= clk_prepare_enable(aq->pclk);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 585 if
(err) {
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 586
dev_err(&pdev->dev, "failed to enable the peripheral clock\n");
87559c2497a3deb drivers/spi/atmel-quadspi.c Lukas Wunner 2020-11-05 587
return err;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 588 }
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 589
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 590
aq->caps = of_device_get_match_data(&pdev->dev);
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 591 if
(!aq->caps) {
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 592
dev_err(&pdev->dev, "Could not retrieve QSPI caps\n");
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 593 err
= -EINVAL;
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 @594
goto exit;
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 595 }
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 596
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 597 if
(aq->caps->has_qspick) {
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 598 /*
Get the QSPI system clock */
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 599
aq->qspick = devm_clk_get(&pdev->dev, "qspick");
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 600 if
(IS_ERR(aq->qspick)) {
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 601
dev_err(&pdev->dev, "missing system clock\n");
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 602
err = PTR_ERR(aq->qspick);
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 603
goto disable_pclk;
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 604 }
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 605
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 606 /*
Enable the QSPI system clock */
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 607 err
= clk_prepare_enable(aq->qspick);
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 608 if
(err) {
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 609
dev_err(&pdev->dev,
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 610
"failed to enable the QSPI system clock\n");
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 611
goto disable_pclk;
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 612 }
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 613 }
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 614
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 615 /*
Request the IRQ */
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 616 irq
= platform_get_irq(pdev, 0);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 617 if
(irq < 0) {
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 618 err
= irq;
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 619
goto disable_qspick;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 620 }
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 621 err
= devm_request_irq(&pdev->dev, irq, atmel_qspi_interrupt,
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 622
0, dev_name(&pdev->dev), aq);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 623 if
(err)
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 624
goto disable_qspick;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 625
5b74e9a306267be drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-06-28 626
atmel_qspi_init(aq);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 627
2d30ac5ed633f5a drivers/mtd/spi-nor/atmel-quadspi.c Piotr Bugalski 2018-11-05 628 err
= spi_register_controller(ctrl);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 629 if
(err)
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 630
goto disable_qspick;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 631
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 632
return 0;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 633
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 634
disable_qspick:
2e5c88887358640 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 635
clk_disable_unprepare(aq->qspick);
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 636
disable_pclk:
bd7905e2fed7047 drivers/spi/atmel-quadspi.c Tudor Ambarus 2019-02-05 637
clk_disable_unprepare(aq->pclk);
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 638
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 639
return err;
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 640 }
161aaab8a067a96 drivers/mtd/spi-nor/atmel-quadspi.c Cyrille Pitchen 2016-06-13 641
:::::: The code at line 594 was first introduced by commit
:::::: 2e5c888873586400e3e9197514995458c7f4c3e0 spi: atmel-quadspi: add support for
sam9x60 qspi controller
:::::: TO: Tudor Ambarus <tudor.ambarus(a)microchip.com>
:::::: CC: Mark Brown <broonie(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org