Re: [PATCH v6 7/8] RISC-V: KVM: Add support for control-flow integrity FWFT features

Anup Patel <[email protected]> Wed, 29 Jul 2026 18:40:03 +0530
Newsgroups org.infradead.lists.kvm-riscv,org.infradead.lists.linux-riscv,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest
Message-ID <CAAhSdy2P3Fgfv3t9n=wNTfBL-63k+3qaDvsG1QWxtkWTFfvWvg@mail.gmail.com>
T24gTW9uLCBKdWwgMTMsIDIwMjYgYXQgNjozNOKAr0FNIElub2NoaSBBbWFvdG8gPGlub2NoaWFt
YUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gQ29udHJvbC1mbG93IGludGVncml0eSBpcyBjb250cm9s
bGVkIHRocm91Z2ggYSBXQVJMIGZpZWxkIGluIGhlbnZjZmcuCj4gRXhwb3NlIHRoZSBmZWF0dXJl
IG9ubHkgaWYgdGhlIFppY2ZpbHAvWmljZmlzcyBpcyBzdXBwb3J0ZWQgZm9yIFZTLW1vZGUuCj4g
QWxsb3cgdGhlIFZNTSB0byBibG9jayBhY2Nlc3MgdG8gdGhlIGZlYXR1cmUgYnkgZGlzYWJsaW5n
IHRoZSBJU0EKPiBleHRlbnNpb24gaW4gdGhlIGd1ZXN0Lgo+Cj4gQXNzaXN0ZWQtYnk6IFl1YW5T
aGVuZzpjbGF1ZGUtNC43LW9wdXMKPiBDby1kZXZlbG9wZWQtYnk6IFF1YW4gWmhvdSA8emhvdXF1
YW5AaXNjYXMuYWMuY24+Cj4gU2lnbmVkLW9mZi1ieTogUXVhbiBaaG91IDx6aG91cXVhbkBpc2Nh
cy5hYy5jbj4KPiBTaWduZWQtb2ZmLWJ5OiBJbm9jaGkgQW1hb3RvIDxpbm9jaGlhbWFAZ21haWwu
Y29tPgoKTEdUTS4KClJldmlld2VkLWJ5OiBBbnVwIFBhdGVsIDxhbnVwQGJyYWluZmF1bHQub3Jn
PgoKVGhhbmtzLApBbnVwCgo+IC0tLQo+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3Zt
LmggfCAgIDIgKwo+ICBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMgICAgfCAxMDcgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2Vy
dGlvbnMoKykKPgo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3Zt
LmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKPiBpbmRleCBmZDRjODE2OTc2
MTcuLjIwZDk5NTljYTQ0ZiAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9h
c20va3ZtLmgKPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKPiBAQCAt
MjQ4LDYgKzI0OCw4IEBAIHN0cnVjdCBrdm1fcmlzY3Zfc2JpX2Z3ZnQgewo+ICAgICAgICAgc3Ry
dWN0IGt2bV9yaXNjdl9zYmlfZndmdF9mZWF0dXJlIG1pc2FsaWduZWRfZGVsZWc7Cj4gICAgICAg
ICBzdHJ1Y3Qga3ZtX3Jpc2N2X3NiaV9md2Z0X2ZlYXR1cmUgcG9pbnRlcl9tYXNraW5nOwo+ICAg
ICAgICAgc3RydWN0IGt2bV9yaXNjdl9zYmlfZndmdF9mZWF0dXJlIHB0ZV9hZF9od191cGRhdGlu
ZzsKPiArICAgICAgIHN0cnVjdCBrdm1fcmlzY3Zfc2JpX2Z3ZnRfZmVhdHVyZSBsYW5kaW5nX3Bh
ZDsKPiArICAgICAgIHN0cnVjdCBrdm1fcmlzY3Zfc2JpX2Z3ZnRfZmVhdHVyZSBzaGFkb3dfc3Rh
Y2s7Cj4gIH07Cj4KPiAgLyogSWYgeW91IG5lZWQgdG8gaW50ZXJwcmV0IHRoZSBpbmRleCB2YWx1
ZXMsIGhlcmUgaXMgdGhlIGtleTogKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNw
dV9zYmlfZndmdC5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfZndmdC5jCj4gaW5kZXggNGQ0
NzRhNDM5YjI5Li4wMzE1M2ZkOGQxNWYgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNw
dV9zYmlfZndmdC5jCj4gKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfZndmdC5jCj4gQEAg
LTE3Niw2ICsxNzYsOTUgQEAgc3RhdGljIGxvbmcga3ZtX3NiaV9md2Z0X2dldF9taXNhbGlnbmVk
X2RlbGVnYXRpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAo+ICAgICAgICAgcmV0dXJuIFNCSV9T
VUNDRVNTOwo+ICB9Cj4KPiArc3RhdGljIGxvbmcga3ZtX3NiaV9md2Z0X3NldF9jZmkoc3RydWN0
IGt2bV92Y3B1ICp2Y3B1LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCBrdm1fc2JpX2Z3ZnRfY29uZmlnICpjb25mLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgb25lX3JlZ19hY2Nlc3MsIHVuc2lnbmVkIGxvbmcgdmFsdWUsCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IGZsYWcpCj4gK3sKPiArICAgICAgIHN0cnVj
dCBrdm1fdmNwdV9jb25maWcgKmNmZyA9ICZ2Y3B1LT5hcmNoLmNmZzsKPiArCj4gKyAgICAgICBp
ZiAodmFsdWUgPT0gMCkKPiArICAgICAgICAgICAgICAgY2ZnLT5oZW52Y2ZnICY9IH5mbGFnOwo+
ICsgICAgICAgZWxzZSBpZiAodmFsdWUgPT0gMSkKPiArICAgICAgICAgICAgICAgY2ZnLT5oZW52
Y2ZnIHw9IGZsYWc7Cj4gKyAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgIHJldHVybiBTQklf
RVJSX0lOVkFMSURfUEFSQU07Cj4gKwo+ICsgICAgICAgaWYgKGNmZy0+aGVudmNmZyAmIChFTlZD
RkdfTFBFIHwgRU5WQ0ZHX1NTRSkpCj4gKyAgICAgICAgICAgICAgIGNmZy0+aGVkZWxlZyB8PSBC
SVQoRVhDX1NPRlRXQVJFX0NIRUNLKTsKPiArICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAg
Y2ZnLT5oZWRlbGVnICY9IH5CSVQoRVhDX1NPRlRXQVJFX0NIRUNLKTsKPiArCj4gKyAgICAgICBp
ZiAoIW9uZV9yZWdfYWNjZXNzKSB7Cj4gKyAgICAgICAgICAgICAgIGNzcl93cml0ZShDU1JfSEVE
RUxFRywgY2ZnLT5oZWRlbGVnKTsKPiArICAgICAgICAgICAgICAgLyoKPiArICAgICAgICAgICAg
ICAgICogQm90aCBCaXQgTFBFIGFuZCBTU0UgYXJlIGluIHRoZSBsb3dlciBwYXJ0LCBzbyBpdCBp
cyBzYWZlCj4gKyAgICAgICAgICAgICAgICAqIHRvIG9ubHkgd3JpdGUgdGhlIGhlbnZjZmcKPiAr
ICAgICAgICAgICAgICAgICovCj4gKyAgICAgICAgICAgICAgIGNzcl93cml0ZShDU1JfSEVOVkNG
RywgdmNwdS0+YXJjaC5jZmcuaGVudmNmZyk7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0
dXJuIFNCSV9TVUNDRVNTOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBrdm1fc2JpX2Z3ZnRfbGFu
ZGluZ19wYWRfc3VwcG9ydGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiArewo+ICsgICAgICAg
cmV0dXJuIHJpc2N2X2lzYV9leHRlbnNpb25fYXZhaWxhYmxlKHZjcHUtPmFyY2guaXNhLCBaSUNG
SUxQKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQga3ZtX3NiaV9md2Z0X3Jlc2V0X2xhbmRpbmdf
cGFkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiArewo+ICsgICAgICAgc3RydWN0IGt2bV92Y3B1
X2NvbmZpZyAqY2ZnID0gJnZjcHUtPmFyY2guY2ZnOwo+ICsKPiArICAgICAgIGt2bV9zYmlfZndm
dF9lbnZfZmxhZ19yZXNldF9oZWxwZXIodmNwdSwgRU5WQ0ZHX0xQRSk7Cj4gKyAgICAgICBpZiAo
KGNmZy0+aGVudmNmZyAmIChFTlZDRkdfTFBFIHwgRU5WQ0ZHX1NTRSkpID09IDApCj4gKyAgICAg
ICAgICAgICAgIGNmZy0+aGVkZWxlZyAmPSB+QklUKEVYQ19TT0ZUV0FSRV9DSEVDSyk7Cj4gK30K
PiArCj4gK3N0YXRpYyBsb25nIGt2bV9zYmlfZndmdF9zZXRfbGFuZGluZ19wYWQoc3RydWN0IGt2
bV92Y3B1ICp2Y3B1LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGt2bV9zYmlfZndmdF9jb25maWcgKmNvbmYsCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIG9uZV9yZWdfYWNjZXNzLCB1bnNpZ25lZCBsb25nIHZh
bHVlKQo+ICt7Cj4gKyAgICAgICByZXR1cm4ga3ZtX3NiaV9md2Z0X3NldF9jZmkodmNwdSwgY29u
Ziwgb25lX3JlZ19hY2Nlc3MsIHZhbHVlLCBFTlZDRkdfTFBFKTsKPiArfQo+ICsKPiArc3RhdGlj
IGxvbmcga3ZtX3NiaV9md2Z0X2dldF9sYW5kaW5nX3BhZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUs
Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga3ZtX3Ni
aV9md2Z0X2NvbmZpZyAqY29uZiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgb25lX3JlZ19hY2Nlc3MsIHVuc2lnbmVkIGxvbmcgKnZhbHVlKQo+ICt7Cj4g
KyAgICAgICByZXR1cm4ga3ZtX3NiaV9md2Z0X2Vudl9mbGFnX2dldF9oZWxwZXIodmNwdSwgY29u
Ziwgb25lX3JlZ19hY2Nlc3MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmFsdWUsIEVOVkNGR19MUEUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBr
dm1fc2JpX2Z3ZnRfc2hhZG93X3N0YWNrX3N1cHBvcnRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUp
Cj4gK3sKPiArICAgICAgIHJldHVybiByaXNjdl9pc2FfZXh0ZW5zaW9uX2F2YWlsYWJsZSh2Y3B1
LT5hcmNoLmlzYSwgWklDRklTUyk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGt2bV9zYmlfZndm
dF9yZXNldF9zaGFkb3dfc3RhY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICt7Cj4gKyAgICAg
ICBzdHJ1Y3Qga3ZtX3ZjcHVfY29uZmlnICpjZmcgPSAmdmNwdS0+YXJjaC5jZmc7Cj4gKwo+ICsg
ICAgICAga3ZtX3NiaV9md2Z0X2Vudl9mbGFnX3Jlc2V0X2hlbHBlcih2Y3B1LCBFTlZDRkdfU1NF
KTsKPiArICAgICAgIGlmICgoY2ZnLT5oZW52Y2ZnICYgKEVOVkNGR19MUEUgfCBFTlZDRkdfU1NF
KSkgPT0gMCkKPiArICAgICAgICAgICAgICAgY2ZnLT5oZWRlbGVnICY9IH5CSVQoRVhDX1NPRlRX
QVJFX0NIRUNLKTsKPiArfQo+ICsKPiArc3RhdGljIGxvbmcga3ZtX3NiaV9md2Z0X3NldF9zaGFk
b3dfc3RhY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrdm1fc2JpX2Z3ZnRfY29uZmlnICpjb25mLAo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgb25lX3JlZ19hY2Nl
c3MsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCj4gK3sKPiArICAgICAgIHJldHVybiBrdm1fc2JpX2Z3
ZnRfc2V0X2NmaSh2Y3B1LCBjb25mLCBvbmVfcmVnX2FjY2VzcywgdmFsdWUsIEVOVkNGR19TU0Up
Owo+ICt9Cj4gKwo+ICtzdGF0aWMgbG9uZyBrdm1fc2JpX2Z3ZnRfZ2V0X3NoYWRvd19zdGFjayhz
dHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IGt2bV9zYmlfZndmdF9jb25maWcgKmNvbmYsCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvbmVfcmVnX2FjY2VzcywgdW5zaWdu
ZWQgbG9uZyAqdmFsdWUpCj4gK3sKPiArICAgICAgIHJldHVybiBrdm1fc2JpX2Z3ZnRfZW52X2Zs
YWdfZ2V0X2hlbHBlcih2Y3B1LCBjb25mLCBvbmVfcmVnX2FjY2VzcywKPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgRU5WQ0ZHX1NTRSk7Cj4g
K30KPiArCj4gIHN0YXRpYyBib29sIGt2bV9zYmlfZndmdF9wdGVfYWRfaHdfdXBkYXRpbmdfc3Vw
cG9ydGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiAgewo+ICAgICAgICAgcmV0dXJuIHJpc2N2
X2lzYV9leHRlbnNpb25fYXZhaWxhYmxlKHZjcHUtPmFyY2guaXNhLCBTVkFEVSkgJiYKPiBAQCAt
MzEzLDYgKzQwMiwyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGt2bV9zYmlfZndmdF9mZWF0dXJl
IGZlYXR1cmVzW10gPSB7Cj4gICAgICAgICAgICAgICAgIC5zZXQgPSBrdm1fc2JpX2Z3ZnRfc2V0
X21pc2FsaWduZWRfZGVsZWdhdGlvbiwKPiAgICAgICAgICAgICAgICAgLmdldCA9IGt2bV9zYmlf
ZndmdF9nZXRfbWlzYWxpZ25lZF9kZWxlZ2F0aW9uLAo+ICAgICAgICAgfSwKPiArICAgICAgIHsK
PiArICAgICAgICAgICAgICAgLmlkID0gU0JJX0ZXRlRfTEFORElOR19QQUQsCj4gKyAgICAgICAg
ICAgICAgIC5maXJzdF9yZWdfbnVtID0gb2Zmc2V0b2Yoc3RydWN0IGt2bV9yaXNjdl9zYmlfZndm
dCwgbGFuZGluZ19wYWQuZW5hYmxlKSAvCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLAo+ICsgICAgICAgICAgICAgICAuc3VwcG9ydGVkID0g
a3ZtX3NiaV9md2Z0X2xhbmRpbmdfcGFkX3N1cHBvcnRlZCwKPiArICAgICAgICAgICAgICAgLnJl
c2V0ID0ga3ZtX3NiaV9md2Z0X3Jlc2V0X2xhbmRpbmdfcGFkLAo+ICsgICAgICAgICAgICAgICAu
c2V0ID0ga3ZtX3NiaV9md2Z0X3NldF9sYW5kaW5nX3BhZCwKPiArICAgICAgICAgICAgICAgLmdl
dCA9IGt2bV9zYmlfZndmdF9nZXRfbGFuZGluZ19wYWQsCj4gKyAgICAgICB9LAo+ICsgICAgICAg
ewo+ICsgICAgICAgICAgICAgICAuaWQgPSBTQklfRldGVF9TSEFET1dfU1RBQ0ssCj4gKyAgICAg
ICAgICAgICAgIC5maXJzdF9yZWdfbnVtID0gb2Zmc2V0b2Yoc3RydWN0IGt2bV9yaXNjdl9zYmlf
ZndmdCwgc2hhZG93X3N0YWNrLmVuYWJsZSkgLwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVvZih1bnNpZ25lZCBsb25nKSwKPiArICAgICAgICAgICAgICAgLnN1cHBvcnRl
ZCA9IGt2bV9zYmlfZndmdF9zaGFkb3dfc3RhY2tfc3VwcG9ydGVkLAo+ICsgICAgICAgICAgICAg
ICAucmVzZXQgPSBrdm1fc2JpX2Z3ZnRfcmVzZXRfc2hhZG93X3N0YWNrLAo+ICsgICAgICAgICAg
ICAgICAuc2V0ID0ga3ZtX3NiaV9md2Z0X3NldF9zaGFkb3dfc3RhY2ssCj4gKyAgICAgICAgICAg
ICAgIC5nZXQgPSBrdm1fc2JpX2Z3ZnRfZ2V0X3NoYWRvd19zdGFjaywKPiArICAgICAgIH0sCj4g
ICAgICAgICB7Cj4gICAgICAgICAgICAgICAgIC5pZCA9IFNCSV9GV0ZUX1BURV9BRF9IV19VUERB
VElORywKPiAgICAgICAgICAgICAgICAgLmZpcnN0X3JlZ19udW0gPSBvZmZzZXRvZihzdHJ1Y3Qg
a3ZtX3Jpc2N2X3NiaV9md2Z0LCBwdGVfYWRfaHdfdXBkYXRpbmcuZW5hYmxlKSAvCj4gLS0KPiAy
LjU1LjAKPgoKLS0gCmt2bS1yaXNjdiBtYWlsaW5nIGxpc3QKa3ZtLXJpc2N2QGxpc3RzLmluZnJh
ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rdm0t
cmlzY3YK