lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 23 Apr 2016 07:18:15 -0700 From: Bjorn Andersson <bjorn.andersson@...aro.org> To: Andy Gross <andy.gross@...aro.org> Cc: linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, Stephen Boyd <sboyd@...eaurora.org>, devicetree@...r.kernel.org, Bjorn Andersson <bjorn.andersson@...ymobile.com>, jilai wang <jilaiw@...eaurora.org>, Kumar Gala <galak@...eaurora.org> Subject: Re: [PATCH 4/8] firmware: qcom: scm: Add support for ARM64 SoCs On Fri 22 Apr 21:52 PDT 2016, Andy Gross wrote: > On Fri, Apr 22, 2016 at 04:41:05PM -0700, Bjorn Andersson wrote: > > On Fri 22 Apr 15:17 PDT 2016, Andy Gross wrote: [..] > > > diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c > > > index 8e1eeb8..7d7b12b 100644 > > [..] > > > > > > +static void qcom_scm_init(void) > > > +{ > > > + __qcom_scm_init(); > > > +} > > > + > > > static int qcom_scm_probe(struct platform_device *pdev) > > > { > > > struct qcom_scm *scm; > > > @@ -208,6 +213,8 @@ static int qcom_scm_probe(struct platform_device *pdev) > > > __scm = scm; > > > __scm->dev = &pdev->dev; > > > > > > + qcom_scm_init(); > > > + > > > > Why don't you call __qcom_scm_init() directly here? > > Yeah that would save some stack ops. > > As a side note, what do you think about just making the first transaction on the > scm-64 side do this init to figure out 32/64 calling convention? > > That would eliminate this mess. > We will have quite a bunch of entry points in this API, so it will probably be messier to have them all call some potential-init function. Perhaps if it's possible to push it to the __qcom_scm_call{,_atomic}. But I'm not sure we want those to be more complicated just to save this one call... > > > return 0; > > > } > > > > > > diff --git a/drivers/firmware/qcom_scm.h b/drivers/firmware/qcom_scm.h > > [..] > > > +#define QCOM_SCM_V2_EBUSY -12 > > > #define QCOM_SCM_ENOMEM -5 > > > #define QCOM_SCM_EOPNOTSUPP -4 > > > #define QCOM_SCM_EINVAL_ADDR -3 > > > @@ -56,6 +58,8 @@ static inline int qcom_scm_remap_error(int err) > > > return -EOPNOTSUPP; > > > case QCOM_SCM_ENOMEM: > > > return -ENOMEM; > > > + case QCOM_SCM_V2_EBUSY: > > > + return err; > > > > I don't think return -ENOMEM is the right thing to do here. > > -EBUSY? > That seems better. > > > return -EINVAL; > > > } Regards, Bjorn
Powered by blists - more mailing lists