Re: [PATCH v5] x86/PCI: Recognize that Interrupt Line 255 means "not connected"

From: kbuild test robot
Date: Sun Feb 14 2016 - 22:50:16 EST


Hi Chen,

[auto build test ERROR on pm/linux-next]
[also build test ERROR on v4.5-rc4 next-20160212]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url: https://github.com/0day-ci/linux/commits/Chen-Fan/x86-PCI-Recognize-that-Interrupt-Line-255-means-not-connected/20160215-113403
base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: x86_64-randconfig-x004-201607 (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All error/warnings (new ones prefixed by >>):

drivers/acpi/pci_irq.c: In function 'acpi_pci_irq_valid':
>> drivers/acpi/pci_irq.c:401:14: error: 'pin' undeclared (first use in this function)
pin_name(pin));
^
drivers/acpi/pci_irq.c:401:14: note: each undeclared identifier is reported only once for each function it appears in
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/dmi.h:4,
from drivers/acpi/pci_irq.c:26:
drivers/acpi/pci_irq.c: In function 'acpi_pci_irq_enable':
>> drivers/acpi/pci_irq.c:457:8: error: too many arguments to function 'acpi_pci_irq_valid'
if (!acpi_pci_irq_valid(dev, pin))
^
include/linux/compiler.h:147:28: note: in definition of macro '__trace_if'
if (__builtin_constant_p((cond)) ? !!(cond) : \
^
>> drivers/acpi/pci_irq.c:457:3: note: in expansion of macro 'if'
if (!acpi_pci_irq_valid(dev, pin))
^
drivers/acpi/pci_irq.c:391:20: note: declared here
static inline bool acpi_pci_irq_valid(struct pci_dev *dev)
^
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/dmi.h:4,
from drivers/acpi/pci_irq.c:26:
>> drivers/acpi/pci_irq.c:457:8: error: too many arguments to function 'acpi_pci_irq_valid'
if (!acpi_pci_irq_valid(dev, pin))
^
include/linux/compiler.h:147:40: note: in definition of macro '__trace_if'
if (__builtin_constant_p((cond)) ? !!(cond) : \
^
>> drivers/acpi/pci_irq.c:457:3: note: in expansion of macro 'if'
if (!acpi_pci_irq_valid(dev, pin))
^
drivers/acpi/pci_irq.c:391:20: note: declared here
static inline bool acpi_pci_irq_valid(struct pci_dev *dev)
^
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/list.h:4,
from include/linux/dmi.h:4,
from drivers/acpi/pci_irq.c:26:
>> drivers/acpi/pci_irq.c:457:8: error: too many arguments to function 'acpi_pci_irq_valid'
if (!acpi_pci_irq_valid(dev, pin))
^
include/linux/compiler.h:158:16: note: in definition of macro '__trace_if'
______r = !!(cond); \
^
>> drivers/acpi/pci_irq.c:457:3: note: in expansion of macro 'if'
if (!acpi_pci_irq_valid(dev, pin))
^
drivers/acpi/pci_irq.c:391:20: note: declared here
static inline bool acpi_pci_irq_valid(struct pci_dev *dev)
^

vim +/pin +401 drivers/acpi/pci_irq.c

395 * On x86 irq line 0xff means "unknown" or "no connection"
396 * (PCI 3.0, Section 6.2.4, footnote on page 223).
397 */
398 if (dev->irq == 0xff) {
399 dev->irq = IRQ_NOTCONNECTED;
400 dev_warn(&dev->dev, "PCI INT %c: not connected\n",
> 401 pin_name(pin));
402 return false;
403 }
404 #endif
405 return true;
406 }
407
408 int acpi_pci_irq_enable(struct pci_dev *dev)
409 {
410 struct acpi_prt_entry *entry;
411 int gsi;
412 u8 pin;
413 int triggering = ACPI_LEVEL_SENSITIVE;
414 int polarity = ACPI_ACTIVE_LOW;
415 char *link = NULL;
416 char link_desc[16];
417 int rc;
418
419 pin = dev->pin;
420 if (!pin) {
421 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
422 "No interrupt pin configured for device %s\n",
423 pci_name(dev)));
424 return 0;
425 }
426
427 if (pci_has_managed_irq(dev))
428 return 0;
429
430 entry = acpi_pci_irq_lookup(dev, pin);
431 if (!entry) {
432 /*
433 * IDE legacy mode controller IRQs are magic. Why do compat
434 * extensions always make such a nasty mess.
435 */
436 if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE &&
437 (dev->class & 0x05) == 0)
438 return 0;
439 }
440
441 if (entry) {
442 if (entry->link)
443 gsi = acpi_pci_link_allocate_irq(entry->link,
444 entry->index,
445 &triggering, &polarity,
446 &link);
447 else
448 gsi = entry->index;
449 } else
450 gsi = -1;
451
452 if (gsi < 0) {
453 /*
454 * No IRQ known to the ACPI subsystem - maybe the BIOS /
455 * driver reported one, then use it. Exit in any case.
456 */
> 457 if (!acpi_pci_irq_valid(dev, pin))
458 return 0;
459
460 if (acpi_isa_register_gsi(dev))

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

Attachment: .config.gz
Description: Binary data