All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Jordan_Hargrave@Dell.com
Cc: kbuild-all@01.org, jharg93@gmail.com, jdelvare@suse.de,
	Jordan_Hargrave@Dell.com, tglx@linutronix.de,
	bhelgaas@google.com, mingo@redhat.com, hpa@zytor.com,
	linux-kernel@vger.kernel.org, linxu-pci@vger.kernel.org
Subject: Re: [PATCH] Create pci slot files for SMBIOS Type 9 entries
Date: Wed, 10 Feb 2016 07:23:29 +0800	[thread overview]
Message-ID: <201602100702.B7TKEc03%fengguang.wu@intel.com> (raw)
In-Reply-To: <1455058433803.44638@Dell.com>

[-- Attachment #1: Type: text/plain, Size: 7729 bytes --]

Hi,

[auto build test ERROR on pci/next]
[also build test ERROR on v4.5-rc3 next-20160209]
[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/Jordan_Hargrave-Dell-com/Create-pci-slot-files-for-SMBIOS-Type-9-entries/20160210-070842
base:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
config: x86_64-randconfig-x013-201606 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

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

   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/uapi/linux/capability.h:16,
                    from include/linux/capability.h:15,
                    from include/linux/sched.h:15,
                    from arch/x86/pci/common.c:7:
   arch/x86/pci/common.c: In function 'pcibios_add_bus':
>> arch/x86/pci/common.c:182:12: error: dereferencing pointer to incomplete type 'struct dmi_dev_onboard'
      if (dslot->segment == pci_domain_nr(bus) &&
               ^
   include/linux/compiler.h:147:28: note: in definition of macro '__trace_if'
     if (__builtin_constant_p((cond)) ? !!(cond) :   \
                               ^
>> arch/x86/pci/common.c:182:3: note: in expansion of macro 'if'
      if (dslot->segment == pci_domain_nr(bus) &&
      ^

vim +182 arch/x86/pci/common.c

     1	/*
     2	 *	Low-Level PCI Support for PC
     3	 *
     4	 *	(c) 1999--2000 Martin Mares <mj@ucw.cz>
     5	 */
     6	
   > 7	#include <linux/sched.h>
     8	#include <linux/pci.h>
     9	#include <linux/pci-acpi.h>
    10	#include <linux/ioport.h>
    11	#include <linux/init.h>
    12	#include <linux/dmi.h>
    13	#include <linux/slab.h>
    14	
    15	#include <asm/acpi.h>
    16	#include <asm/segment.h>
    17	#include <asm/io.h>
    18	#include <asm/smp.h>
    19	#include <asm/pci_x86.h>
    20	#include <asm/setup.h>
    21	
    22	unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 |
    23					PCI_PROBE_MMCONF;
    24	
    25	unsigned int pci_early_dump_regs;
    26	static int pci_bf_sort;
    27	static int smbios_type_b1_flag;
    28	int pci_routeirq;
    29	int noioapicquirk;
    30	#ifdef CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
    31	int noioapicreroute = 0;
    32	#else
    33	int noioapicreroute = 1;
    34	#endif
    35	int pcibios_last_bus = -1;
    36	unsigned long pirq_table_addr;
    37	const struct pci_raw_ops *__read_mostly raw_pci_ops;
    38	const struct pci_raw_ops *__read_mostly raw_pci_ext_ops;
    39	
    40	int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn,
    41							int reg, int len, u32 *val)
    42	{
    43		if (domain == 0 && reg < 256 && raw_pci_ops)
    44			return raw_pci_ops->read(domain, bus, devfn, reg, len, val);
    45		if (raw_pci_ext_ops)
    46			return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val);
    47		return -EINVAL;
    48	}
    49	
    50	int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn,
    51							int reg, int len, u32 val)
    52	{
    53		if (domain == 0 && reg < 256 && raw_pci_ops)
    54			return raw_pci_ops->write(domain, bus, devfn, reg, len, val);
    55		if (raw_pci_ext_ops)
    56			return raw_pci_ext_ops->write(domain, bus, devfn, reg, len, val);
    57		return -EINVAL;
    58	}
    59	
    60	static int pci_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *value)
    61	{
    62		return raw_pci_read(pci_domain_nr(bus), bus->number,
    63					 devfn, where, size, value);
    64	}
    65	
    66	static int pci_write(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 value)
    67	{
    68		return raw_pci_write(pci_domain_nr(bus), bus->number,
    69					  devfn, where, size, value);
    70	}
    71	
    72	struct pci_ops pci_root_ops = {
    73		.read = pci_read,
    74		.write = pci_write,
    75	};
    76	
    77	/*
    78	 * This interrupt-safe spinlock protects all accesses to PCI
    79	 * configuration space.
    80	 */
    81	DEFINE_RAW_SPINLOCK(pci_config_lock);
    82	
    83	static int __init can_skip_ioresource_align(const struct dmi_system_id *d)
    84	{
    85		pci_probe |= PCI_CAN_SKIP_ISA_ALIGN;
    86		printk(KERN_INFO "PCI: %s detected, can skip ISA alignment\n", d->ident);
    87		return 0;
    88	}
    89	
    90	static const struct dmi_system_id can_skip_pciprobe_dmi_table[] __initconst = {
    91	/*
    92	 * Systems where PCI IO resource ISA alignment can be skipped
    93	 * when the ISA enable bit in the bridge control is not set
    94	 */
    95		{
    96			.callback = can_skip_ioresource_align,
    97			.ident = "IBM System x3800",
    98			.matches = {
    99				DMI_MATCH(DMI_SYS_VENDOR, "IBM"),
   100				DMI_MATCH(DMI_PRODUCT_NAME, "x3800"),
   101			},
   102		},
   103		{
   104			.callback = can_skip_ioresource_align,
   105			.ident = "IBM System x3850",
   106			.matches = {
   107				DMI_MATCH(DMI_SYS_VENDOR, "IBM"),
   108				DMI_MATCH(DMI_PRODUCT_NAME, "x3850"),
   109			},
   110		},
   111		{
   112			.callback = can_skip_ioresource_align,
   113			.ident = "IBM System x3950",
   114			.matches = {
   115				DMI_MATCH(DMI_SYS_VENDOR, "IBM"),
   116				DMI_MATCH(DMI_PRODUCT_NAME, "x3950"),
   117			},
   118		},
   119		{}
   120	};
   121	
   122	void __init dmi_check_skip_isa_align(void)
   123	{
   124		dmi_check_system(can_skip_pciprobe_dmi_table);
   125	}
   126	
   127	static void pcibios_fixup_device_resources(struct pci_dev *dev)
   128	{
   129		struct resource *rom_r = &dev->resource[PCI_ROM_RESOURCE];
   130		struct resource *bar_r;
   131		int bar;
   132	
   133		if (pci_probe & PCI_NOASSIGN_BARS) {
   134			/*
   135			* If the BIOS did not assign the BAR, zero out the
   136			* resource so the kernel doesn't attmept to assign
   137			* it later on in pci_assign_unassigned_resources
   138			*/
   139			for (bar = 0; bar <= PCI_STD_RESOURCE_END; bar++) {
   140				bar_r = &dev->resource[bar];
   141				if (bar_r->start == 0 && bar_r->end != 0) {
   142					bar_r->flags = 0;
   143					bar_r->end = 0;
   144				}
   145			}
   146		}
   147	
   148		if (pci_probe & PCI_NOASSIGN_ROMS) {
   149			if (rom_r->parent)
   150				return;
   151			if (rom_r->start) {
   152				/* we deal with BIOS assigned ROM later */
   153				return;
   154			}
   155			rom_r->start = rom_r->end = rom_r->flags = 0;
   156		}
   157	}
   158	
   159	/*
   160	 *  Called after each bus is probed, but before its children
   161	 *  are examined.
   162	 */
   163	
   164	void pcibios_fixup_bus(struct pci_bus *b)
   165	{
   166		struct pci_dev *dev;
   167	
   168		pci_read_bridge_bases(b);
   169		list_for_each_entry(dev, &b->devices, bus_list)
   170			pcibios_fixup_device_resources(dev);
   171	}
   172	
   173	void pcibios_add_bus(struct pci_bus *bus)
   174	{
   175		const struct dmi_device *dmi;
   176		struct dmi_dev_onboard *dslot;
   177	
   178		dmi = NULL;
   179		while ((dmi = dmi_find_device(DMI_DEV_TYPE_DEV_SLOT,
   180					      NULL, dmi)) != NULL) {
   181			dslot = dmi->device_data;
 > 182			if (dslot->segment == pci_domain_nr(bus) &&
   183			    dslot->bus == bus->number) {
   184				dev_info(&bus->dev, "Found SMBIOS Slot %s\n",
   185					 dslot->dev.name);

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

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 22482 bytes --]

  reply	other threads:[~2016-02-09 23:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-28  2:45 [PATCHv3] Save SMBIOS Type 9 System Slots during DMI Scan Jordan Hargrave
2015-11-29 14:25 ` Jean Delvare
2016-02-09 22:56 ` [PATCH] Create pci slot files for SMBIOS Type 9 entries Jordan_Hargrave
2016-02-09 23:23   ` kbuild test robot [this message]
2016-02-10 14:50   ` Jordan_Hargrave

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201602100702.B7TKEc03%fengguang.wu@intel.com \
    --to=lkp@intel.com \
    --cc=Jordan_Hargrave@Dell.com \
    --cc=bhelgaas@google.com \
    --cc=hpa@zytor.com \
    --cc=jdelvare@suse.de \
    --cc=jharg93@gmail.com \
    --cc=kbuild-all@01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linxu-pci@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.