Linux ACPI
 help / color / mirror / Atom feed
From: kbuild test robot <lkp-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
To: Dan Williams <dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	kbuild-all-JC7UmRfGjtg@public.gmane.org,
	linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org
Subject: Re: [PATCH] acpi, nfit: skip ARS on machine-check-recovery capable platforms
Date: Wed, 8 Feb 2017 20:11:57 +0800	[thread overview]
Message-ID: <201702082041.zYXlrFgN%fengguang.wu@intel.com> (raw)
In-Reply-To: <148651103020.2605.2544850985469410207.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

Hi Dan,

[auto build test ERROR on pm/linux-next]
[also build test ERROR on v4.10-rc7 next-20170207]
[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/Dan-Williams/acpi-nfit-skip-ARS-on-machine-check-recovery-capable-platforms/20170208-081649
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: i386-randconfig-x0-02081903 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

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

   In file included from arch/x86/include/asm/current.h:4:0,
                    from include/linux/mutex.h:13,
                    from include/linux/notifier.h:13,
                    from drivers/acpi/nfit/mce.c:15:
   drivers/acpi/nfit/mce.c: In function 'is_ars_required':
>> drivers/acpi/nfit/mce.c:97:37: error: 'mcsafe_key' undeclared (first use in this function)
            if (static_branch_unlikely(&mcsafe_key))
                                        ^
   include/linux/compiler.h:168:42: note: in definition of macro 'unlikely'
    # define unlikely(x) __builtin_expect(!!(x), 0)
                                             ^
   include/linux/jump_label.h:387:44: note: in expansion of macro 'static_key_enabled'
    #define static_branch_unlikely(x) unlikely(static_key_enabled(&(x)->key))
                                               ^~~~~~~~~~~~~~~~~~
>> drivers/acpi/nfit/mce.c:97:13: note: in expansion of macro 'static_branch_unlikely'
            if (static_branch_unlikely(&mcsafe_key))
                ^~~~~~~~~~~~~~~~~~~~~~
   drivers/acpi/nfit/mce.c:97:37: note: each undeclared identifier is reported only once for each function it appears in
            if (static_branch_unlikely(&mcsafe_key))
                                        ^
   include/linux/compiler.h:168:42: note: in definition of macro 'unlikely'
    # define unlikely(x) __builtin_expect(!!(x), 0)
                                             ^
   include/linux/jump_label.h:387:44: note: in expansion of macro 'static_key_enabled'
    #define static_branch_unlikely(x) unlikely(static_key_enabled(&(x)->key))
                                               ^~~~~~~~~~~~~~~~~~
>> drivers/acpi/nfit/mce.c:97:13: note: in expansion of macro 'static_branch_unlikely'
            if (static_branch_unlikely(&mcsafe_key))
                ^~~~~~~~~~~~~~~~~~~~~~

vim +/mcsafe_key +97 drivers/acpi/nfit/mce.c

     9	 *
    10	 * This program is distributed in the hope that it will be useful, but
    11	 * WITHOUT ANY WARRANTY; without even the implied warranty of
    12	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13	 * General Public License for more details.
    14	 */
  > 15	#include <linux/notifier.h>
    16	#include <linux/acpi.h>
    17	#include <linux/nd.h>
    18	#include <asm/mce.h>
    19	#include "nfit.h"
    20	
    21	static int nfit_handle_mce(struct notifier_block *nb, unsigned long val,
    22				void *data)
    23	{
    24		struct mce *mce = (struct mce *)data;
    25		struct acpi_nfit_desc *acpi_desc;
    26		struct nfit_spa *nfit_spa;
    27	
    28		/* We only care about memory errors */
    29		if (!(mce->status & MCACOD))
    30			return NOTIFY_DONE;
    31	
    32		/*
    33		 * mce->addr contains the physical addr accessed that caused the
    34		 * machine check. We need to walk through the list of NFITs, and see
    35		 * if any of them matches that address, and only then start a scrub.
    36		 */
    37		mutex_lock(&acpi_desc_lock);
    38		list_for_each_entry(acpi_desc, &acpi_descs, list) {
    39			struct device *dev = acpi_desc->dev;
    40			int found_match = 0;
    41	
    42			mutex_lock(&acpi_desc->init_mutex);
    43			list_for_each_entry(nfit_spa, &acpi_desc->spas, list) {
    44				struct acpi_nfit_system_address *spa = nfit_spa->spa;
    45	
    46				if (nfit_spa_type(spa) != NFIT_SPA_PM)
    47					continue;
    48				/* find the spa that covers the mce addr */
    49				if (spa->address > mce->addr)
    50					continue;
    51				if ((spa->address + spa->length - 1) < mce->addr)
    52					continue;
    53				found_match = 1;
    54				dev_dbg(dev, "%s: addr in SPA %d (0x%llx, 0x%llx)\n",
    55					__func__, spa->range_index, spa->address,
    56					spa->length);
    57				/*
    58				 * We can break at the first match because we're going
    59				 * to rescan all the SPA ranges. There shouldn't be any
    60				 * aliasing anyway.
    61				 */
    62				break;
    63			}
    64			mutex_unlock(&acpi_desc->init_mutex);
    65	
    66			if (!found_match)
    67				continue;
    68	
    69			/* If this fails due to an -ENOMEM, there is little we can do */
    70			nvdimm_bus_add_poison(acpi_desc->nvdimm_bus,
    71					ALIGN(mce->addr, L1_CACHE_BYTES),
    72					L1_CACHE_BYTES);
    73			nvdimm_region_notify(nfit_spa->nd_region,
    74					NVDIMM_REVALIDATE_POISON);
    75	
    76			if (acpi_desc->scrub_mode == HW_ERROR_SCRUB_ON) {
    77				/*
    78				 * We can ignore an -EBUSY here because if an ARS is
    79				 * already in progress, just let that be the last
    80				 * authoritative one
    81				 */
    82				acpi_nfit_ars_rescan(acpi_desc);
    83			}
    84			break;
    85		}
    86	
    87		mutex_unlock(&acpi_desc_lock);
    88		return NOTIFY_DONE;
    89	}
    90	
    91	static struct notifier_block nfit_mce_dec = {
    92		.notifier_call	= nfit_handle_mce,
    93	};
    94	
    95	bool is_ars_required(void)
    96	{
  > 97	        if (static_branch_unlikely(&mcsafe_key))
    98	                return false;
    99		return true;
   100	}

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

  parent reply	other threads:[~2017-02-08 12:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-07 23:43 [PATCH] acpi, nfit: skip ARS on machine-check-recovery capable platforms Dan Williams
     [not found] ` <148651103020.2605.2544850985469410207.stgit-p8uTFz9XbKj2zm6wflaqv1nYeNYlB/vhral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-02-08 12:11   ` kbuild test robot [this message]
2017-02-08 15:10   ` Jeff Moyer
     [not found]     ` <x4937fopvla.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2017-02-08 17:42       ` Dan Williams
2017-02-08 23:01         ` Dan Williams
     [not found]           ` <CAPcyv4hqrkro0X5vQ+21zU7R5iGirb1MU8J=nRRKvqDkDoKaxQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-02-08 23:08             ` Jeff Moyer
2017-02-09 17:20         ` Luck, Tony

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=201702082041.zYXlrFgN%fengguang.wu@intel.com \
    --to=lkp-ral2jqcrhueavxtiumwx3w@public.gmane.org \
    --cc=dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=kbuild-all-JC7UmRfGjtg@public.gmane.org \
    --cc=linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox