linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: linuxppc-dev@lists.ozlabs.org, kbuild-all@01.org,
	Nicholas Piggin <npiggin@gmail.com>
Subject: Re: [PATCH v2 09/44] powerpc/64s/pseries: machine check convert to use common event code
Date: Thu, 8 Aug 2019 13:50:36 +0800	[thread overview]
Message-ID: <201908081307.B0qGBYJE%lkp@intel.com> (raw)
In-Reply-To: <20190802105709.27696-10-npiggin@gmail.com>

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

Hi Nicholas,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc3 next-20190807]
[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/Nicholas-Piggin/powerpc-64s-exception-cleanup-and-macrofiy/20190802-222211
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 7.4.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
        GCC_VERSION=7.4.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   arch/powerpc/platforms/pseries/ras.c: In function 'mce_handle_error':
>> arch/powerpc/platforms/pseries/ras.c:563:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
       mce_err.u.ue_error_type = MCE_UE_ERROR_IFETCH;
       ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/platforms/pseries/ras.c:564:3: note: here
      case MC_ERROR_UE_PAGE_TABLE_WALK_IFETCH:
      ^~~~
   arch/powerpc/platforms/pseries/ras.c:565:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
       mce_err.u.ue_error_type = MCE_UE_ERROR_PAGE_TABLE_WALK_IFETCH;
       ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/platforms/pseries/ras.c:566:3: note: here
      case MC_ERROR_UE_LOAD_STORE:
      ^~~~
   arch/powerpc/platforms/pseries/ras.c:567:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
       mce_err.u.ue_error_type = MCE_UE_ERROR_LOAD_STORE;
       ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/platforms/pseries/ras.c:568:3: note: here
      case MC_ERROR_UE_PAGE_TABLE_WALK_LOAD_STORE:
      ^~~~
   arch/powerpc/platforms/pseries/ras.c:569:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
       mce_err.u.ue_error_type = MCE_UE_ERROR_PAGE_TABLE_WALK_LOAD_STORE;
       ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/platforms/pseries/ras.c:570:3: note: here
      case MC_ERROR_UE_INDETERMINATE:
      ^~~~

vim +563 arch/powerpc/platforms/pseries/ras.c

   496	
   497	
   498	static int mce_handle_error(struct pt_regs *regs, struct rtas_error_log *errp)
   499	{
   500		struct mce_error_info mce_err = { 0 };
   501		unsigned long eaddr = 0, paddr = 0;
   502		struct pseries_errorlog *pseries_log;
   503		struct pseries_mc_errorlog *mce_log;
   504		int disposition = rtas_error_disposition(errp);
   505		int initiator = rtas_error_initiator(errp);
   506		int severity = rtas_error_severity(errp);
   507		u8 error_type, err_sub_type;
   508	
   509		if (initiator == RTAS_INITIATOR_UNKNOWN)
   510			mce_err.initiator = MCE_INITIATOR_UNKNOWN;
   511		else if (initiator == RTAS_INITIATOR_CPU)
   512			mce_err.initiator = MCE_INITIATOR_CPU;
   513		else if (initiator == RTAS_INITIATOR_PCI)
   514			mce_err.initiator = MCE_INITIATOR_PCI;
   515		else if (initiator == RTAS_INITIATOR_ISA)
   516			mce_err.initiator = MCE_INITIATOR_ISA;
   517		else if (initiator == RTAS_INITIATOR_MEMORY)
   518			mce_err.initiator = MCE_INITIATOR_MEMORY;
   519		else if (initiator == RTAS_INITIATOR_POWERMGM)
   520			mce_err.initiator = MCE_INITIATOR_POWERMGM;
   521		else
   522			mce_err.initiator = MCE_INITIATOR_UNKNOWN;
   523	
   524		if (severity == RTAS_SEVERITY_NO_ERROR)
   525			mce_err.severity = MCE_SEV_NO_ERROR;
   526		else if (severity == RTAS_SEVERITY_EVENT)
   527			mce_err.severity = MCE_SEV_WARNING;
   528		else if (severity == RTAS_SEVERITY_WARNING)
   529			mce_err.severity = MCE_SEV_WARNING;
   530		else if (severity == RTAS_SEVERITY_ERROR_SYNC)
   531			mce_err.severity = MCE_SEV_SEVERE;
   532		else if (severity == RTAS_SEVERITY_ERROR)
   533			mce_err.severity = MCE_SEV_SEVERE;
   534		else if (severity == RTAS_SEVERITY_FATAL)
   535			mce_err.severity = MCE_SEV_FATAL;
   536		else
   537			mce_err.severity = MCE_SEV_FATAL;
   538	
   539		if (severity <= RTAS_SEVERITY_ERROR_SYNC)
   540			mce_err.sync_error = true;
   541		else
   542			mce_err.sync_error = false;
   543	
   544		mce_err.error_type = MCE_ERROR_TYPE_UNKNOWN;
   545		mce_err.error_class = MCE_ECLASS_UNKNOWN;
   546	
   547		if (!rtas_error_extended(errp))
   548			goto out;
   549	
   550		pseries_log = get_pseries_errorlog(errp, PSERIES_ELOG_SECT_ID_MCE);
   551		if (pseries_log == NULL)
   552			goto out;
   553	
   554		mce_log = (struct pseries_mc_errorlog *)pseries_log->data;
   555		error_type = mce_log->error_type;
   556		err_sub_type = rtas_mc_error_sub_type(mce_log);
   557	
   558		switch (mce_log->error_type) {
   559		case MC_ERROR_TYPE_UE:
   560			mce_err.error_type = MCE_ERROR_TYPE_UE;
   561			switch (err_sub_type) {
   562			case MC_ERROR_UE_IFETCH:
 > 563				mce_err.u.ue_error_type = MCE_UE_ERROR_IFETCH;
   564			case MC_ERROR_UE_PAGE_TABLE_WALK_IFETCH:
   565				mce_err.u.ue_error_type = MCE_UE_ERROR_PAGE_TABLE_WALK_IFETCH;
   566			case MC_ERROR_UE_LOAD_STORE:
   567				mce_err.u.ue_error_type = MCE_UE_ERROR_LOAD_STORE;
   568			case MC_ERROR_UE_PAGE_TABLE_WALK_LOAD_STORE:
   569				mce_err.u.ue_error_type = MCE_UE_ERROR_PAGE_TABLE_WALK_LOAD_STORE;
   570			case MC_ERROR_UE_INDETERMINATE:
   571			default:
   572				mce_err.u.ue_error_type = MCE_UE_ERROR_INDETERMINATE;
   573				break;
   574			}
   575			if (mce_log->sub_err_type & UE_EFFECTIVE_ADDR_PROVIDED)
   576				eaddr = be64_to_cpu(mce_log->effective_address);
   577	
   578			if (mce_log->sub_err_type & UE_LOGICAL_ADDR_PROVIDED) {
   579				paddr = be64_to_cpu(mce_log->logical_address);
   580			} else if (mce_log->sub_err_type & UE_EFFECTIVE_ADDR_PROVIDED) {
   581				unsigned long pfn;
   582	
   583				pfn = addr_to_pfn(regs, eaddr);
   584				if (pfn != ULONG_MAX)
   585					paddr = pfn << PAGE_SHIFT;
   586			}
   587	
   588	
   589			break;
   590		case MC_ERROR_TYPE_SLB:
   591			mce_err.error_type = MCE_ERROR_TYPE_SLB;
   592			switch (err_sub_type) {
   593			case MC_ERROR_SLB_PARITY:
   594				mce_err.u.slb_error_type = MCE_SLB_ERROR_PARITY;
   595				break;
   596			case MC_ERROR_SLB_MULTIHIT:
   597				mce_err.u.slb_error_type = MCE_SLB_ERROR_MULTIHIT;
   598				break;
   599			case MC_ERROR_SLB_INDETERMINATE:
   600			default:
   601				mce_err.u.slb_error_type = MCE_SLB_ERROR_INDETERMINATE;
   602				break;
   603			}
   604			if (mce_log->sub_err_type & 0x80)
   605				eaddr = be64_to_cpu(mce_log->effective_address);
   606			break;
   607		case MC_ERROR_TYPE_ERAT:
   608			mce_err.error_type = MCE_ERROR_TYPE_ERAT;
   609			switch (err_sub_type) {
   610			case MC_ERROR_ERAT_PARITY:
   611				mce_err.u.erat_error_type = MCE_ERAT_ERROR_PARITY;
   612				break;
   613			case MC_ERROR_ERAT_MULTIHIT:
   614				mce_err.u.erat_error_type = MCE_ERAT_ERROR_MULTIHIT;
   615				break;
   616			case MC_ERROR_ERAT_INDETERMINATE:
   617			default:
   618				mce_err.u.erat_error_type = MCE_ERAT_ERROR_INDETERMINATE;
   619				break;
   620			}
   621			if (mce_log->sub_err_type & 0x80)
   622				eaddr = be64_to_cpu(mce_log->effective_address);
   623			break;
   624		case MC_ERROR_TYPE_TLB:
   625			mce_err.error_type = MCE_ERROR_TYPE_TLB;
   626			switch (err_sub_type) {
   627			case MC_ERROR_TLB_PARITY:
   628				mce_err.u.tlb_error_type = MCE_TLB_ERROR_PARITY;
   629				break;
   630			case MC_ERROR_TLB_MULTIHIT:
   631				mce_err.u.tlb_error_type = MCE_TLB_ERROR_MULTIHIT;
   632				break;
   633			case MC_ERROR_TLB_INDETERMINATE:
   634			default:
   635				mce_err.u.tlb_error_type = MCE_TLB_ERROR_INDETERMINATE;
   636				break;
   637			}
   638			if (mce_log->sub_err_type & 0x80)
   639				eaddr = be64_to_cpu(mce_log->effective_address);
   640			break;
   641		case MC_ERROR_TYPE_D_CACHE:
   642			mce_err.error_type = MCE_ERROR_TYPE_DCACHE;
   643			break;
   644		case MC_ERROR_TYPE_I_CACHE:
   645			mce_err.error_type = MCE_ERROR_TYPE_DCACHE;
   646			break;
   647		case MC_ERROR_TYPE_UNKNOWN:
   648		default:
   649			mce_err.error_type = MCE_ERROR_TYPE_UNKNOWN;
   650			break;
   651		}
   652	

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 62226 bytes --]

  parent reply	other threads:[~2019-08-08  5:53 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-02 10:56 [PATCH v2 00/44] powerpc/64s/exception: cleanup and macrofiy, Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 01/44] powerpc/64s/exception: machine check fwnmi remove HV case Nicholas Piggin
2019-09-02  3:29   ` Michael Ellerman
2019-08-02 10:56 ` [PATCH v2 02/44] powerpc/64s/exception: machine check remove bitrotted comment Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 03/44] powerpc/64s/exception: machine check fix KVM guest test Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 04/44] powerpc/64s/exception: machine check adjust RFI target Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 05/44] powerpc/64s/exception: machine check pseries should always run the early handler Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 06/44] powerpc/64s/exception: machine check remove machine_check_pSeries_0 branch Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 07/44] powerpc/64s/exception: machine check use correct cfar for late handler Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 08/44] powerpc/64s/powernv: machine check dump SLB contents Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 09/44] powerpc/64s/pseries: machine check convert to use common event code Nicholas Piggin
2019-08-08  5:01   ` kbuild test robot
2019-08-16 22:25     ` Michael Ellerman
2019-08-19 13:09       ` Nicholas Piggin
2019-08-08  5:50   ` kbuild test robot [this message]
2019-08-02 10:56 ` [PATCH v2 10/44] powerpc/64s/exception: machine check pseries should skip the late handler for kernel MCEs Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 11/44] powerpc/64s/exception: machine check restructure to reuse common macros Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 12/44] powerpc/64s/exception: machine check move tramp code Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 13/44] powerpc/64s/exception: simplify machine check early path Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 14/44] powerpc/64s/exception: machine check move unrecoverable handling out of line Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 15/44] powerpc/64s/exception: untangle early machine check handler branch Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 16/44] powerpc/64s/exception: machine check improve labels and comments Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 17/44] powerpc/64s/exception: Fix DAR load for handle_page_fault error case Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 18/44] powerpc/64s/exception: move head-64.h exception code to exception-64s.S Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 19/44] powerpc/64s/exception: Add EXC_HV_OR_STD, which selects HSRR if HVMODE Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 20/44] powerpc/64s/exception: Fix performance monitor virt handler Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 21/44] powerpc/64s/exception: remove 0xb00 handler Nicholas Piggin
2019-08-21 12:18   ` Michael Ellerman
2019-08-02 10:56 ` [PATCH v2 22/44] powerpc/64s/exception: Replace PROLOG macros and EXC helpers with a gas macro Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 23/44] powerpc/64s/exception: remove EXCEPTION_PROLOG_0/1, rename _2 Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 24/44] powerpc/64s/exception: Add the virt variant of the denorm interrupt handler Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 25/44] powerpc/64s/exception: INT_HANDLER support HDAR/HDSISR and use it in HDSI Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 26/44] powerpc/64s/exception: Add INT_KVM_HANDLER gas macro Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 27/44] powerpc/64s/exception: KVM_HANDLER reorder arguments to match other macros Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 28/44] powerpc/64s/exception: Merge EXCEPTION_PROLOG_COMMON_2/3 Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 29/44] powerpc/64s/exception: Add INT_COMMON gas macro to generate common exception code Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 30/44] powerpc/64s/exception: Expand EXCEPTION_COMMON macro into caller Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 31/44] powerpc/64s/exception: Expand EXCEPTION_PROLOG_COMMON_1 and 2 " Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 32/44] powerpc/64s/exception: INT_COMMON add DAR, DSISR, reconcile options Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 33/44] powerpc/64s/exception: move interrupt entry code above the common handler Nicholas Piggin
2019-08-02 10:56 ` [PATCH v2 34/44] powerpc/64s/exception: program check handler do not branch into a macro Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 35/44] powerpc/64s/exception: Remove pointless KVM handler name bifurcation Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 36/44] powerpc/64s/exception: reduce page fault unnecessary loads Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 37/44] powerpc/64s/exception: Introduce INT_DEFINE parameter block for code generation Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 38/44] powerpc/64s/exception: Add GEN_COMMON macro that uses INT_DEFINE parameters Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 39/44] powerpc/64s/exception: Add GEN_KVM " Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 40/44] powerpc/64s/exception: Expand EXC_COMMON and EXC_COMMON_ASYNC macros Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 41/44] powerpc/64s/exception: Move all interrupt handlers to new style code gen macros Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 42/44] powerpc/64s/exception: Remove old INT_ENTRY macro Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 43/44] powerpc/64s/exception: Remove old INT_COMMON macro Nicholas Piggin
2019-08-02 10:57 ` [PATCH v2 44/44] powerpc/64s/exception: Remove old INT_KVM_HANDLER Nicholas Piggin

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=201908081307.B0qGBYJE%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@01.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=npiggin@gmail.com \
    /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;
as well as URLs for NNTP newsgroup(s).