Message ID | 20180426115534.20971-1-niklas.cassel@linaro.org |
---|---|
State | New |
Headers | show |
Series | [RESEND] firmware: qcom: scm: Fix crash in qcom_scm_call_atomic1() | expand |
On Thu, Apr 26, 2018 at 11:01:30AM -0700, Bjorn Andersson wrote: > On Thu 26 Apr 04:55 PDT 2018, Niklas Cassel wrote: > > > qcom_scm_call_atomic1() can crash with a NULL pointer dereference at > > qcom_scm_call_atomic1+0x30/0x48. > > > > Hi Niklas, > > The change has been picked up for v4.18, as you can see here: > https://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git/log/?h=for-next Hello Björn, I just looked at today's linux-next tag: next-20180426. I didn't bother to check Andy's tree. Andy's for-next branch is included in linux-next, so it will probably be included in tomorrow's linux-next tag. Sorry for the noise. Kind regards, Niklas
On Thu, Apr 26, 2018 at 09:25:36PM +0200, Niklas Cassel wrote: > On Thu, Apr 26, 2018 at 11:01:30AM -0700, Bjorn Andersson wrote: > > On Thu 26 Apr 04:55 PDT 2018, Niklas Cassel wrote: > > > > > qcom_scm_call_atomic1() can crash with a NULL pointer dereference at > > > qcom_scm_call_atomic1+0x30/0x48. > > > > > > > Hi Niklas, > > > > The change has been picked up for v4.18, as you can see here: > > https://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git/log/?h=for-next > > Hello Björn, > > I just looked at today's linux-next tag: next-20180426. > I didn't bother to check Andy's tree. > > Andy's for-next branch is included in linux-next, so it > will probably be included in tomorrow's linux-next tag. > > Sorry for the noise. I'm pretty bad about broadcasting which patches i am taking. Sorry bout that. Andy
diff --git a/drivers/firmware/qcom_scm-32.c b/drivers/firmware/qcom_scm-32.c index dfbd894d5bb7..4e24e591ae74 100644 --- a/drivers/firmware/qcom_scm-32.c +++ b/drivers/firmware/qcom_scm-32.c @@ -147,7 +147,7 @@ static u32 smc(u32 cmd_addr) "smc #0 @ switch to secure world\n" : "=r" (r0) : "r" (r0), "r" (r1), "r" (r2) - : "r3"); + : "r3", "r12"); } while (r0 == QCOM_SCM_INTERRUPTED); return r0; @@ -263,7 +263,7 @@ static s32 qcom_scm_call_atomic1(u32 svc, u32 cmd, u32 arg1) "smc #0 @ switch to secure world\n" : "=r" (r0) : "r" (r0), "r" (r1), "r" (r2) - : "r3"); + : "r3", "r12"); return r0; } @@ -298,7 +298,7 @@ static s32 qcom_scm_call_atomic2(u32 svc, u32 cmd, u32 arg1, u32 arg2) "smc #0 @ switch to secure world\n" : "=r" (r0) : "r" (r0), "r" (r1), "r" (r2), "r" (r3) - ); + : "r12"); return r0; } @@ -328,7 +328,7 @@ u32 qcom_scm_get_version(void) "smc #0 @ switch to secure world\n" : "=r" (r0), "=r" (r1) : "r" (r0), "r" (r1) - : "r2", "r3"); + : "r2", "r3", "r12"); } while (r0 == QCOM_SCM_INTERRUPTED); version = r1;