tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.x86/hpet head: e68a1d0fce032346dbfeca0140d90da75796bab9 commit: 64cdfa23aeb4a6be1a3c0d84bc3fd269581767e5 [14/29] x86/hpet: Remove not required includes config: i386-randconfig-n004-201924 (attached as .config) compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010 reproduce: git checkout 64cdfa23aeb4a6be1a3c0d84bc3fd269581767e5 # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): arch/x86/kernel/hpet.c: In function 'hpet_setup_irq': >> arch/x86/kernel/hpet.c:500:6: error: implicit declaration of function 'request_irq' [-Werror=implicit-function-declaration] if (request_irq(dev->irq, hpet_interrupt_handler, ^ >> arch/x86/kernel/hpet.c:501:4: error: 'IRQF_TIMER' undeclared (first use in this function) IRQF_TIMER | IRQF_NOBALANCING, ^ arch/x86/kernel/hpet.c:501:4: note: each undeclared identifier is reported only once for each function it appears in >> arch/x86/kernel/hpet.c:501:17: error: 'IRQF_NOBALANCING' undeclared (first use in this function) IRQF_TIMER | IRQF_NOBALANCING, ^ >> arch/x86/kernel/hpet.c:505:2: error: implicit declaration of function 'disable_irq' [-Werror=implicit-function-declaration] disable_irq(dev->irq); ^ >> arch/x86/kernel/hpet.c:506:2: error: implicit declaration of function 'irq_set_affinity' [-Werror=implicit-function-declaration] irq_set_affinity(dev->irq, cpumask_of(dev->cpu)); ^ >> arch/x86/kernel/hpet.c:507:2: error: implicit declaration of function 'enable_irq' [-Werror=implicit-function-declaration] enable_irq(dev->irq); ^ arch/x86/kernel/hpet.c: In function 'hpet_cpuhp_dead': >> arch/x86/kernel/hpet.c:579:2: error: implicit declaration of function 'free_irq' [-Werror=implicit-function-declaration] free_irq(hdev->irq, hdev); ^ cc1: some warnings being treated as errors vim +/request_irq +500 arch/x86/kernel/hpet.c 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 499 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 @500 if (request_irq(dev->irq, hpet_interrupt_handler, d20d2efb Michael Opdenacker 2014-03-04 @501 IRQF_TIMER | IRQF_NOBALANCING, 507fa3a3 Thomas Gleixner 2009-06-14 502 dev->name, dev)) 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 503 return -1; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 504 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 @505 disable_irq(dev->irq); 0de26520 Rusty Russell 2008-12-13 @506 irq_set_affinity(dev->irq, cpumask_of(dev->cpu)); 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 @507 enable_irq(dev->irq); 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 508 35ed6f67 Thomas Gleixner 2019-06-15 509 pr_debug("%s irq %d for MSI\n", dev->name, dev->irq); c81bba49 Yinghai Lu 2008-09-25 510 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 511 return 0; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 512 } 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 513 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 514 static void init_one_hpet_msi_clockevent(struct hpet_dev *hdev, int cpu) 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 515 { 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 516 struct clock_event_device *evt = &hdev->evt; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 517 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 518 if (!(hdev->flags & HPET_DEV_VALID)) 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 519 return; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 520 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 521 hdev->cpu = cpu; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 522 per_cpu(cpu_hpet_dev, cpu) = hdev; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 523 evt->name = hdev->name; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 524 hpet_setup_irq(hdev); 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 525 evt->irq = hdev->irq; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 526 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 527 evt->rating = 110; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 528 evt->features = CLOCK_EVT_FEAT_ONESHOT; c8b5db7d Viresh Kumar 2015-07-16 529 if (hdev->flags & HPET_DEV_PERI_CAP) { 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 530 evt->features |= CLOCK_EVT_FEAT_PERIODIC; c8b5db7d Viresh Kumar 2015-07-16 531 evt->set_state_periodic = hpet_msi_set_periodic; c8b5db7d Viresh Kumar 2015-07-16 532 } 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 533 c8b5db7d Viresh Kumar 2015-07-16 534 evt->set_state_shutdown = hpet_msi_shutdown; c8b5db7d Viresh Kumar 2015-07-16 535 evt->set_state_oneshot = hpet_msi_set_oneshot; c8b5db7d Viresh Kumar 2015-07-16 536 evt->tick_resume = hpet_msi_resume; 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 537 evt->set_next_event = hpet_msi_next_event; 320ab2b0 Rusty Russell 2008-12-13 538 evt->cpumask = cpumask_of(hdev->cpu); ab0e08f1 Thomas Gleixner 2011-05-18 539 ab0e08f1 Thomas Gleixner 2011-05-18 540 clockevents_config_and_register(evt, hpet_freq, HPET_MIN_PROG_DELTA, ab0e08f1 Thomas Gleixner 2011-05-18 541 0x7FFFFFFF); 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 542 } 26afe5f2 venkatesh.pallipadi@intel.com 2008-09-05 543 b6968fc8 Thomas Gleixner 2019-06-15 544 static struct hpet_dev *hpet_get_unused_timer(void) b6968fc8 Thomas Gleixner 2019-06-15 545 { b6968fc8 Thomas Gleixner 2019-06-15 546 int i; b6968fc8 Thomas Gleixner 2019-06-15 547 b6968fc8 Thomas Gleixner 2019-06-15 548 if (!hpet_devs) b6968fc8 Thomas Gleixner 2019-06-15 549 return NULL; b6968fc8 Thomas Gleixner 2019-06-15 550 b6968fc8 Thomas Gleixner 2019-06-15 551 for (i = 0; i < hpet_num_timers; i++) { b6968fc8 Thomas Gleixner 2019-06-15 552 struct hpet_dev *hdev = &hpet_devs[i]; b6968fc8 Thomas Gleixner 2019-06-15 553 b6968fc8 Thomas Gleixner 2019-06-15 554 if (!(hdev->flags & HPET_DEV_VALID)) b6968fc8 Thomas Gleixner 2019-06-15 555 continue; b6968fc8 Thomas Gleixner 2019-06-15 556 if (test_and_set_bit(HPET_DEV_USED_BIT, b6968fc8 Thomas Gleixner 2019-06-15 557 (unsigned long *)&hdev->flags)) b6968fc8 Thomas Gleixner 2019-06-15 558 continue; b6968fc8 Thomas Gleixner 2019-06-15 559 return hdev; b6968fc8 Thomas Gleixner 2019-06-15 560 } b6968fc8 Thomas Gleixner 2019-06-15 561 return NULL; b6968fc8 Thomas Gleixner 2019-06-15 562 } b6968fc8 Thomas Gleixner 2019-06-15 563 b6968fc8 Thomas Gleixner 2019-06-15 564 static int hpet_cpuhp_online(unsigned int cpu) b6968fc8 Thomas Gleixner 2019-06-15 565 { b6968fc8 Thomas Gleixner 2019-06-15 566 struct hpet_dev *hdev = hpet_get_unused_timer(); b6968fc8 Thomas Gleixner 2019-06-15 567 b6968fc8 Thomas Gleixner 2019-06-15 568 if (hdev) b6968fc8 Thomas Gleixner 2019-06-15 569 init_one_hpet_msi_clockevent(hdev, cpu); b6968fc8 Thomas Gleixner 2019-06-15 570 return 0; b6968fc8 Thomas Gleixner 2019-06-15 571 } b6968fc8 Thomas Gleixner 2019-06-15 572 b6968fc8 Thomas Gleixner 2019-06-15 573 static int hpet_cpuhp_dead(unsigned int cpu) b6968fc8 Thomas Gleixner 2019-06-15 574 { b6968fc8 Thomas Gleixner 2019-06-15 575 struct hpet_dev *hdev = per_cpu(cpu_hpet_dev, cpu); b6968fc8 Thomas Gleixner 2019-06-15 576 b6968fc8 Thomas Gleixner 2019-06-15 577 if (!hdev) b6968fc8 Thomas Gleixner 2019-06-15 578 return 0; b6968fc8 Thomas Gleixner 2019-06-15 @579 free_irq(hdev->irq, hdev); b6968fc8 Thomas Gleixner 2019-06-15 580 hdev->flags &= ~HPET_DEV_USED; b6968fc8 Thomas Gleixner 2019-06-15 581 per_cpu(cpu_hpet_dev, cpu) = NULL; b6968fc8 Thomas Gleixner 2019-06-15 582 return 0; b6968fc8 Thomas Gleixner 2019-06-15 583 } b6968fc8 Thomas Gleixner 2019-06-15 584 :::::: The code at line 500 was first introduced by commit :::::: 26afe5f2fbf06ea0765aaa316640c4dd472310c0 x86: HPET_MSI Initialise per-cpu HPET timers :::::: TO: venkatesh.pallipadi@intel.com :::::: CC: Ingo Molnar --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation