From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex =?utf-8?Q?Benn=C3=A9e?= Subject: Re: [PATCH v10 12/18] arm64/sve: Switch sve_pffr() argument from task to thread Date: Thu, 24 May 2018 11:12:52 +0100 Message-ID: <874lixtl97.fsf@linaro.org> References: <1527005119-6842-1-git-send-email-Dave.Martin@arm.com> <1527005119-6842-13-git-send-email-Dave.Martin@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1527005119-6842-13-git-send-email-Dave.Martin@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Dave Martin Cc: Christoffer Dall , Ard Biesheuvel , Marc Zyngier , Catalin Marinas , Will Deacon , kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org List-Id: kvmarm@lists.cs.columbia.edu CkRhdmUgTWFydGluIDxEYXZlLk1hcnRpbkBhcm0uY29tPiB3cml0ZXM6Cgo+IHN2ZV9wZmZyKCks IHdoaWNoIGlzIHVzZWQgdG8gZGVyaXZlIHRoZSBiYXNlIGFkZHJlc3MgdXNlZCBmb3IKPiBsb3ct bGV2ZWwgU1ZFIHNhdmUvcmVzdG9yZSByb3V0aW5lcywgY3VycmVudGx5IHRha2VzIHRoZSByZWxl dmFudAo+IHRhc2tfc3RydWN0IGFzIGFuIGFyZ3VtZW50Lgo+Cj4gVGhlIG9ubHkgYWNjZXNzZWQg ZmllbGRzIGFyZSBhY3R1YWxseSBwYXJ0IG9mIHRocmVhZF9zdHJ1Y3QsIHNvCj4gdGhpcyBwYXRj aCBjaGFuZ2VzIHRoZSBhcmd1bWVudCB0eXBlIGFjY29yZGluZ2x5LiAgVGhpcyBpcyBkb25lIGlu Cj4gcHJlcGFyYXRpb24gZm9yIG1vdmluZyB0aGlzIGZ1bmN0aW9uIHRvIGEgaGVhZGVyLCB3aGVy ZSB3ZSBkbyBub3QKPiB3YW50IHRvIGhhdmUgdG8gaW5jbHVkZSA8bGludXgvc2NoZWQuaD4gZHVl IHRvIHRoZSBjb25zZXF1ZW50Cj4gY2lyY3VsYXIgI2luY2x1ZGUgcHJvYmxlbXMuCj4KPiBObyBm dW5jdGlvbmFsIGNoYW5nZS4KPgo+IFNpZ25lZC1vZmYtYnk6IERhdmUgTWFydGluIDxEYXZlLk1h cnRpbkBhcm0uY29tPgo+IEFja2VkLWJ5OiBDYXRhbGluIE1hcmluYXMgPGNhdGFsaW4ubWFyaW5h c0Bhcm0uY29tPgo+IEFja2VkLWJ5OiBNYXJjIFp5bmdpZXIgPG1hcmMuenluZ2llckBhcm0uY29t PgoKUmV2aWV3ZWQtYnk6IEFsZXggQmVubsOpZSA8YWxleC5iZW5uZWVAbGluYXJvLm9yZz4KCj4g LS0tCj4gIGFyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jIHwgMTAgKysrKystLS0tLQo+ICAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jIGIvYXJjaC9hcm02NC9rZXJuZWwvZnBzaW1k LmMKPiBpbmRleCA1MTUyYmJjLi5jNGU5NzYyIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtNjQva2Vy bmVsL2Zwc2ltZC5jCj4gKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvZnBzaW1kLmMKPiBAQCAtNDQs NiArNDQsNyBAQAo+ICAjaW5jbHVkZSA8YXNtL2Zwc2ltZC5oPgo+ICAjaW5jbHVkZSA8YXNtL2Nw dWZlYXR1cmUuaD4KPiAgI2luY2x1ZGUgPGFzbS9jcHV0eXBlLmg+Cj4gKyNpbmNsdWRlIDxhc20v cHJvY2Vzc29yLmg+Cj4gICNpbmNsdWRlIDxhc20vc2ltZC5oPgo+ICAjaW5jbHVkZSA8YXNtL3Np Z2NvbnRleHQuaD4KPiAgI2luY2x1ZGUgPGFzbS9zeXNyZWcuaD4KPiBAQCAtMTY3LDEwICsxNjgs OSBAQCBzdGF0aWMgc2l6ZV90IHN2ZV9mZnJfb2Zmc2V0KGludCB2bCkKPiAgCXJldHVybiBTVkVf U0lHX0ZGUl9PRkZTRVQoc3ZlX3ZxX2Zyb21fdmwodmwpKSAtIFNWRV9TSUdfUkVHU19PRkZTRVQ7 Cj4gIH0KPgo+IC1zdGF0aWMgdm9pZCAqc3ZlX3BmZnIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNr KQo+ICtzdGF0aWMgdm9pZCAqc3ZlX3BmZnIoc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnRocmVhZCkK PiAgewo+IC0JcmV0dXJuIChjaGFyICopdGFzay0+dGhyZWFkLnN2ZV9zdGF0ZSArCj4gLQkJc3Zl X2Zmcl9vZmZzZXQodGFzay0+dGhyZWFkLnN2ZV92bCk7Cj4gKwlyZXR1cm4gKGNoYXIgKil0aHJl YWQtPnN2ZV9zdGF0ZSArIHN2ZV9mZnJfb2Zmc2V0KHRocmVhZC0+c3ZlX3ZsKTsKPiAgfQo+Cj4g IHN0YXRpYyB2b2lkIGNoYW5nZV9jcGFjcih1NjQgdmFsLCB1NjQgbWFzaykKPiBAQCAtMjUzLDcg KzI1Myw3IEBAIHN0YXRpYyB2b2lkIHRhc2tfZnBzaW1kX2xvYWQodm9pZCkKPiAgCVdBUk5fT04o IWluX3NvZnRpcnEoKSAmJiAhaXJxc19kaXNhYmxlZCgpKTsKPgo+ICAJaWYgKHN5c3RlbV9zdXBw b3J0c19zdmUoKSAmJiB0ZXN0X3RocmVhZF9mbGFnKFRJRl9TVkUpKQo+IC0JCXN2ZV9sb2FkX3N0 YXRlKHN2ZV9wZmZyKGN1cnJlbnQpLAo+ICsJCXN2ZV9sb2FkX3N0YXRlKHN2ZV9wZmZyKCZjdXJy ZW50LT50aHJlYWQpLAo+ICAJCQkgICAgICAgJmN1cnJlbnQtPnRocmVhZC51dy5mcHNpbWRfc3Rh dGUuZnBzciwKPiAgCQkJICAgICAgIHN2ZV92cV9mcm9tX3ZsKGN1cnJlbnQtPnRocmVhZC5zdmVf dmwpIC0gMSk7Cj4gIAllbHNlCj4gQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIGZwc2ltZF9zYXZl KHZvaWQpCj4gIAkJCQlyZXR1cm47Cj4gIAkJCX0KPgo+IC0JCQlzdmVfc2F2ZV9zdGF0ZShzdmVf cGZmcihjdXJyZW50KSwgJnN0LT5mcHNyKTsKPiArCQkJc3ZlX3NhdmVfc3RhdGUoc3ZlX3BmZnIo JmN1cnJlbnQtPnRocmVhZCksICZzdC0+ZnBzcik7Cj4gIAkJfSBlbHNlCj4gIAkJCWZwc2ltZF9z YXZlX3N0YXRlKHN0KTsKPiAgCX0KCgotLQpBbGV4IEJlbm7DqWUKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: alex.bennee@linaro.org (Alex =?utf-8?Q?Benn=C3=A9e?=) Date: Thu, 24 May 2018 11:12:52 +0100 Subject: [PATCH v10 12/18] arm64/sve: Switch sve_pffr() argument from task to thread In-Reply-To: <1527005119-6842-13-git-send-email-Dave.Martin@arm.com> References: <1527005119-6842-1-git-send-email-Dave.Martin@arm.com> <1527005119-6842-13-git-send-email-Dave.Martin@arm.com> Message-ID: <874lixtl97.fsf@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Dave Martin writes: > sve_pffr(), which is used to derive the base address used for > low-level SVE save/restore routines, currently takes the relevant > task_struct as an argument. > > The only accessed fields are actually part of thread_struct, so > this patch changes the argument type accordingly. This is done in > preparation for moving this function to a header, where we do not > want to have to include due to the consequent > circular #include problems. > > No functional change. > > Signed-off-by: Dave Martin > Acked-by: Catalin Marinas > Acked-by: Marc Zyngier Reviewed-by: Alex Benn?e > --- > arch/arm64/kernel/fpsimd.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c > index 5152bbc..c4e9762 100644 > --- a/arch/arm64/kernel/fpsimd.c > +++ b/arch/arm64/kernel/fpsimd.c > @@ -44,6 +44,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -167,10 +168,9 @@ static size_t sve_ffr_offset(int vl) > return SVE_SIG_FFR_OFFSET(sve_vq_from_vl(vl)) - SVE_SIG_REGS_OFFSET; > } > > -static void *sve_pffr(struct task_struct *task) > +static void *sve_pffr(struct thread_struct *thread) > { > - return (char *)task->thread.sve_state + > - sve_ffr_offset(task->thread.sve_vl); > + return (char *)thread->sve_state + sve_ffr_offset(thread->sve_vl); > } > > static void change_cpacr(u64 val, u64 mask) > @@ -253,7 +253,7 @@ static void task_fpsimd_load(void) > WARN_ON(!in_softirq() && !irqs_disabled()); > > if (system_supports_sve() && test_thread_flag(TIF_SVE)) > - sve_load_state(sve_pffr(current), > + sve_load_state(sve_pffr(¤t->thread), > ¤t->thread.uw.fpsimd_state.fpsr, > sve_vq_from_vl(current->thread.sve_vl) - 1); > else > @@ -284,7 +284,7 @@ void fpsimd_save(void) > return; > } > > - sve_save_state(sve_pffr(current), &st->fpsr); > + sve_save_state(sve_pffr(¤t->thread), &st->fpsr); > } else > fpsimd_save_state(st); > } -- Alex Benn?e