[Skiboot] [PATCH 3/3] xscom: Don't create PELs for non-severe read/write failures

Gautham R Shenoy ego at linux.vnet.ibm.com
Thu Dec 5 16:10:04 AEDT 2019


Hello Klaus,

On Wed, Dec 04, 2019 at 08:00:07PM -0300, Klaus Heinrich Kiwi wrote:
> On 12/4/2019 10:26 AM, Gautham R. Shenoy wrote
> >-opal_call(OPAL_XSCOM_READ, xscom_read, 3);
> >+static int opal_xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val)
> >+{
> >+	return _xscom_read(partid, pcb_addr, val, true, false);
> >+}
> >+opal_call(OPAL_XSCOM_READ, opal_xscom_read, 3);
> >
> >  int _xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val, bool take_lock,
> >  		 bool create_addr_elog)
> >@@ -708,7 +712,12 @@ int _xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val, bool take_loc
> >  	}
> >  	return rc;
> >  }
> >-opal_call(OPAL_XSCOM_WRITE, xscom_write, 3);
> >+
> >+static int opal_xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val)
> >+{
> >+	return _xscom_write(partid, pcb_addr, val, true, false);
> >+}
> >+opal_call(OPAL_XSCOM_WRITE, opal_xscom_write, 3);
> >
> >  /*
> >   * Perform a xscom read-modify-write.
> 
> if external calls will always suppress the error logs
> (create_addr_elog=false), and only internal calls will have the option to do
> the logging or not, wouldn't it be better to just create _fail/nofail
> versions of _xscom_read/write()?

Yes, that seems simpler. I too thought of it, only after sending the
patch.

Will resend a version today with the _xscom_read_nofail() version.

> 
> you can use the _fail() versions when you want the failure to be logged, and
> the _nofail versions for when you don't want it to be logged, and for the
> default case..
> 
> 
>  -Klaus
> 
> -- 
> Klaus Heinrich Kiwi <klaus at linux.vnet.ibm.com>
> 


More information about the Skiboot mailing list