[tip:WIP.x86/hpet 14/29] arch/x86/kernel/hpet.c:500:6: error: implicit declaration of function 'request_irq'

From: kbuild test robot
Date: Mon Jun 17 2019 - 22:30:46 EST


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

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@xxxxxxxxx 2008-09-05 499
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 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@xxxxxxxxx 2008-09-05 503 return -1;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 504
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 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@xxxxxxxxx 2008-09-05 @507 enable_irq(dev->irq);
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 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@xxxxxxxxx 2008-09-05 511 return 0;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 512 }
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 513
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 514 static void init_one_hpet_msi_clockevent(struct hpet_dev *hdev, int cpu)
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 515 {
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 516 struct clock_event_device *evt = &hdev->evt;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 517
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 518 if (!(hdev->flags & HPET_DEV_VALID))
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 519 return;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 520
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 521 hdev->cpu = cpu;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 522 per_cpu(cpu_hpet_dev, cpu) = hdev;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 523 evt->name = hdev->name;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 524 hpet_setup_irq(hdev);
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 525 evt->irq = hdev->irq;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 526
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 2008-09-05 527 evt->rating = 110;
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 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@xxxxxxxxx 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@xxxxxxxxx 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@xxxxxxxxx 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@xxxxxxxxx 2008-09-05 542 }
26afe5f2 venkatesh.pallipadi@xxxxxxxxx 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@xxxxxxxxx <venkatesh.pallipadi@xxxxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxx>

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

Attachment: .config.gz
Description: application/gzip