[PATCH v2 9/9] powerpc/eeh: Add eeh_state_active() helper

kbuild test robot lkp at intel.com
Tue Mar 20 15:05:42 AEDT 2018


Hi Sam,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on v4.16-rc4]
[also build test ERROR on next-20180319]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Sam-Bobroff/EEH-refactoring-1/20180320-024729
config: powerpc-ppc64_defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

   In file included from include/linux/kernel.h:14:0,
                    from include/linux/delay.h:22,
                    from arch/powerpc/kernel/eeh_driver.c:25:
   arch/powerpc/kernel/eeh_driver.c: In function 'eeh_reset_device':
>> arch/powerpc/kernel/eeh_driver.c:692:5: error: 'eeh_aware_driver' undeclared (first use in this function); did you mean 'eeh_state_active'?
       (eeh_aware_driver ? "partial" : "complete"));
        ^
   include/linux/printk.h:308:34: note: in definition of macro 'pr_info'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
                                     ^~~~~~~~~~~
   arch/powerpc/kernel/eeh_driver.c:692:5: note: each undeclared identifier is reported only once for each function it appears in
       (eeh_aware_driver ? "partial" : "complete"));
        ^
   include/linux/printk.h:308:34: note: in definition of macro 'pr_info'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
                                     ^~~~~~~~~~~

vim +692 arch/powerpc/kernel/eeh_driver.c

5cfb20b96 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-09-30  619  
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  620  /**
29f8bf1b7 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-02-27  621   * eeh_reset_device - Perform actual reset of a pci slot
a10e51924 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  622   * @driver_eeh_aware: Does the device's driver provide EEH support?
9b3c76f08 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-07  623   * @pe: EEH PE
29f8bf1b7 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-02-27  624   * @bus: PCI bus corresponding to the isolcated slot
a10e51924 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  625   * @rmv_data: Optional, list to record removed devices
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  626   *
29f8bf1b7 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-02-27  627   * This routine must be called to do reset on the indicated PE.
29f8bf1b7 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-02-27  628   * During the reset, udev might be invoked because those affected
29f8bf1b7 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-02-27  629   * PCI devices will be removed and then added.
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  630   */
67086e32b arch/powerpc/kernel/eeh_driver.c            Wei Yang          2016-03-04  631  static int eeh_reset_device(struct eeh_pe *pe, struct pci_bus *bus,
a10e51924 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  632  			    struct eeh_rmv_data *rmv_data,
a10e51924 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  633  			    bool driver_eeh_aware)
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  634  {
edfd17ff3 arch/powerpc/kernel/eeh_driver.c            Arnd Bergmann     2017-11-04  635  	time64_t tstamp;
67086e32b arch/powerpc/kernel/eeh_driver.c            Wei Yang          2016-03-04  636  	int cnt, rc;
67086e32b arch/powerpc/kernel/eeh_driver.c            Wei Yang          2016-03-04  637  	struct eeh_dev *edev;
424054566 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2006-04-28  638  
424054566 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2006-04-28  639  	/* pcibios will clear the counter; save the value */
9b3c76f08 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-07  640  	cnt = pe->freeze_count;
5a71978e4 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-06-20  641  	tstamp = pe->tstamp;
424054566 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2006-04-28  642  
20ee6a970 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-11  643  	/*
20ee6a970 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-11  644  	 * We don't remove the corresponding PE instances because
20ee6a970 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-11  645  	 * we need the information afterwords. The attached EEH
20ee6a970 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-11  646  	 * devices are expected to be attached soon when calling
bd251b893 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2016-05-03  647  	 * into pci_hp_add_devices().
20ee6a970 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-11  648  	 */
807a827d4 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  649  	eeh_pe_state_mark(pe, EEH_PE_KEEP);
e723e4b42 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  650  	if (driver_eeh_aware || (pe->type & EEH_PE_VF)) {
e723e4b42 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  651  		eeh_pe_dev_traverse(pe, eeh_rmv_device, rmv_data);
67086e32b arch/powerpc/kernel/eeh_driver.c            Wei Yang          2016-03-04  652  	} else {
1c2042c83 arch/powerpc/kernel/eeh_driver.c            Rafael J. Wysocki 2014-01-15  653  		pci_lock_rescan_remove();
bd251b893 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2016-05-03  654  		pci_hp_remove_devices(bus);
1c2042c83 arch/powerpc/kernel/eeh_driver.c            Rafael J. Wysocki 2014-01-15  655  		pci_unlock_rescan_remove();
67086e32b arch/powerpc/kernel/eeh_driver.c            Wei Yang          2016-03-04  656  	}
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  657  
d0914f503 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  658  	/*
d0914f503 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  659  	 * Reset the pci controller. (Asserts RST#; resets config space).
b6495c0c8 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  660  	 * Reconfigure bridges and devices. Don't try to bring the system
29f8bf1b7 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-02-27  661  	 * up if the reset failed for some reason.
d0914f503 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  662  	 *
d0914f503 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  663  	 * During the reset, it's very dangerous to have uncontrolled PCI
d0914f503 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  664  	 * config accesses. So we prefer to block them. However, controlled
d0914f503 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  665  	 * PCI config accesses initiated from EEH itself are allowed.
29f8bf1b7 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-02-27  666  	 */
6654c9368 arch/powerpc/kernel/eeh_driver.c            Russell Currey    2016-11-17  667  	rc = eeh_pe_reset_full(pe);
28bf36f92 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-11-14  668  	if (rc)
b6495c0c8 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  669  		return rc;
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  670  
1c2042c83 arch/powerpc/kernel/eeh_driver.c            Rafael J. Wysocki 2014-01-15  671  	pci_lock_rescan_remove();
1c2042c83 arch/powerpc/kernel/eeh_driver.c            Rafael J. Wysocki 2014-01-15  672  
9b3c76f08 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-07  673  	/* Restore PE */
9b3c76f08 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-07  674  	eeh_ops->configure_bridge(pe);
9b3c76f08 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-07  675  	eeh_pe_restore_bars(pe);
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  676  
dc9c41bd9 arch/powerpc/kernel/eeh_driver.c            Andrew Donnellan  2015-12-08  677  	/* Clear frozen state */
5cfb20b96 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-09-30  678  	rc = eeh_clear_pe_frozen_state(pe, false);
409bf7f8a arch/powerpc/kernel/eeh_driver.c            Andrew Donnellan  2016-12-01  679  	if (rc) {
409bf7f8a arch/powerpc/kernel/eeh_driver.c            Andrew Donnellan  2016-12-01  680  		pci_unlock_rescan_remove();
789547006 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  681  		return rc;
409bf7f8a arch/powerpc/kernel/eeh_driver.c            Andrew Donnellan  2016-12-01  682  	}
789547006 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2014-04-24  683  
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  684  	/* Give the system 5 seconds to finish running the user-space
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  685  	 * hotplug shutdown scripts, e.g. ifdown for ethernet.  Yes,
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  686  	 * this is a hack, but if we don't do this, and try to bring
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  687  	 * the device up before the scripts have taken it down,
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  688  	 * potentially weird things happen.
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  689  	 */
e723e4b42 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  690  	if (!driver_eeh_aware || rmv_data->removed) {
e723e4b42 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  691  		pr_info("EEH: Sleep 5s ahead of %s hotplug\n",
e723e4b42 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19 @692  			(eeh_aware_driver ? "partial" : "complete"));
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  693  		ssleep(5);
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  694  
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  695  		/*
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  696  		 * The EEH device is still connected with its parent
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  697  		 * PE. We should disconnect it so the binding can be
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  698  		 * rebuilt when adding PCI devices.
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  699  		 */
67086e32b arch/powerpc/kernel/eeh_driver.c            Wei Yang          2016-03-04  700  		edev = list_first_entry(&pe->edevs, struct eeh_dev, list);
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  701  		eeh_pe_traverse(pe, eeh_pe_detach_dev, NULL);
a3aa256b7 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2016-06-17  702  		if (pe->type & EEH_PE_VF) {
67086e32b arch/powerpc/kernel/eeh_driver.c            Wei Yang          2016-03-04  703  			eeh_add_virt_device(edev, NULL);
a3aa256b7 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2016-06-17  704  		} else {
e723e4b42 arch/powerpc/kernel/eeh_driver.c            Sam Bobroff       2018-03-19  705  			if (!eeh_aware_driver)
a3aa256b7 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2016-06-17  706  				eeh_pe_state_clear(pe, EEH_PE_PRI_BUS);
bd251b893 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2016-05-03  707  			pci_hp_add_devices(bus);
a3aa256b7 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2016-06-17  708  		}
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  709  	}
f5c57710d arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-07-24  710  	eeh_pe_state_clear(pe, EEH_PE_KEEP);
5a71978e4 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-06-20  711  
5a71978e4 arch/powerpc/kernel/eeh_driver.c            Gavin Shan        2013-06-20  712  	pe->tstamp = tstamp;
9b3c76f08 arch/powerpc/platforms/pseries/eeh_driver.c Gavin Shan        2012-09-07  713  	pe->freeze_count = cnt;
b6495c0c8 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  714  
1c2042c83 arch/powerpc/kernel/eeh_driver.c            Rafael J. Wysocki 2014-01-15  715  	pci_unlock_rescan_remove();
b6495c0c8 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  716  	return 0;
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  717  }
77bd74156 arch/powerpc/platforms/pseries/eeh_driver.c Linas Vepstas     2005-11-03  718  

:::::: The code at line 692 was first introduced by commit
:::::: e723e4b4269eefe9c70fbb6c378a26ab202662e2 powerpc/eeh: Factor out common code eeh_reset_device()

:::::: TO: Sam Bobroff <sam.bobroff at au1.ibm.com>
:::::: CC: 0day robot <fengguang.wu at intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 24150 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20180320/53b0b1e8/attachment-0001.gz>


More information about the Linuxppc-dev mailing list