* [PATCH] powerpc: : Kill CONFIG_MTD_PARTITIONS
From: Eunbong Song @ 2013-11-27 0:42 UTC (permalink / raw)
To: benh, paulus; +Cc: linuxppc-dev, linux-kernel@vger.kernel.org
DQpUaGlzIHBhdGNoIHJlbW92ZXMgQ09ORklHX01URF9QQVJUSVRJT05TIGluIGNvbmZpZyBmaWxl
cyBmb3IgcG93ZXJwYy4NCiBCZWNhdXNlIENPTkZJR19NVERfUEFSVElUSU9OUyB3YXMgcmVtb3Zl
ZCBieSBjb21taXQgNmE4YTk4YjIyYjEwZjE1NjBkNWY5MGFkZWQ0YTU0MjM0YjliMjcyNC4NCg0K
DQpTaWduZWQtb2ZmLWJ5OiBFdW5ib25nIFNvbmcgPGV1bmIuc29uZ0BzYW1zdW5nLmNvbT4NCi0t
LQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQweC9hY2FkaWFfZGVmY29uZmlnICAgICAgICB8ICAg
IDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQweC9lcDQwNV9kZWZjb25maWcgICAgICAgICB8
ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQweC9raWxhdWVhX2RlZmNvbmZpZyAgICAg
ICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQweC9tYWthbHVfZGVmY29uZmlnICAg
ICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQweC93YWxudXRfZGVmY29uZmln
ICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9hcmNoZXNfZGVmY29u
ZmlnICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ibHVlc3RvbmVf
ZGVmY29uZmlnICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jYW55b25s
YW5kc19kZWZjb25maWcgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9lYm9u
eV9kZWZjb25maWcgICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9l
aWdlcl9kZWZjb25maWcgICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzQ0
eC9pY29uX2RlZmNvbmZpZyAgICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdz
LzQ0eC9pc3M0NzYtc21wX2RlZmNvbmZpZyAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25m
aWdzLzQ0eC9rYXRtYWlfZGVmY29uZmlnICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9j
b25maWdzLzQ0eC9yYWluaWVyX2RlZmNvbmZpZyAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJw
Yy9jb25maWdzLzQ0eC9yZWR3b29kX2RlZmNvbmZpZyAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93
ZXJwYy9jb25maWdzLzQ0eC9zZXF1b2lhX2RlZmNvbmZpZyAgICAgICB8ICAgIDEgLQ0KIGFyY2gv
cG93ZXJwYy9jb25maWdzLzQ0eC90YWlzaGFuX2RlZmNvbmZpZyAgICAgICB8ICAgIDEgLQ0KIGFy
Y2gvcG93ZXJwYy9jb25maWdzLzQ0eC93YXJwX2RlZmNvbmZpZyAgICAgICAgICB8ICAgIDEgLQ0K
IGFyY2gvcG93ZXJwYy9jb25maWdzLzUyeHgvY201MjAwX2RlZmNvbmZpZyAgICAgICB8ICAgIDEg
LQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzUyeHgvbW90aW9ucHJvX2RlZmNvbmZpZyAgICB8ICAg
IDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzUyeHgvcGNtMDMwX2RlZmNvbmZpZyAgICAgICB8
ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzUyeHgvdHFtNTIwMF9kZWZjb25maWcgICAg
ICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvYXNwODM0N19kZWZjb25maWcg
ICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxM19yZGJfZGVm
Y29uZmlnICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJf
ZGVmY29uZmlnICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM2eF9t
ZHNfZGVmY29uZmlnICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM2
eF9yZGtfZGVmY29uZmlnICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvc2Jj
ODM0eF9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgv
a3NpODU2MF9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzg1
eHgvcHBhODU0OF9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdz
Lzg1eHgvc29jcmF0ZXNfZGVmY29uZmlnICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25m
aWdzLzg1eHgvdHFtODU0MF9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9j
b25maWdzLzg1eHgvdHFtODU0MV9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJw
Yy9jb25maWdzLzg1eHgvdHFtODU0OF9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93
ZXJwYy9jb25maWdzLzg1eHgvdHFtODU1NV9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFyY2gv
cG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU2MF9kZWZjb25maWcgICAgICB8ICAgIDEgLQ0KIGFy
Y2gvcG93ZXJwYy9jb25maWdzLzg1eHgveGVzX21wYzg1eHhfZGVmY29uZmlnICB8ICAgIDEgLQ0K
IGFyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvZ2VmX3BwYzlhX2RlZmNvbmZpZyAgICB8ICAgIDEg
LQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvZ2VmX3NiYzMxMF9kZWZjb25maWcgICB8ICAg
IDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvZ2VmX3NiYzYxMF9kZWZjb25maWcgICB8
ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvbXBjODYxMF9ocGNkX2RlZmNvbmZp
ZyB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvc2JjODY0MWRfZGVmY29uZmln
ICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzL2Mya19kZWZjb25maWcgICAgICAg
ICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzL2NvcmVuZXQ2NF9zbXBfZGVm
Y29uZmlnICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2Rl
ZmNvbmZpZyAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVm
Y29uZmlnICAgICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhf
c21wX2RlZmNvbmZpZyAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzQw
eF9kZWZjb25maWcgICAgICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdzL3Bw
YzQ0eF9kZWZjb25maWcgICAgICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25maWdz
L3BycG1jMjgwMF9kZWZjb25maWcgICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9jb25m
aWdzL3N0b3JjZW50ZXJfZGVmY29uZmlnICAgICAgICB8ICAgIDEgLQ0KIGFyY2gvcG93ZXJwYy9j
b25maWdzL3RxbTh4eF9kZWZjb25maWcgICAgICAgICAgICB8ICAgIDEgLQ0KIDUyIGZpbGVzIGNo
YW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9h
cmNoL3Bvd2VycGMvY29uZmlncy80MHgvYWNhZGlhX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9j
b25maWdzLzQweC9hY2FkaWFfZGVmY29uZmlnDQppbmRleCBlZDNiYWI3Li42OWUwNmVlIDEwMDY0
NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDB4L2FjYWRpYV9kZWZjb25maWcNCisrKyBi
L2FyY2gvcG93ZXJwYy9jb25maWdzLzQweC9hY2FkaWFfZGVmY29uZmlnDQpAQCAtMzAsNyArMzAs
NiBAQCBDT05GSUdfSVBfUE5QX0JPT1RQPXkNCiBDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIv
c2Jpbi9ob3RwbHVnIg0KIENPTkZJR19DT05ORUNUT1I9eQ0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJ
R19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdf
TVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93
ZXJwYy9jb25maWdzLzQweC9lcDQwNV9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy80
MHgvZXA0MDVfZGVmY29uZmlnDQppbmRleCAxNzU4MmEzLi5jZjA2ZDQyIDEwMDY0NA0KLS0tIGEv
YXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDB4L2VwNDA1X2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dl
cnBjL2NvbmZpZ3MvNDB4L2VwNDA1X2RlZmNvbmZpZw0KQEAgLTI5LDcgKzI5LDYgQEAgQ09ORklH
X0lQX1BOUF9CT09UUD15DQogQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1
ZyINCiBDT05GSUdfQ09OTkVDVE9SPXkNCiBDT05GSUdfTVREPXkNCi1DT05GSUdfTVREX1BBUlRJ
VElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15DQogQ09ORklHX01URF9PRl9QQVJU
Uz15DQogQ09ORklHX01URF9DSEFSPXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmln
cy80MHgva2lsYXVlYV9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy80MHgva2lsYXVl
YV9kZWZjb25maWcNCmluZGV4IGYyZDRiZTkuLjVmZjMzOGYgMTAwNjQ0DQotLS0gYS9hcmNoL3Bv
d2VycGMvY29uZmlncy80MHgva2lsYXVlYV9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9j
b25maWdzLzQweC9raWxhdWVhX2RlZmNvbmZpZw0KQEAgLTMyLDcgKzMyLDYgQEAgQ09ORklHX0lQ
X1BOUF9CT09UUD15DQogQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIN
CiBDT05GSUdfQ09OTkVDVE9SPXkNCiBDT05GSUdfTVREPXkNCi1DT05GSUdfTVREX1BBUlRJVElP
TlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15
DQogQ09ORklHX01URF9DSEFSPXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy80
MHgvbWFrYWx1X2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzQweC9tYWthbHVfZGVm
Y29uZmlnDQppbmRleCA0MmI5NzkzLi44NDUwNWUzIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBj
L2NvbmZpZ3MvNDB4L21ha2FsdV9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdz
LzQweC9tYWthbHVfZGVmY29uZmlnDQpAQCAtMjksNyArMjksNiBAQCBDT05GSUdfSVBfUE5QX0JP
T1RQPXkNCiBDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KIENPTkZJ
R19DT05ORUNUT1I9eQ0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQog
Q09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05G
SUdfTVREX0NIQVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzQweC93YWxu
dXRfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDB4L3dhbG51dF9kZWZjb25maWcN
CmluZGV4IGFhMWE0Y2EuLjBhMTlmNDMgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmln
cy80MHgvd2FsbnV0X2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDB4L3dh
bG51dF9kZWZjb25maWcNCkBAIC0yNyw3ICsyNyw2IEBAIENPTkZJR19JUF9QTlBfQk9PVFA9eQ0K
IENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogQ09ORklHX0NPTk5F
Q1RPUj15DQogQ09ORklHX01URD15DQotQ09ORklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdf
TVREX0NNRExJTkVfUEFSVFM9eQ0KIENPTkZJR19NVERfT0ZfUEFSVFM9eQ0KIENPTkZJR19NVERf
Q0hBUj15DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2FyY2hlc19kZWZj
b25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYXJjaGVzX2RlZmNvbmZpZw0KaW5kZXgg
MzI5ZjlhMy4uNDQzNTVjNSAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9h
cmNoZXNfZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYXJjaGVzX2Rl
ZmNvbmZpZw0KQEAgLTMxLDcgKzMxLDYgQEAgQ09ORklHX0lQX1BOUF9CT09UUD15DQogQ09ORklH
X1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBDT05GSUdfQ09OTkVDVE9SPXkN
CiBDT05GSUdfTVREPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ01E
TElORV9QQVJUUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15DQogQ09ORklHX01URF9DSEFSPXkN
CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvYmx1ZXN0b25lX2RlZmNvbmZp
ZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ibHVlc3RvbmVfZGVmY29uZmlnDQppbmRleCAy
MGM4ZDI2Li5jYTdmMWYzIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2Js
dWVzdG9uZV9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9ibHVlc3Rv
bmVfZGVmY29uZmlnDQpAQCAtMjYsNyArMjYsNiBAQCBDT05GSUdfSVBfUE5QX0JPT1RQPXkNCiBD
T05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KIENPTkZJR19DT05ORUNU
T1I9eQ0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01U
RF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVREX0NI
QVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9jYW55b25sYW5kc19k
ZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvY2FueW9ubGFuZHNfZGVmY29uZmln
DQppbmRleCBkNWJlOTNlLi43YjhhYmQxIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZp
Z3MvNDR4L2NhbnlvbmxhbmRzX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
NDR4L2NhbnlvbmxhbmRzX2RlZmNvbmZpZw0KQEAgLTMxLDcgKzMxLDYgQEAgQ09ORklHX0lQX1BO
UF9CT09UUD15DQogQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBD
T05GSUdfQ09OTkVDVE9SPXkNCiBDT05GSUdfTVREPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9
eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15DQog
Q09ORklHX01URF9DSEFSPXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgv
ZWJvbnlfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2Vib255X2RlZmNvbmZp
Zw0KaW5kZXggZjkyNjlmYy4uMzFiNThiMCAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25m
aWdzLzQ0eC9lYm9ueV9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9l
Ym9ueV9kZWZjb25maWcNCkBAIC0yOCw3ICsyOCw2IEBAIENPTkZJR19JUF9QTlBfQk9PVFA9eQ0K
IENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogQ09ORklHX0NPTk5F
Q1RPUj15DQogQ09ORklHX01URD15DQotQ09ORklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdf
TVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0K
ZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9laWdlcl9kZWZjb25maWcgYi9h
cmNoL3Bvd2VycGMvY29uZmlncy80NHgvZWlnZXJfZGVmY29uZmlnDQppbmRleCA5YmUwODkwLi5m
YWNjYWY2IDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2VpZ2VyX2RlZmNv
bmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2VpZ2VyX2RlZmNvbmZpZw0KQEAg
LTM0LDcgKzM0LDYgQEAgQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIN
CiBDT05GSUdfQ09OTkVDVE9SPXkNCiBDT05GSUdfTVREPXkNCiBDT05GSUdfTVREX0NPTkNBVD15
DQotQ09ORklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQ0K
IENPTkZJR19NVERfT0ZfUEFSVFM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQpkaWZmIC0tZ2l0IGEv
YXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ljb25fZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2Nv
bmZpZ3MvNDR4L2ljb25fZGVmY29uZmlnDQppbmRleCA4MmY3MzAzLi4wNTc4MmMxIDEwMDY0NA0K
LS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2ljb25fZGVmY29uZmlnDQorKysgYi9hcmNo
L3Bvd2VycGMvY29uZmlncy80NHgvaWNvbl9kZWZjb25maWcNCkBAIC0zMyw3ICszMyw2IEBAIENP
TkZJR19JUF9QTlBfQk9PVFA9eQ0KIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hv
dHBsdWciDQogQ09ORklHX0NPTk5FQ1RPUj15DQogQ09ORklHX01URD15DQotQ09ORklHX01URF9Q
QVJUSVRJT05TPXkNCiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQ0KIENPTkZJR19NVERfT0Zf
UEFSVFM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Nv
bmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4
L2lzczQ3Ni1zbXBfZGVmY29uZmlnDQppbmRleCBjYTAwY2Y3Li40OWExNTE4IDEwMDY0NA0KLS0t
IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2lzczQ3Ni1zbXBfZGVmY29uZmlnDQorKysgYi9h
cmNoL3Bvd2VycGMvY29uZmlncy80NHgvaXNzNDc2LXNtcF9kZWZjb25maWcNCkBAIC00Miw3ICs0
Miw2IEBAIENPTkZJR19JUF9QTlBfQk9PVFA9eQ0KIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9
Ii9zYmluL2hvdHBsdWciDQogQ09ORklHX0NPTk5FQ1RPUj15DQogQ09ORklHX01URD15DQotQ09O
RklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVRE
X0NIQVI9eQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9j
b25maWdzLzQ0eC9rYXRtYWlfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L2th
dG1haV9kZWZjb25maWcNCmluZGV4IDEwOTU2MmMuLmYxMTM3OTcgMTAwNjQ0DQotLS0gYS9hcmNo
L3Bvd2VycGMvY29uZmlncy80NHgva2F0bWFpX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBj
L2NvbmZpZ3MvNDR4L2thdG1haV9kZWZjb25maWcNCkBAIC0yOSw3ICsyOSw2IEBAIENPTkZJR19J
UF9QTlBfQk9PVFA9eQ0KIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWci
DQogQ09ORklHX0NPTk5FQ1RPUj15DQogQ09ORklHX01URD15DQotQ09ORklHX01URF9QQVJUSVRJ
T05TPXkNCiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQ0KIENPTkZJR19NVERfT0ZfUEFSVFM9
eQ0KIENPTkZJR19NVERfQ0hBUj15DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
NDR4L3JhaW5pZXJfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L3JhaW5pZXJf
ZGVmY29uZmlnDQppbmRleCAyMWMzM2ZhLi40YjkxYTQ0IDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dl
cnBjL2NvbmZpZ3MvNDR4L3JhaW5pZXJfZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29u
Zmlncy80NHgvcmFpbmllcl9kZWZjb25maWcNCkBAIC0zMCw3ICszMCw2IEBAIENPTkZJR19JUF9Q
TlBfQk9PVFA9eQ0KIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQog
Q09ORklHX0NPTk5FQ1RPUj15DQogQ09ORklHX01URD15DQotQ09ORklHX01URF9QQVJUSVRJT05T
PXkNCiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQ0KIENPTkZJR19NVERfT0ZfUEFSVFM9eQ0K
IENPTkZJR19NVERfQ0hBUj15DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4
L3JlZHdvb2RfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L3JlZHdvb2RfZGVm
Y29uZmlnDQppbmRleCA0ODgwMjgxLi5iNzExM2UxIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBj
L2NvbmZpZ3MvNDR4L3JlZHdvb2RfZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29uZmln
cy80NHgvcmVkd29vZF9kZWZjb25maWcNCkBAIC0zNCw3ICszNCw2IEBAIENPTkZJR19VRVZFTlRf
SEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogQ09ORklHX0NPTk5FQ1RPUj15DQogQ09ORklH
X01URD15DQogQ09ORklHX01URF9DT05DQVQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQog
Q09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05G
SUdfTVREX0NIQVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9zZXF1
b2lhX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC9zZXF1b2lhX2RlZmNvbmZp
Zw0KaW5kZXggYjdhNjUzYi4uOTY0MmQ5OSAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25m
aWdzLzQ0eC9zZXF1b2lhX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4
L3NlcXVvaWFfZGVmY29uZmlnDQpAQCAtMzEsNyArMzEsNiBAQCBDT05GSUdfSVBfUE5QX0JPT1RQ
PXkNCiBDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KIENPTkZJR19D
T05ORUNUT1I9eQ0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09O
RklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdf
TVREX0NIQVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC90YWlzaGFu
X2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC90YWlzaGFuX2RlZmNvbmZpZw0K
aW5kZXggMzBkZTk3Zi4uMDllMzA3NSAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdz
LzQ0eC90YWlzaGFuX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNDR4L3Rh
aXNoYW5fZGVmY29uZmlnDQpAQCAtMjksNyArMjksNiBAQCBDT05GSUdfSVBfUE5QX0JPT1RQPXkN
CiBDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KIENPTkZJR19DT05O
RUNUT1I9eQ0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklH
X01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KIENPTkZJR19NVERfQ0ZJ
PXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvd2FycF9kZWZjb25maWcg
Yi9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvd2FycF9kZWZjb25maWcNCmluZGV4IDEwNWJjNTYu
LjU1MWU1MGEgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy80NHgvd2FycF9kZWZj
b25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzQ0eC93YXJwX2RlZmNvbmZpZw0KQEAg
LTM0LDcgKzM0LDYgQEAgQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIN
CiAjIENPTkZJR19TVEFOREFMT05FIGlzIG5vdCBzZXQNCiAjIENPTkZJR19GSVJNV0FSRV9JTl9L
RVJORUwgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15
DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBD
T05GSUdfTVREX0NIQVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzUyeHgv
Y201MjAwX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzUyeHgvY201MjAwX2RlZmNv
bmZpZw0KaW5kZXggNjliNTdkYS4uNDU1Yzg1NSAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9j
b25maWdzLzUyeHgvY201MjAwX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
NTJ4eC9jbTUyMDBfZGVmY29uZmlnDQpAQCAtMzEsNyArMzEsNiBAQCBDT05GSUdfU1lOX0NPT0tJ
RVM9eQ0KIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogIyBDT05G
SUdfRldfTE9BREVSIGlzIG5vdCBzZXQNCiBDT05GSUdfTVREPXkNCi1DT05GSUdfTVREX1BBUlRJ
VElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15DQogQ09ORklHX01URF9DSEFSPXkN
CiBDT05GSUdfTVREX0JMT0NLPXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy81
Mnh4L21vdGlvbnByb19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy81Mnh4L21vdGlv
bnByb19kZWZjb25maWcNCmluZGV4IDBjN2RlOTYuLmIwMDZmMWIgMTAwNjQ0DQotLS0gYS9hcmNo
L3Bvd2VycGMvY29uZmlncy81Mnh4L21vdGlvbnByb19kZWZjb25maWcNCisrKyBiL2FyY2gvcG93
ZXJwYy9jb25maWdzLzUyeHgvbW90aW9ucHJvX2RlZmNvbmZpZw0KQEAgLTMyLDcgKzMyLDYgQEAg
Q09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiAjIENPTkZJR19GV19M
T0FERVIgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KIENPTkZJR19NVERfQ09OQ0FUPXkNCi1D
T05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15DQogQ09O
RklHX01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bv
d2VycGMvY29uZmlncy81Mnh4L3BjbTAzMF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmln
cy81Mnh4L3BjbTAzMF9kZWZjb25maWcNCmluZGV4IDIyZTcxOTUuLmRlZGU5YzggMTAwNjQ0DQot
LS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy81Mnh4L3BjbTAzMF9kZWZjb25maWcNCisrKyBiL2Fy
Y2gvcG93ZXJwYy9jb25maWdzLzUyeHgvcGNtMDMwX2RlZmNvbmZpZw0KQEAgLTQ1LDcgKzQ1LDYg
QEAgQ09ORklHX0lQX1BOUF9CT09UUD15DQogQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3Ni
aW4vaG90cGx1ZyINCiAjIENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9
eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkN
CiBDT05GSUdfTVREX0NIQVI9eQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2Fy
Y2gvcG93ZXJwYy9jb25maWdzLzUyeHgvdHFtNTIwMF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMv
Y29uZmlncy81Mnh4L3RxbTUyMDBfZGVmY29uZmlnDQppbmRleCA3MTZhMzdiLi40N2U1YjI1IDEw
MDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNTJ4eC90cW01MjAwX2RlZmNvbmZpZw0K
KysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvNTJ4eC90cW01MjAwX2RlZmNvbmZpZw0KQEAgLTM2
LDcgKzM2LDYgQEAgQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiAj
IENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KIENPTkZJR19NVERf
Q09OQ0FUPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9Q
QVJUUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15DQogQ09ORklHX01URF9DSEFSPXkNCmRpZmYg
LS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L2FzcDgzNDdfZGVmY29uZmlnIGIvYXJj
aC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9hc3A4MzQ3X2RlZmNvbmZpZw0KaW5kZXggZDI3NjJkOS4u
OTg1Zjk1YyAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvYXNwODM0N19k
ZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvYXNwODM0N19kZWZjb25m
aWcNCkBAIC0zMiw3ICszMiw2IEBAIENPTkZJR19TWU5fQ09PS0lFUz15DQogQ09ORklHX1VFVkVO
VF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiAjIENPTkZJR19GV19MT0FERVIgaXMgbm90
IHNldA0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01U
RF9SRURCT09UX1BBUlRTPXkNCiBDT05GSUdfTVREX1JFREJPT1RfUEFSVFNfVU5BTExPQ0FURUQ9
eQ0KIENPTkZJR19NVERfT0ZfUEFSVFM9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25m
aWdzLzgzeHgvbXBjODMxM19yZGJfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4
eC9tcGM4MzEzX3JkYl9kZWZjb25maWcNCmluZGV4IGU0YWQyZTIuLjBiNzNiN2YgMTAwNjQ0DQot
LS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMTNfcmRiX2RlZmNvbmZpZw0KKysr
IGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzEzX3JkYl9kZWZjb25maWcNCkBAIC0z
MCw3ICszMCw2IEBAIENPTkZJR19TWU5fQ09PS0lFUz15DQogQ09ORklHX1VFVkVOVF9IRUxQRVJf
UEFUSD0iL3NiaW4vaG90cGx1ZyINCiAjIENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldA0KIENP
TkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01URF9PRl9QQVJU
Uz15DQogQ09ORklHX01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkNCmRpZmYgLS1naXQg
YS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMTVfcmRiX2RlZmNvbmZpZyBiL2FyY2gv
cG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJfZGVmY29uZmlnDQppbmRleCAzNGZmNTY4
Li45N2FjM2I5IDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzE1
X3JkYl9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9y
ZGJfZGVmY29uZmlnDQpAQCAtMzAsNyArMzAsNiBAQCBDT05GSUdfU1lOX0NPT0tJRVM9eQ0KIENP
TkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogIyBDT05GSUdfRldfTE9B
REVSIGlzIG5vdCBzZXQNCiBDT05GSUdfTVREPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0K
IENPTkZJR19NVERfQ0hBUj15DQogQ09ORklHX01URF9CTE9DSz15DQogQ09ORklHX01URF9DRkk9
eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM2eF9tZHNfZGVm
Y29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzZ4X21kc19kZWZjb25maWcN
CmluZGV4IDEwYjVjNGMuLjA1NzEwYmIgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmln
cy84M3h4L21wYzgzNnhfbWRzX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
ODN4eC9tcGM4MzZ4X21kc19kZWZjb25maWcNCkBAIC0zMSw3ICszMSw2IEBAIENPTkZJR19TWU5f
Q09PS0lFUz15DQogQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiAj
IENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERf
UEFSVElUSU9OUz15DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX0NI
QVI9eQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25m
aWdzLzgzeHgvbXBjODM2eF9yZGtfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4
eC9tcGM4MzZ4X3Jka19kZWZjb25maWcNCmluZGV4IDQ1OTI1ZDcuLjA1NDBkNjcgMTAwNjQ0DQot
LS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNnhfcmRrX2RlZmNvbmZpZw0KKysr
IGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzZ4X3Jka19kZWZjb25maWcNCkBAIC0y
OSw3ICsyOSw2IEBAIENPTkZJR19TWU5fQ09PS0lFUz15DQogIyBDT05GSUdfSVBWNiBpcyBub3Qg
c2V0DQogQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBDT05GSUdf
TVREPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJU
Uz15DQogQ09ORklHX01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkNCmRpZmYgLS1naXQg
YS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L3NiYzgzNHhfZGVmY29uZmlnIGIvYXJjaC9wb3dl
cnBjL2NvbmZpZ3MvODN4eC9zYmM4MzR4X2RlZmNvbmZpZw0KaW5kZXggNmQ2NDYzZi4uYTNiY2Rh
NiAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvc2JjODM0eF9kZWZjb25m
aWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvc2JjODM0eF9kZWZjb25maWcNCkBA
IC0zMSw3ICszMSw2IEBAIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWci
DQogIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQNCiBDT05GSUdfTVREPXkNCiBDT05GSUdf
TVREX0NPTkNBVD15DQotQ09ORklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX0NNRExJ
TkVfUEFSVFM9eQ0KIENPTkZJR19NVERfT0ZfUEFSVFM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQpk
aWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9rc2k4NTYwX2RlZmNvbmZpZyBi
L2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgva3NpODU2MF9kZWZjb25maWcNCmluZGV4IDhmN2Mx
MDYuLmFlZTBkMTcgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2tzaTg1
NjBfZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2tzaTg1NjBfZGVm
Y29uZmlnDQpAQCAtMjgsNyArMjgsNiBAQCBDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jp
bi9ob3RwbHVnIg0KICMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0DQogQ09ORklHX01URD15
DQogQ09ORklHX01URF9DT05DQVQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklH
X01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkNCiBDT05GSUdfTVREX0NGST15DQpkaWZm
IC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9wcGE4NTQ4X2RlZmNvbmZpZyBiL2Fy
Y2gvcG93ZXJwYy9jb25maWdzLzg1eHgvcHBhODU0OF9kZWZjb25maWcNCmluZGV4IGExMTMzN2Qu
LmU4MGJiOWIgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3BwYTg1NDhf
ZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3BwYTg1NDhfZGVmY29u
ZmlnDQpAQCAtNDQsNyArNDQsNiBAQCBDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15DQogQ09ORklH
X01URF9DSEFSPXkNCiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQ0KIENPTkZJR19NVERfQ09O
Q0FUPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfUEhZU01BUF9PRj15
DQogDQogQ09ORklHX0kyQz15DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4
eC9zb2NyYXRlc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3NvY3JhdGVz
X2RlZmNvbmZpZw0KaW5kZXggNzc1MDZiNS4uZTUxNDc0OCAxMDA2NDQNCi0tLSBhL2FyY2gvcG93
ZXJwYy9jb25maWdzLzg1eHgvc29jcmF0ZXNfZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMv
Y29uZmlncy84NXh4L3NvY3JhdGVzX2RlZmNvbmZpZw0KQEAgLTMyLDcgKzMyLDYgQEAgQ09ORklH
X0NBTl9SQVc9eQ0KIENPTkZJR19DQU5fQkNNPXkNCiBDT05GSUdfTVREPXkNCiBDT05GSUdfTVRE
X0NPTkNBVD15DQotQ09ORklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX0NNRExJTkVf
UEFSVFM9eQ0KIENPTkZJR19NVERfT0ZfUEFSVFM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQpkaWZm
IC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTQwX2RlZmNvbmZpZyBiL2Fy
Y2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU0MF9kZWZjb25maWcNCmluZGV4IGRkY2I5ZjMu
LjVhODAwZTYgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDBf
ZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDBfZGVmY29u
ZmlnDQpAQCAtMjYsNyArMjYsNiBAQCBDT05GSUdfU1lOX0NPT0tJRVM9eQ0KICMgQ09ORklHX0lQ
VjYgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KIENPTkZJR19NVERfQ09OQ0FUPXkNCi1DT05G
SUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15DQogQ09ORklH
X01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy
cGMvY29uZmlncy84NXh4L3RxbTg1NDFfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
ODV4eC90cW04NTQxX2RlZmNvbmZpZw0KaW5kZXggOTgxYWJkNi4uMmQ5MzY2OSAxMDA2NDQNCi0t
LSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU0MV9kZWZjb25maWcNCisrKyBiL2Fy
Y2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU0MV9kZWZjb25maWcNCkBAIC0yNiw3ICsyNiw2
IEBAIENPTkZJR19TWU5fQ09PS0lFUz15DQogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0DQogQ09O
RklHX01URD15DQogQ09ORklHX01URF9DT05DQVQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15
DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KIENPTkZJ
R19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFt
ODU0OF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDhfZGVmY29u
ZmlnDQppbmRleCAzN2IzZDcyLi5jZThhNjdlIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2Nv
bmZpZ3MvODV4eC90cW04NTQ4X2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
ODV4eC90cW04NTQ4X2RlZmNvbmZpZw0KQEAgLTM0LDcgKzM0LDYgQEAgQ09ORklHX1NZTl9DT09L
SUVTPXkNCiBDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KICMgQ09O
RklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0DQogQ09ORklHX01URD15DQotQ09ORklHX01URF9QQVJU
SVRJT05TPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KIENP
TkZJR19NVERfQkxLREVWUz15DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4
eC90cW04NTU1X2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU1NV9k
ZWZjb25maWcNCmluZGV4IDM1OTNiMzIuLmE0ZTEyOTcgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2Vy
cGMvY29uZmlncy84NXh4L3RxbTg1NTVfZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29u
Zmlncy84NXh4L3RxbTg1NTVfZGVmY29uZmlnDQpAQCAtMjYsNyArMjYsNiBAQCBDT05GSUdfU1lO
X0NPT0tJRVM9eQ0KICMgQ09ORklHX0lQVjYgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KIENP
TkZJR19NVERfQ09OQ0FUPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERf
Q01ETElORV9QQVJUUz15DQogQ09ORklHX01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkN
CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NjBfZGVmY29uZmln
IGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTYwX2RlZmNvbmZpZw0KaW5kZXggZGU0
MTNhYy4uMzQxYWJlMSAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFt
ODU2MF9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU2MF9k
ZWZjb25maWcNCkBAIC0yNiw3ICsyNiw2IEBAIENPTkZJR19TWU5fQ09PS0lFUz15DQogIyBDT05G
SUdfSVBWNiBpcyBub3Qgc2V0DQogQ09ORklHX01URD15DQogQ09ORklHX01URF9DT05DQVQ9eQ0K
LUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBD
T05GSUdfTVREX0NIQVI9eQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2FyY2gv
cG93ZXJwYy9jb25maWdzLzg1eHgveGVzX21wYzg1eHhfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBj
L2NvbmZpZ3MvODV4eC94ZXNfbXBjODV4eF9kZWZjb25maWcNCmluZGV4IDFjZDZmY2IuLjA3YmI4
MWQgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3hlc19tcGM4NXh4X2Rl
ZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC94ZXNfbXBjODV4eF9kZWZj
b25maWcNCkBAIC02NSw3ICs2NSw2IEBAIENPTkZJR19BUlBEPXkNCiBDT05GSUdfSVBWNj15DQog
Q09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBDT05GSUdfTVREPXkN
Ci1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUz15DQog
Q09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCmRpZmYg
LS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84Nnh4L2dlZl9wcGM5YV9kZWZjb25maWcgYi9h
cmNoL3Bvd2VycGMvY29uZmlncy84Nnh4L2dlZl9wcGM5YV9kZWZjb25maWcNCmluZGV4IGYyZjY3
MzQuLmU1YTY0ODEgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84Nnh4L2dlZl9w
cGM5YV9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvZ2VmX3BwYzlh
X2RlZmNvbmZpZw0KQEAgLTcwLDcgKzcwLDYgQEAgQ09ORklHX05FVF9QS1RHRU49bQ0KIENPTkZJ
R19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogQ09ORklHX01URD15DQogQ09O
RklHX01URF9DT05DQVQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01URF9P
Rl9QQVJUUz15DQogQ09ORklHX01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkNCmRpZmYg
LS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84Nnh4L2dlZl9zYmMzMTBfZGVmY29uZmlnIGIv
YXJjaC9wb3dlcnBjL2NvbmZpZ3MvODZ4eC9nZWZfc2JjMzEwX2RlZmNvbmZpZw0KaW5kZXggYmU3
MzIxOS4uODMxN2I2MCAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvZ2Vm
X3NiYzMxMF9kZWZjb25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvZ2VmX3Ni
YzMxMF9kZWZjb25maWcNCkBAIC03MCw3ICs3MCw2IEBAIENPTkZJR19ORVRfUEtUR0VOPW0NCiBD
T05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KIENPTkZJR19NVEQ9eQ0K
IENPTkZJR19NVERfQ09OQ0FUPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19N
VERfT0ZfUEFSVFM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQogQ09ORklHX01URF9CTE9DSz15DQpk
aWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODZ4eC9nZWZfc2JjNjEwX2RlZmNvbmZp
ZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvZ2VmX3NiYzYxMF9kZWZjb25maWcNCmluZGV4
IGIzZTJiMTAuLjEyNGQ2NmYgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84Nnh4
L2dlZl9zYmM2MTBfZGVmY29uZmlnDQorKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84Nnh4L2dl
Zl9zYmM2MTBfZGVmY29uZmlnDQpAQCAtMTIzLDcgKzEyMyw2IEBAIENPTkZJR19VRVZFTlRfSEVM
UEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQN
CiBDT05GSUdfTVREPXkNCiBDT05GSUdfTVREX0NPTkNBVD15DQotQ09ORklHX01URF9QQVJUSVRJ
T05TPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KIENPTkZJ
R19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvbXBj
ODYxMF9ocGNkX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg2eHgvbXBjODYxMF9o
cGNkX2RlZmNvbmZpZw0KaW5kZXggYzA5NTk4Yi4uYmNiZTc0NyAxMDA2NDQNCi0tLSBhL2FyY2gv
cG93ZXJwYy9jb25maWdzLzg2eHgvbXBjODYxMF9ocGNkX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9w
b3dlcnBjL2NvbmZpZ3MvODZ4eC9tcGM4NjEwX2hwY2RfZGVmY29uZmlnDQpAQCAtNDEsNyArNDEs
NiBAQCBDT05GSUdfSVBfUE5QX1JBUlA9eQ0KIENPTkZJR19JUFY2PXkNCiBDT05GSUdfVUVWRU5U
X0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERf
UEFSVElUSU9OUz15DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX0NI
QVI9eQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25m
aWdzLzg2eHgvc2JjODY0MWRfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODZ4eC9z
YmM4NjQxZF9kZWZjb25maWcNCmluZGV4IDFhNjJiYWYuLjFlMTUxNTkgMTAwNjQ0DQotLS0gYS9h
cmNoL3Bvd2VycGMvY29uZmlncy84Nnh4L3NiYzg2NDFkX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9w
b3dlcnBjL2NvbmZpZ3MvODZ4eC9zYmM4NjQxZF9kZWZjb25maWcNCkBAIC0xMjAsNyArMTIwLDYg
QEAgQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiAjIENPTkZJR19G
V19MT0FERVIgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KIENPTkZJR19NVERfQ09OQ0FUPXkN
Ci1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQogQ09ORklHX01U
RF9CTE9DSz15DQogQ09ORklHX01URF9DRkk9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9j
b25maWdzL2Mya19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9jMmtfZGVmY29uZmln
DQppbmRleCA2NzFhOGY5Li5jNjlmNjE2IDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZp
Z3MvYzJrX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvYzJrX2RlZmNvbmZp
Zw0KQEAgLTE0OSw3ICsxNDksNiBAQCBDT05GSUdfQlRfSENJVkhDST1tDQogQ09ORklHX1VFVkVO
VF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBDT05GSUdfTVREPXkNCiBDT05GSUdfTVRE
X0NPTkNBVD1tDQotQ09ORklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX09GX1BBUlRT
PXkNCiBDT05GSUdfTVREX0NIQVI9bQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBh
L2FyY2gvcG93ZXJwYy9jb25maWdzL2NvcmVuZXQ2NF9zbXBfZGVmY29uZmlnIGIvYXJjaC9wb3dl
cnBjL2NvbmZpZ3MvY29yZW5ldDY0X3NtcF9kZWZjb25maWcNCmluZGV4IDYzNTA4ZGQuLmU2Yzhk
MjAgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9jb3JlbmV0NjRfc21wX2RlZmNv
bmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvY29yZW5ldDY0X3NtcF9kZWZjb25maWcN
CkBAIC02MCw3ICs2MCw2IEBAIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBs
dWciDQogQ09ORklHX0RFVlRNUEZTPXkNCiBDT05GSUdfREVWVE1QRlNfTU9VTlQ9eQ0KIENPTkZJ
R19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15
DQogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KZGlmZiAt
LWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZyBiL2FyY2gv
cG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZw0KaW5kZXggOGE4NzRiOS4uMzUz
NDM1MiAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNv
bmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbGlua3N0YXRpb25fZGVmY29uZmlnDQpA
QCAtNTksNyArNTksNiBAQCBDT05GSUdfSVBfTkZfQVJQX01BTkdMRT1tDQogQ09ORklHX1VFVkVO
VF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBDT05GSUdfTVREPXkNCiBDT05GSUdfTVRE
X0NPTkNBVD15DQotQ09ORklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX0NNRExJTkVf
UEFSVFM9eQ0KIENPTkZJR19NVERfT0ZfUEFSVFM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQpkaWZm
IC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODV4eF9kZWZjb25maWcgYi9hcmNoL3Bv
d2VycGMvY29uZmlncy9tcGM4NXh4X2RlZmNvbmZpZw0KaW5kZXggZDJlMGZhYi4uNmMxM2E4NSAx
MDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVmY29uZmlnDQorKysg
Yi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NXh4X2RlZmNvbmZpZw0KQEAgLTgxLDcgKzgxLDYg
QEAgQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBDT05GSUdfREVW
VE1QRlM9eQ0KIENPTkZJR19ERVZUTVBGU19NT1VOVD15DQogQ09ORklHX01URD15DQotQ09ORklH
X01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVREX0NN
RExJTkVfUEFSVFM9eQ0KIENPTkZJR19NVERfQ0hBUj15DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl
cnBjL2NvbmZpZ3MvbXBjODV4eF9zbXBfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
bXBjODV4eF9zbXBfZGVmY29uZmlnDQppbmRleCA0Y2I3YjU5Li4wODU1OGZmIDEwMDY0NA0KLS0t
IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODV4eF9zbXBfZGVmY29uZmlnDQorKysgYi9hcmNo
L3Bvd2VycGMvY29uZmlncy9tcGM4NXh4X3NtcF9kZWZjb25maWcNCkBAIC04NCw3ICs4NCw2IEBA
IENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciDQogQ09ORklHX0RFVlRN
UEZTPXkNCiBDT05GSUdfREVWVE1QRlNfTU9VTlQ9eQ0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19N
VERfUEFSVElUSU9OUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15DQogQ09ORklHX01URF9DTURM
SU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX0NIQVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJw
Yy9jb25maWdzL3BwYzQweF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM0MHhf
ZGVmY29uZmlnDQppbmRleCAxZWIxOWFjLi41MjkwOGM3IDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dl
cnBjL2NvbmZpZ3MvcHBjNDB4X2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mv
cHBjNDB4X2RlZmNvbmZpZw0KQEAgLTMzLDcgKzMzLDYgQEAgQ09ORklHX0lQX1BOUF9CT09UUD15
DQogQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiBDT05GSUdfQ09O
TkVDVE9SPXkNCiBDT05GSUdfTVREPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJ
R19NVERfQ01ETElORV9QQVJUUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15DQogQ09ORklHX01U
RF9DSEFSPXkNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM0NHhfZGVmY29u
ZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNDR4X2RlZmNvbmZpZw0KaW5kZXggM2I5OGQ3
My4uY2NmNjZiOSAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BwYzQ0eF9kZWZj
b25maWcNCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BwYzQ0eF9kZWZjb25maWcNCkBAIC00
NCw3ICs0NCw2IEBAIENPTkZJR19CUklER0U9bQ0KIENPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9
Ii9zYmluL2hvdHBsdWciDQogQ09ORklHX0NPTk5FQ1RPUj15DQogQ09ORklHX01URD15DQotQ09O
RklHX01URF9QQVJUSVRJT05TPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVRE
X0NIQVI9eQ0KIENPTkZJR19NVERfQkxPQ0s9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9j
b25maWdzL3BycG1jMjgwMF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wcnBtYzI4
MDBfZGVmY29uZmlnDQppbmRleCBjZDgwZmI2Li5mODRlYTIxIDEwMDY0NA0KLS0tIGEvYXJjaC9w
b3dlcnBjL2NvbmZpZ3MvcHJwbWMyODAwX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2Nv
bmZpZ3MvcHJwbWMyODAwX2RlZmNvbmZpZw0KQEAgLTMyLDcgKzMyLDYgQEAgQ09ORklHX1NZTl9D
T09LSUVTPXkNCiBDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIg0KIENP
TkZJR19NVEQ9eQ0KIENPTkZJR19NVERfQ09OQ0FUPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9
eQ0KIENPTkZJR19NVERfQ0hBUj15DQogQ09ORklHX01URF9CTE9DSz15DQogQ09ORklHX01URF9D
Rkk9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3N0b3JjZW50ZXJfZGVmY29u
ZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc3RvcmNlbnRlcl9kZWZjb25maWcNCmluZGV4IGVi
YjJhNjYuLmJhMzljNzggMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9zdG9yY2Vu
dGVyX2RlZmNvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc3RvcmNlbnRlcl9kZWZj
b25maWcNCkBAIC0zMSw3ICszMSw2IEBAIENPTkZJR19JUF9QTlBfREhDUD15DQogQ09ORklHX1VF
VkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiAjIENPTkZJR19GV19MT0FERVIgaXMg
bm90IHNldA0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfUEFSVElUSU9OUz15DQogQ09ORklH
X01URF9DTURMSU5FX1BBUlRTPXkNCiBDT05GSUdfTVREX09GX1BBUlRTPXkNCiBDT05GSUdfTVRE
X0NIQVI9eQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3RxbTh4eF9kZWZjb25m
aWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy90cW04eHhfZGVmY29uZmlnDQppbmRleCA4NjE2ZmRl
Li42MmMzZTczIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvdHFtOHh4X2RlZmNv
bmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvdHFtOHh4X2RlZmNvbmZpZw0KQEAgLTQx
LDcgKzQxLDYgQEAgQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyINCiAj
IENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KIENPTkZJR19NVERf
Q09OQ0FUPXkNCi1DT05GSUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9Q
QVJUUz15DQogQ09ORklHX01URF9PRl9QQVJUUz15DQogQ09ORklHX01URF9DSEFSPXkNCi0tIA0K
MS43LjAuNA0K
^ permalink raw reply
* Re: [PATCH 1/1] powerpc: Increase EEH recovery timeout for SR-IOV
From: Gavin Shan @ 2013-11-27 1:53 UTC (permalink / raw)
To: Brian King; +Cc: linuxppc-dev, shangw
In-Reply-To: <201311252227.rAPMRtC2018812@d03av05.boulder.ibm.com>
On Mon, Nov 25, 2013 at 04:27:54PM -0600, Brian King wrote:
>
>In order to support concurrent adapter firmware download
>to SR-IOV adapters on pSeries, each VF will see an EEH event
>where the slot will remain in the unavailable state for
>the duration of the adapter firmware update, which can take
>as long as 5 minutes. Extend the EEH recovery timeout to
>account for this.
>
>Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Acked-by: Gavin Shan <shangw@linux.vnet.ibm.com>
>---
>
> arch/powerpc/kernel/eeh.c | 2 +-
> arch/powerpc/kernel/eeh_driver.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
>diff -puN arch/powerpc/kernel/eeh.c~eeh_sriov_vf_delay arch/powerpc/kernel/eeh.c
>--- linux/arch/powerpc/kernel/eeh.c~eeh_sriov_vf_delay 2013-11-25 16:12:26.000000000 -0600
>+++ linux-bjking1/arch/powerpc/kernel/eeh.c 2013-11-25 16:12:26.000000000 -0600
>@@ -84,7 +84,7 @@
> #define EEH_MAX_FAILS 2100000
>
> /* Time to wait for a PCI slot to report status, in milliseconds */
>-#define PCI_BUS_RESET_WAIT_MSEC (60*1000)
>+#define PCI_BUS_RESET_WAIT_MSEC (5*60*1000)
>
> /* Platform dependent EEH operations */
> struct eeh_ops *eeh_ops = NULL;
>diff -puN arch/powerpc/kernel/eeh_driver.c~eeh_sriov_vf_delay arch/powerpc/kernel/eeh_driver.c
>--- linux/arch/powerpc/kernel/eeh_driver.c~eeh_sriov_vf_delay 2013-11-25 16:12:26.000000000 -0600
>+++ linux-bjking1/arch/powerpc/kernel/eeh_driver.c 2013-11-25 16:12:26.000000000 -0600
>@@ -468,7 +468,7 @@ static int eeh_reset_device(struct eeh_p
> /* The longest amount of time to wait for a pci device
> * to come back on line, in seconds.
> */
>-#define MAX_WAIT_FOR_RECOVERY 150
>+#define MAX_WAIT_FOR_RECOVERY 300
>
> static void eeh_handle_normal_event(struct eeh_pe *pe)
> {
Thanks,
Gavin
^ permalink raw reply
* [git pull] Please pull powerpc.git merge branch
From: Benjamin Herrenschmidt @ 2013-11-27 2:30 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linuxppc-dev list, Linux Kernel list
Hi Linus !
Here are a few powerpc bug fixes post -rc1. The main thing that caused
problem was that CONFIG_CPU_LITTLE_ENDIAN got turned on with allyesconfig
and such, which is not a very good idea especially since it requires a
newer toolchain than what most people have. So we turned it into a
choice instead that defaults to big endian.
Cheers,
Ben.
The following changes since commit 6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae:
Linux 3.13-rc1 (2013-11-22 11:30:55 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git merge
for you to fetch changes up to 721cb59e9d95eb7f47ec73711ed35ef85e1ea1ca:
powerpc/windfarm: Fix XServe G5 fan control Makefile issue (2013-11-27 11:35:47 +1100)
----------------------------------------------------------------
Adam Borowski (1):
powerpc/85xx: typo in dts: "interupt" (four devices)
Anton Blanchard (1):
powerpc: allyesconfig should not select CONFIG_CPU_LITTLE_ENDIAN
Benjamin Herrenschmidt (2):
Merge remote-tracking branch 'scott/master' into merge
powerpc/windfarm: Fix XServe G5 fan control Makefile issue
Chen Gang (1):
arch/powerpc/kernel: Use %12.12s instead of %12s to avoid memory overflow
Hari Bathini (1):
powerpc/kdump: Adding symbols in vmcoreinfo to facilitate dump filtering
LEROY Christophe (1):
powerpc/8xx: mfspr SPRN_TBRx in lieu of mftb/mftbu is not supported
Michael Neuling (2):
powerpc: Fix error when cross building TAGS & cscope
powerpc/signals: Improved mark VSX not saved with small contexts fix
Scott Wood (1):
powerpc/booke: Only check for hugetlb in flush if vma != NULL
Tiejun Chen (1):
powerpc/corenet64: compile with CONFIG_E{5,6}500_CPU well
arch/powerpc/Makefile | 7 +++++++
arch/powerpc/boot/dts/xcalibur1501.dts | 4 ++--
arch/powerpc/boot/dts/xpedite5301.dts | 4 ++--
arch/powerpc/boot/dts/xpedite5330.dts | 4 ++--
arch/powerpc/boot/dts/xpedite5370.dts | 4 ++--
arch/powerpc/boot/util.S | 14 ++++++++++++++
arch/powerpc/include/asm/pgalloc-64.h | 1 +
arch/powerpc/include/asm/ppc_asm.h | 2 ++
arch/powerpc/include/asm/reg.h | 7 +++++++
arch/powerpc/include/asm/timex.h | 8 ++++++++
arch/powerpc/kernel/machine_kexec.c | 12 ++++++++++++
arch/powerpc/kernel/nvram_64.c | 2 +-
arch/powerpc/kernel/signal_32.c | 16 +++++++---------
arch/powerpc/kernel/signal_64.c | 6 ++++++
arch/powerpc/kernel/vdso32/gettimeofday.S | 6 ++++++
arch/powerpc/mm/hugetlbpage-book3e.c | 3 +--
arch/powerpc/mm/tlb_nohash.c | 2 +-
arch/powerpc/platforms/Kconfig.cputype | 20 +++++++++++++++++---
drivers/macintosh/Makefile | 1 +
19 files changed, 99 insertions(+), 24 deletions(-)
^ permalink raw reply
* Re: [PATCH v2 2/3] powerpc: use the jump label for cpu_has_feature
From: Benjamin Herrenschmidt @ 2013-11-27 2:45 UTC (permalink / raw)
To: Kevin Hao; +Cc: linuxppc
In-Reply-To: <1378100726-32545-3-git-send-email-haokexin@gmail.com>
On Mon, 2013-09-02 at 13:45 +0800, Kevin Hao wrote:
> The cpu features are fixed once the probe of cpu features are done.
> And the function cpu_has_feature() does be used in some hot path.
> The checking of the cpu features for each time of invoking of
> cpu_has_feature() seems suboptimal. This tries to reduce this
> overhead of this check by using jump label. But we can only use
> the jump label for this check only after the execution of
> jump_label_init(), so we introduce another jump label to
> still do the feature check by default before all the cpu
> feature jump labels are initialized.
So I was looking at these and ...
> +static inline int cpu_has_feature(unsigned long feature)
> +{
> + if (CPU_FTRS_ALWAYS & feature)
> + return 1;
> +
> + if (!(CPU_FTRS_POSSIBLE | feature))
> + return 0;
> +
> + if (static_key_false(&cpu_feat_keys_enabled)) {
> + int i = __builtin_ctzl(feature);
> +
> + return static_key_false(&cpu_feat_keys[i]);
> + } else
> + return !!(cur_cpu_spec->cpu_features & feature);
> +}
This is gross :-)
Have you checked the generated code ? I'm worried that we end up hitting
at least 2 branches every time, which might be enough to defeat the
purposes even if they are unconditional in term of performance and
code size...
Cheers,
Ben.
> +#else
> static inline int cpu_has_feature(unsigned long feature)
> {
> return (CPU_FTRS_ALWAYS & feature) ||
> @@ -10,5 +36,6 @@ static inline int cpu_has_feature(unsigned long feature)
> & cur_cpu_spec->cpu_features
> & feature);
> }
> +#endif
>
> #endif /* __ASM_POWERPC_CPUFEATURE_H */
> diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
> index 597d954..50bd216 100644
> --- a/arch/powerpc/kernel/cputable.c
> +++ b/arch/powerpc/kernel/cputable.c
> @@ -21,6 +21,7 @@
> #include <asm/prom.h> /* for PTRRELOC on ARCH=ppc */
> #include <asm/mmu.h>
> #include <asm/setup.h>
> +#include <asm/cpufeatures.h>
>
> struct cpu_spec* cur_cpu_spec = NULL;
> EXPORT_SYMBOL(cur_cpu_spec);
> @@ -2258,3 +2259,25 @@ struct cpu_spec * __init identify_cpu(unsigned long offset, unsigned int pvr)
>
> return NULL;
> }
> +
> +#ifdef CONFIG_JUMP_LABEL
> +struct static_key cpu_feat_keys[MAX_CPU_FEATURES];
> +struct static_key cpu_feat_keys_enabled;
> +
> +static __init int cpu_feat_keys_init(void)
> +{
> + int i;
> +
> + for (i = 0; i < MAX_CPU_FEATURES; i++) {
> + unsigned long f = 1 << i;
> +
> + if (cur_cpu_spec->cpu_features & f)
> + static_key_slow_inc(&cpu_feat_keys[i]);
> + }
> +
> + static_key_slow_inc(&cpu_feat_keys_enabled);
> +
> + return 0;
> +}
> +early_initcall(cpu_feat_keys_init);
> +#endif
^ permalink raw reply
* Custom board with 5200b and xilinx virtex... how to access...
From: neorf3k @ 2013-11-27 9:00 UTC (permalink / raw)
To: Linux Ppc Dev List Dev List
We have a custom board with mpc5200b and a xilinx virtex-4. Where could =
we find some information how to integrate it in your linux 2.6.33?
At the moment we have CS4 mapped on it at the address 0x10020000 and we =
are not able to read/write. Via u-boot we can access CS4...
Thank you
Lorenzo=
^ permalink raw reply
* [PATCH powerpc] Revert c6102609 and replace it with the correct fix for vio dma mask setting
From: Li Zhong @ 2013-11-28 9:22 UTC (permalink / raw)
To: Benjamin Herrenschmidt
Cc: PowerPC email list, Russell King - ARM Linux, Paul Mackerras
In-Reply-To: <1384993347.26969.124.camel@pasglop>
This patch reverts my previous "fix", and replace it with the correct
fix from Russell.
And as Russell pointed out -- dma_set_mask_and_coherent() (and the other
dma_set_mask() functions) are really supposed to be used by drivers
only.
Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
---
arch/powerpc/kernel/vio.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 76a6482..d771778 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -1419,7 +1419,8 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node)
/* needed to ensure proper operation of coherent allocations
* later, in case driver doesn't set it explicitly */
- dma_coerce_mask_and_coherent(&viodev->dev, DMA_BIT_MASK(64));
+ viodev->dev.coherent_dma_mask = DMA_BIT_MASK(64);
+ viodev->dev.dma_mask = &viodev->dev.coherent_dma_mask;
}
/* register with generic device framework */
^ permalink raw reply related
* [PATCH 1/1] kernel code that do not handle NULL return of kmem_cache_zalloc
From: Zhouyi Zhou @ 2013-11-27 10:51 UTC (permalink / raw)
To: Zhouyi Zhou, linux-kernel, linuxppc-dev, kvm-ppc, kvm,
David Woodhouse, Joerg Roedel, Benjamin Herrenschmidt
I do a grep for kmem_cache_zalloc and kmem_cache_alloc
in kernel tree, and find some code do not handle NULL
return of kmem_cache_zalloc correctly
Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn>
---
arch/powerpc/kvm/book3s_32_mmu_host.c | 5 +++++
drivers/iommu/omap-iommu.c | 3 ++-
fs/jffs2/malloc.c | 4 ++++
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kvm/book3s_32_mmu_host.c b/arch/powerpc/kvm/book3s_32_mmu_host.c
index 3a0abd2..5fac89d 100644
--- a/arch/powerpc/kvm/book3s_32_mmu_host.c
+++ b/arch/powerpc/kvm/book3s_32_mmu_host.c
@@ -243,6 +243,11 @@ next_pteg:
/* Now tell our Shadow PTE code about the new page */
pte = kvmppc_mmu_hpte_cache_next(vcpu);
+ if (!pte) {
+ kvm_release_pfn_clean(hpaddr >> PAGE_SHIFT);
+ r = -EAGAIN;
+ goto out;
+ }
dprintk_mmu("KVM: %c%c Map 0x%llx: [%lx] 0x%llx (0x%llx) -> %lx\n",
orig_pte->may_write ? 'w' : '-',
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index bcd78a7..5155714 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -551,7 +551,8 @@ static u32 *iopte_alloc(struct omap_iommu *obj, u32 *iopgd, u32 da)
dev_vdbg(obj->dev, "%s: a new pte:%p\n", __func__, iopte);
} else {
/* We raced, free the reduniovant table */
- iopte_free(iopte);
+ if (iopte)
+ iopte_free(iopte);
}
pte_ready:
diff --git a/fs/jffs2/malloc.c b/fs/jffs2/malloc.c
index 4f47aa2..58e2336 100644
--- a/fs/jffs2/malloc.c
+++ b/fs/jffs2/malloc.c
@@ -287,6 +287,8 @@ struct jffs2_xattr_datum *jffs2_alloc_xattr_datum(void)
{
struct jffs2_xattr_datum *xd;
xd = kmem_cache_zalloc(xattr_datum_cache, GFP_KERNEL);
+ if (!xd)
+ return NULL;
dbg_memalloc("%p\n", xd);
xd->class = RAWNODE_CLASS_XATTR_DATUM;
@@ -305,6 +307,8 @@ struct jffs2_xattr_ref *jffs2_alloc_xattr_ref(void)
{
struct jffs2_xattr_ref *ref;
ref = kmem_cache_zalloc(xattr_ref_cache, GFP_KERNEL);
+ if (!ref)
+ return NULL;
dbg_memalloc("%p\n", ref);
ref->class = RAWNODE_CLASS_XATTR_REF;
--
1.7.10.4
^ permalink raw reply related
* [PATCH] powerpc 8xx: Loading kernels over 8Mbytes without CONFIG_PIN_TLB
From: Christophe Leroy @ 2013-11-27 11:04 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, scottwood
Cc: linuxppc-dev, linux-kernel
Today, the only way to load kernels whose size is greater than 8Mbytes is to
activate CONFIG_PIN_TLB. Otherwise, the physical memory initially mapped is
limited to 8Mbytes. This patch sets up 24 Mbytes of initial memory regardless
of whether CONFIG_PIN_TLB is active or not. It allows to load "big" kernels
(for instance when activating CONFIG_LOCKDEP_SUPPORT) without having
to activate CONFIG_PIN_TLB.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
diff -ur a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -841,11 +841,12 @@
ori r8, r8, MI_BOOTINIT|0x2 /* Inhibit cache -- Cort */
mtspr SPRN_MD_RPN, r8
-#ifdef CONFIG_PIN_TLB
/* Map two more 8M kernel data pages.
*/
+#ifdef CONFIG_PIN_TLB
addi r10, r10, 0x0100
mtspr SPRN_MD_CTR, r10
+#endif
lis r8, KERNELBASE@h /* Create vaddr for TLB */
addis r8, r8, 0x0080 /* Add 8M */
@@ -858,15 +859,16 @@
addis r11, r11, 0x0080 /* Add 8M */
mtspr SPRN_MD_RPN, r11
+#ifdef CONFIG_PIN_TLB
addi r10, r10, 0x0100
mtspr SPRN_MD_CTR, r10
+#endif
addis r8, r8, 0x0080 /* Add 8M */
mtspr SPRN_MD_EPN, r8
mtspr SPRN_MD_TWC, r9
addis r11, r11, 0x0080 /* Add 8M */
mtspr SPRN_MD_RPN, r11
-#endif
/* Since the cache is enabled according to the information we
* just loaded into the TLB, invalidate and enable the caches here.
diff -ur a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -213,12 +213,7 @@
*/
BUG_ON(first_memblock_base != 0);
-#ifdef CONFIG_PIN_TLB
/* 8xx can only access 24MB at the moment */
memblock_set_current_limit(min_t(u64, first_memblock_size, 0x01800000));
-#else
- /* 8xx can only access 8MB at the moment */
- memblock_set_current_limit(min_t(u64, first_memblock_size, 0x00800000));
-#endif
}
#endif /* CONFIG_8xx */
^ permalink raw reply
* RE: [PATCH 0/9 v2] vfio-pci: add support for Freescale IOMMU (PAMU)
From: Bharat Bhushan @ 2013-11-27 16:08 UTC (permalink / raw)
To: Alex Williamson
Cc: linux-pci@vger.kernel.org, agraf@suse.de, Stuart Yoder,
bhelgaas@google.com, iommu@lists.linux-foundation.org, Scott Wood,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
In-Reply-To: <1385397493.2879.557.camel@ul30vt.home>
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWxleCBXaWxsaWFtc29u
IFttYWlsdG86YWxleC53aWxsaWFtc29uQHJlZGhhdC5jb21dDQo+IFNlbnQ6IE1vbmRheSwgTm92
ZW1iZXIgMjUsIDIwMTMgMTA6MDggUE0NCj4gVG86IEJodXNoYW4gQmhhcmF0LVI2NTc3Nw0KPiBD
YzogV29vZCBTY290dC1CMDc0MjE7IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7IGFncmFmQHN1
c2UuZGU7IFlvZGVyIFN0dWFydC0NCj4gQjA4MjQ4OyBpb21tdUBsaXN0cy5saW51eC1mb3VuZGF0
aW9uLm9yZzsgYmhlbGdhYXNAZ29vZ2xlLmNvbTsgbGludXhwcGMtDQo+IGRldkBsaXN0cy5vemxh
YnMub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFU
Q0ggMC85IHYyXSB2ZmlvLXBjaTogYWRkIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBJT01NVSAoUEFN
VSkNCj4gDQo+IE9uIE1vbiwgMjAxMy0xMS0yNSBhdCAwNTozMyArMDAwMCwgQmhhcmF0IEJodXNo
YW4gd3JvdGU6DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBG
cm9tOiBBbGV4IFdpbGxpYW1zb24gW21haWx0bzphbGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbV0N
Cj4gPiA+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgMjIsIDIwMTMgMjozMSBBTQ0KPiA+ID4gVG86
IFdvb2QgU2NvdHQtQjA3NDIxDQo+ID4gPiBDYzogQmh1c2hhbiBCaGFyYXQtUjY1Nzc3OyBsaW51
eC1wY2lAdmdlci5rZXJuZWwub3JnOyBhZ3JhZkBzdXNlLmRlOw0KPiA+ID4gWW9kZXIgU3R1YXJ0
LUIwODI0ODsgaW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmc7DQo+ID4gPiBiaGVsZ2Fh
c0Bnb29nbGUuY29tOyBsaW51eHBwYy0gZGV2QGxpc3RzLm96bGFicy5vcmc7DQo+ID4gPiBsaW51
eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIDAvOSB2
Ml0gdmZpby1wY2k6IGFkZCBzdXBwb3J0IGZvciBGcmVlc2NhbGUNCj4gPiA+IElPTU1VIChQQU1V
KQ0KPiA+ID4NCj4gPiA+IE9uIFRodSwgMjAxMy0xMS0yMSBhdCAxNDo0NyAtMDYwMCwgU2NvdHQg
V29vZCB3cm90ZToNCj4gPiA+ID4gT24gVGh1LCAyMDEzLTExLTIxIGF0IDEzOjQzIC0wNzAwLCBB
bGV4IFdpbGxpYW1zb24gd3JvdGU6DQo+ID4gPiA+ID4gT24gVGh1LCAyMDEzLTExLTIxIGF0IDEx
OjIwICswMDAwLCBCaGFyYXQgQmh1c2hhbiB3cm90ZToNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g
PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+IEZyb206IEFsZXgg
V2lsbGlhbXNvbiBbbWFpbHRvOmFsZXgud2lsbGlhbXNvbkByZWRoYXQuY29tXQ0KPiA+ID4gPiA+
ID4gPiBTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMjEsIDIwMTMgMTI6MTcgQU0NCj4gPiA+ID4g
PiA+ID4gVG86IEJodXNoYW4gQmhhcmF0LVI2NTc3Nw0KPiA+ID4gPiA+ID4gPiBDYzogam9yb0A4
Ynl0ZXMub3JnOyBiaGVsZ2Fhc0Bnb29nbGUuY29tOyBhZ3JhZkBzdXNlLmRlOw0KPiA+ID4gPiA+
ID4gPiBXb29kIFNjb3R0LUIwNzQyMTsgWW9kZXIgU3R1YXJ0LUIwODI0ODsNCj4gPiA+ID4gPiA+
ID4gaW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmc7IGxpbnV4LQ0KPiA+ID4gPiA+ID4g
PiBwY2lAdmdlci5rZXJuZWwub3JnOyBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZzsgbGlu
dXgtDQo+ID4gPiA+ID4gPiA+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IEJodXNoYW4gQmhhcmF0
LVI2NTc3Nw0KPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIDAvOSB2Ml0gdmZpby1w
Y2k6IGFkZCBzdXBwb3J0IGZvcg0KPiA+ID4gPiA+ID4gPiBGcmVlc2NhbGUgSU9NTVUgKFBBTVUp
DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IElzIFZGSU9fSU9NTVVfUEFNVV9HRVRfTVNJ
X0JBTktfQ09VTlQgcGVyIGFwZXJ0dXJlIChpZS4gZWFjaA0KPiA+ID4gPiA+ID4gPiB2ZmlvIHVz
ZXIgaGFzICRDT1VOVCByZWdpb25zIGF0IHRoZWlyIGRpc3Bvc2FsIGV4Y2x1c2l2ZWx5KT8NCj4g
PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBOdW1iZXIgb2YgbXNpLWJhbmsgY291bnQgaXMgc3lzdGVt
IHdpZGUgYW5kIG5vdCBwZXIgYXBlcnR1cmUsDQo+ID4gPiA+ID4gPiBCdXQgd2lsbCBiZQ0KPiA+
ID4gc2V0dGluZyB3aW5kb3dzIGZvciBiYW5rcyBpbiB0aGUgZGV2aWNlIGFwZXJ0dXJlLg0KPiA+
ID4gPiA+ID4gU28gc2F5IGlmIHdlIGFyZSBkaXJlY3QgYXNzaWduaW5nIDIgcGNpIGRldmljZSAo
Ym90aCBoYXZlDQo+ID4gPiA+ID4gPiBkaWZmZXJlbnQgaW9tbXUNCj4gPiA+IGdyb3VwLCBzbyAy
IGFwZXJ0dXJlIGluIGlvbW11KSB0byBWTS4NCj4gPiA+ID4gPiA+IE5vdyBxZW11IGNhbiBtYWtl
IG9ubHkgb25lIGNhbGwgdG8ga25vdyBob3cgbWFueSBtc2ktYmFua3MgYXJlDQo+ID4gPiA+ID4g
PiB0aGVyZSBidXQNCj4gPiA+IGl0IG11c3Qgc2V0IHN1Yi13aW5kb3dzIGZvciBhbGwgYmFua3Mg
Zm9yIGJvdGggcGNpIGRldmljZSBpbiBpdHMNCj4gPiA+IHJlc3BlY3RpdmUgYXBlcnR1cmUuDQo+
ID4gPiA+ID4NCj4gPiA+ID4gPiBJJ20gc3RpbGwgY29uZnVzZWQuICBXaGF0IEkgd2FudCB0byBt
YWtlIHN1cmUgb2YgaXMgdGhhdCB0aGUNCj4gPiA+ID4gPiBiYW5rcyBhcmUgaW5kZXBlbmRlbnQg
cGVyIGFwZXJ0dXJlLiAgRm9yIGluc3RhbmNlLCBpZiB3ZSBoYXZlDQo+ID4gPiA+ID4gdHdvIHNl
cGFyYXRlIHVzZXJzcGFjZSBwcm9jZXNzZXMgb3BlcmF0aW5nIGluZGVwZW5kZW50bHkgYW5kDQo+
ID4gPiA+ID4gdGhleSBib3RoIGNob3NlIHRvIHVzZSBtc2kgYmFuayB6ZXJvIGZvciB0aGVpciBk
ZXZpY2UsIHRoYXQncw0KPiA+ID4gPiA+IGJhbmsgemVybyB3aXRoaW4gZWFjaCBhcGVydHVyZSBh
bmQgZG9lc24ndCBpbnRlcmZlcmUuICBPcg0KPiA+ID4gPiA+IGFub3RoZXIgd2F5IHRvIGFzayBp
cyBjYW4gYSBtYWxpY2lvdXMgdXNlciBpbnRlcmZlcmUgd2l0aCBvdGhlciB1c2VycyBieQ0KPiB1
c2luZyB0aGUgd3JvbmcgYmFuay4NCj4gPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+DQo+ID4gPiA+
IFRoZXkgY2FuIGludGVyZmVyZS4NCj4gPg0KPiA+IFdhbnQgdG8gYmUgc3VyZSBvZiBob3cgdGhl
eSBjYW4gaW50ZXJmZXJlPw0KPiANCj4gV2hhdCBoYXBwZW5zIGlmIG1vcmUgdGhhbiBvbmUgdXNl
ciBzZWxlY3RzIHRoZSBzYW1lIE1TSSBiYW5rPw0KPiBNaW5pbWFsbHksIHdvdWxkbid0IHRoYXQg
cmVzdWx0IGluIHRoZSBJT01NVSBibG9ja2luZyB0cmFuc2FjdGlvbnMgZnJvbSB0aGUNCj4gcHJl
dmlvdXMgdXNlciBvbmNlIHRoZSBuZXcgdXNlciBhY3RpdmF0ZXMgdGhlaXIgbWFwcGluZz8NCg0K
WWVzIGFuZCBubzsgV2l0aCBjdXJyZW50IGltcGxlbWVudGF0aW9uIHllcyBidXQgd2l0aCBhIG1p
bm9yIGNoYW5nZSBuby4gTGF0ZXIgaW4gdGhpcyByZXNwb25zZSBJIHdpbGwgZXhwbGFpbiBob3cu
DQoNCj4gDQo+ID4gPj4gIFdpdGggdGhpcyBoYXJkd2FyZSwgdGhlIG9ubHkgd2F5IHRvIHByZXZl
bnQgdGhhdA0KPiA+ID4gPiBpcyB0byBtYWtlIHN1cmUgdGhhdCBhIGJhbmsgaXMgbm90IHNoYXJl
ZCBieSBtdWx0aXBsZSBwcm90ZWN0aW9uIGNvbnRleHRzLg0KPiA+ID4gPiBGb3Igc29tZSBvZiBv
dXIgdXNlcnMsIHRob3VnaCwgSSBiZWxpZXZlIHByZXZlbnRpbmcgdGhpcyBpcyBsZXNzDQo+ID4g
PiA+IGltcG9ydGFudCB0aGFuIHRoZSBwZXJmb3JtYW5jZSBiZW5lZml0Lg0KPiA+DQo+ID4gU28g
c2hvdWxkIHdlIGxldCB0aGlzIHBhdGNoIHNlcmllcyBpbiB3aXRob3V0IHByb3RlY3Rpb24/DQo+
IA0KPiBOby4NCj4gDQo+ID4gPg0KPiA+ID4gSSB0aGluayB3ZSBuZWVkIHNvbWUgc29ydCBvZiBv
d25lcnNoaXAgbW9kZWwgYXJvdW5kIHRoZSBtc2kgYmFua3MgdGhlbi4NCj4gPiA+IE90aGVyd2lz
ZSB0aGVyZSdzIG5vdGhpbmcgcHJldmVudGluZyBhbm90aGVyIHVzZXJzcGFjZSBmcm9tDQo+ID4g
PiBhdHRlbXB0aW5nIGFuIE1TSSBiYXNlZCBhdHRhY2sgb24gb3RoZXIgdXNlcnMsIG9yIHBlcmhh
cHMgZXZlbiBvbg0KPiA+ID4gdGhlIGhvc3QuICBWRklPIGNhbid0IGFsbG93IHRoYXQuICBUaGFu
a3MsDQo+ID4NCj4gPiBXZSBoYXZlIHZlcnkgZmV3ICgzIE1TSSBiYW5rIG9uIG1vc3Qgb2YgY2hp
cHMpLCBzbyB3ZSBjYW4gbm90IGFzc2lnbg0KPiA+IG9uZSB0byBlYWNoIHVzZXJzcGFjZS4gV2hh
dCB3ZSBjYW4gZG8gaXMgaG9zdCBhbmQgdXNlcnNwYWNlIGRvZXMgbm90DQo+ID4gc2hhcmUgYSBN
U0kgYmFuayB3aGlsZSB1c2Vyc3BhY2Ugd2lsbCBzaGFyZSBhIE1TSSBiYW5rLg0KPiANCj4gVGhl
biB5b3UgcHJvYmFibHkgbmVlZCBWRklPIHRvICJvd24iIHRoZSBNU0kgYmFuayBhbmQgcHJvZ3Jh
bSBkZXZpY2VzIGludG8gaXQNCj4gcmF0aGVyIHRoYW4gZXhwb3NpbmcgdGhlIE1TSSBiYW5rcyB0
byB1c2Vyc3BhY2UgdG8gbGV0IHRoZW0gaGF2ZSBkaXJlY3QgYWNjZXNzLg0KDQpPdmVyYWxsIGlk
ZWEgb2YgZXhwb3NpbmcgdGhlIGRldGFpbHMgb2YgbXNpIHJlZ2lvbnMgdG8gdXNlcnNwYWNlIGFy
ZQ0KIDEpIFVzZXIgc3BhY2UgY2FuIGRlZmluZSB0aGUgYXBlcnR1cmUgc2l6ZSB0byBmaXQgTVNJ
IG1hcHBpbmcgaW4gSU9NTVUuDQogMikgc2V0dXAgaW92YSBmb3IgYSBNU0kgYmFua3M7IHdoaWNo
IGlzIGp1c3QgYWZ0ZXIgZ3Vlc3QgbWVtb3J5LiANCg0KQnV0IGN1cnJlbnRseSB3ZSBleHBvc2Ug
dGhlICJzaXplIiBhbmQgImFkZHJlc3MiIG9mIE1TSSBiYW5rcywgcGFzc2luZyBhZGRyZXNzIGlz
IG9mIG5vIHVzZSBhbmQgY2FuIGJlIHByb2JsZW1hdGljLg0KSWYgd2UganVzdCBwcm92aWRlIHRo
ZSBzaXplIG9mIE1TSSBiYW5rIHRvIHVzZXJzcGFjZSB0aGVuIHVzZXJzcGFjZSBjYW5ub3QgZG8g
YW55dGhpbmcgd3JvbmcuDQoNCldoaWxlIGl0IGlzIHN0aWxsIHRoZSByZXNwb25zaWJpbGl0eSBv
ZiBob3N0IChNU0krVkZJTykgdG8gY29tcG9zZSBNU0ktYWRkcmVzcyBhbmQgTVNJLWRhdGE7IHNv
IEkgdGhpbmsgdGhpcyBzaG91bGQgbG9vayBmaW5lLg0KDQo+IFRoYW5rcywNCj4gDQo+IEFsZXgN
Cj4gDQoNCg==
^ permalink raw reply
* Re: [PATCH v4] KVM: PPC: vfio kvm device: support spapr tce
From: Alex Williamson @ 2013-11-27 20:43 UTC (permalink / raw)
To: Alexey Kardashevskiy; +Cc: kvm-ppc, linuxppc-dev, linux-kernel, kvm
In-Reply-To: <1385369342-24423-1-git-send-email-aik@ozlabs.ru>
On Mon, 2013-11-25 at 19:49 +1100, Alexey Kardashevskiy wrote:
> In addition to the external VFIO user API, a VFIO KVM device
> has been introduced recently.
>
> sPAPR TCE IOMMU is para-virtualized and the guest does map/unmap
> via hypercalls which take a logical bus id (LIOBN) as a target IOMMU
> identifier. LIOBNs are made up and linked to IOMMU groups by the user
> space. In order to accelerate IOMMU operations in the KVM, we need
> to tell KVM the information about LIOBN-to-group mapping.
>
> For that, a new KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE_LIOBN parameter
> is added. It accepts a pair of a VFIO group fd and LIOBN.
>
> This also adds a new kvm_vfio_find_group_by_liobn() function which
> receives kvm struct, LIOBN and a callback. As it increases the IOMMU
> group use counter, the KVMr is required to pass a callback which
> called when the VFIO group is about to be removed VFIO-KVM tracking so
> the KVM is able to call iommu_group_put() to release the IOMMU group.
>
> The KVM uses kvm_vfio_find_group_by_liobn() once per KVM run and caches
> the result in kvm_arch. iommu_group_put() for all groups will be called
> when KVM finishes (in the SPAPR TCE in KVM enablement patch).
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
> Changes:
> v4:
> * fixed few bugs
> * changed kvm_vfio_find_group_by_liobn() to return informative errors
>
> v3:
> * total rework
> * added a release callback into kvm_vfio_find_group_by_liobn so now
> the user of the API can get a notification if the group is about to
> disappear
> ---
> Documentation/virtual/kvm/devices/vfio.txt | 19 ++++-
> arch/powerpc/kvm/Kconfig | 1 +
> arch/powerpc/kvm/Makefile | 3 +
> include/linux/kvm_host.h | 18 +++++
> include/uapi/linux/kvm.h | 7 ++
> virt/kvm/vfio.c | 116 ++++++++++++++++++++++++++++-
> 6 files changed, 161 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/virtual/kvm/devices/vfio.txt b/Documentation/virtual/kvm/devices/vfio.txt
> index ef51740..7ecb3b2 100644
> --- a/Documentation/virtual/kvm/devices/vfio.txt
> +++ b/Documentation/virtual/kvm/devices/vfio.txt
> @@ -16,7 +16,22 @@ Groups:
>
> KVM_DEV_VFIO_GROUP attributes:
> KVM_DEV_VFIO_GROUP_ADD: Add a VFIO group to VFIO-KVM device tracking
> + kvm_device_attr.addr points to an int32_t file descriptor
> + for the VFIO group.
> +
> KVM_DEV_VFIO_GROUP_DEL: Remove a VFIO group from VFIO-KVM device tracking
> + kvm_device_attr.addr points to an int32_t file descriptor
> + for the VFIO group.
> +
> + KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE_LIOBN: sets a liobn for a VFIO group
> + kvm_device_attr.addr points to a struct:
> + struct kvm_vfio_spapr_tce_liobn {
> + __u32 argsz;
> + __u32 fd;
__s32 per the definition below
> + __u32 liobn;
> + };
> + where
> + @argsz is a struct size;
> + @fd is a file descriptor for a VFIO group;
> + @liobn is a logical bus id to be associated with the group.
>
> -For each, kvm_device_attr.addr points to an int32_t file descriptor
> -for the VFIO group.
> diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig
> index 9a50d82..f463958 100644
> --- a/arch/powerpc/kvm/Kconfig
> +++ b/arch/powerpc/kvm/Kconfig
> @@ -60,6 +60,7 @@ config KVM_BOOK3S_64
> select KVM_BOOK3S_64_HANDLER
> select KVM
> select SPAPR_TCE_IOMMU if IOMMU_SUPPORT
> + select KVM_VFIO
> ---help---
> Support running unmodified book3s_64 and book3s_32 guest kernels
> in virtual machines on book3s_64 host processors.
> diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile
> index 6646c95..2438d2e 100644
> --- a/arch/powerpc/kvm/Makefile
> +++ b/arch/powerpc/kvm/Makefile
> @@ -87,6 +87,9 @@ kvm-book3s_64-builtin-objs-$(CONFIG_KVM_BOOK3S_64_HV) := \
> kvm-book3s_64-objs-$(CONFIG_KVM_XICS) += \
> book3s_xics.o
>
> +kvm-book3s_64-objs-$(CONFIG_KVM_VFIO) += \
> + $(KVM)/vfio.o \
> +
> kvm-book3s_64-module-objs := \
> $(KVM)/kvm_main.o \
> $(KVM)/eventfd.o \
> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
> index 88ff96a..1d2ad5e 100644
> --- a/include/linux/kvm_host.h
> +++ b/include/linux/kvm_host.h
> @@ -1112,5 +1112,23 @@ static inline bool kvm_vcpu_eligible_for_directed_yield(struct kvm_vcpu *vcpu)
> }
>
> #endif /* CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT */
> +
> +typedef void (*kvm_vfio_release_group_callback)(struct kvm *kvm,
> + unsigned long liobn);
Seems like a bit of namespace pollution that this is named generically
but is specific to spapr/liobn. Is this ever needed w/o
CONFIG_SPAPR_TCE_IOMMU?
> +#if defined(CONFIG_KVM_VFIO) && defined(CONFIG_SPAPR_TCE_IOMMU)
> +
> +extern struct iommu_group *kvm_vfio_find_group_by_liobn(struct kvm *kvm,
> + unsigned long liobn, kvm_vfio_release_group_callback cb);
> +
> +#else
> +
> +static inline struct iommu_group *kvm_vfio_find_group_by_liobn(struct kvm *kvm,
> + unsigned long liobn, ikvm_vfio_release_group_callback cb)
> +{
> + return NULL;
The real function returns ERR_PTR(-errno) now, this should too.
> +}
> +#endif /* CONFIG_KVM_VFIO && CONFIG_SPAPR_TCE_IOMMU */
Why isn't this
#ifdef CONFIG_SPAPR_TCE_IOMMU
#ifdef CONFIG_KVM_VFIO
extern...
#else
static inline...
#endif
#endif
?
> +
> #endif
>
> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> index 7c1a349..51d5464 100644
> --- a/include/uapi/linux/kvm.h
> +++ b/include/uapi/linux/kvm.h
> @@ -847,6 +847,13 @@ struct kvm_device_attr {
> #define KVM_DEV_VFIO_GROUP 1
> #define KVM_DEV_VFIO_GROUP_ADD 1
> #define KVM_DEV_VFIO_GROUP_DEL 2
> +#define KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE_LIOBN 3
> +
> +struct kvm_vfio_spapr_tce_liobn {
> + __u32 argsz;
> + __s32 fd;
> + __u32 liobn;
> +};
>
> /*
> * ioctls for VM fds
> diff --git a/virt/kvm/vfio.c b/virt/kvm/vfio.c
> index ca4260e..ddc945d 100644
> --- a/virt/kvm/vfio.c
> +++ b/virt/kvm/vfio.c
> @@ -22,6 +22,12 @@
> struct kvm_vfio_group {
> struct list_head node;
> struct vfio_group *vfio_group;
> +#ifdef CONFIG_SPAPR_TCE_IOMMU
> + struct {
> + unsigned long liobn;
> + kvm_vfio_release_group_callback cb;
> + } spapr_tce;
> +#endif
> };
>
> struct kvm_vfio {
> @@ -59,6 +65,51 @@ static void kvm_vfio_group_put_external_user(struct vfio_group *vfio_group)
> symbol_put(vfio_group_put_external_user);
> }
>
> +#ifdef CONFIG_SPAPR_TCE_IOMMU
> +struct iommu_group *kvm_vfio_find_group_by_liobn(struct kvm *kvm,
> + unsigned long liobn, kvm_vfio_release_group_callback cb)
> +{
> + struct kvm_vfio_group *kvg;
> + int group_id;
> + struct iommu_group *grp;
> + struct kvm_vfio *kv = NULL;
> + struct kvm_device *tmp;
> +
> + if (!cb)
> + return ERR_PTR(-EINVAL);
> +
> + /* Find a VFIO KVM device */
> + list_for_each_entry(tmp, &kvm->devices, vm_node) {
> + if (tmp->ops != &kvm_vfio_ops)
> + continue;
> +
> + kv = tmp->private;
> + break;
> + }
> +
> + if (!kv)
> + return ERR_PTR(-EIO);
> +
I'm getting tired of noting that this ignores kv->lock...
> + /* Find a group */
> + list_for_each_entry(kvg, &kv->group_list, node) {
> + if (kvg->spapr_tce.liobn != liobn)
> + continue;
> +
> + if (kvg->spapr_tce.cb)
> + return ERR_PTR(-EBUSY);
> +
> + kvg->spapr_tce.cb = cb;
> + group_id = vfio_external_user_iommu_id(kvg->vfio_group);
> + grp = iommu_group_get_by_id(group_id);
> +
> + return grp;
> + }
> +
> + return ERR_PTR(-ENODEV);
> +}
> +EXPORT_SYMBOL_GPL(kvm_vfio_find_group_by_liobn);
> +#endif
> +
> /*
> * Groups can use the same or different IOMMU domains. If the same then
> * adding a new group may change the coherency of groups we've previously
> @@ -140,7 +191,9 @@ static int kvm_vfio_set_group(struct kvm_device *dev, long attr, u64 arg)
>
> list_add_tail(&kvg->node, &kv->group_list);
> kvg->vfio_group = vfio_group;
> -
> +#ifdef CONFIG_SPAPR_TCE_IOMMU
> + kvg->spapr_tce.liobn = -1;
> +#endif
> mutex_unlock(&kv->lock);
>
> kvm_vfio_update_coherency(dev);
> @@ -170,6 +223,11 @@ static int kvm_vfio_set_group(struct kvm_device *dev, long attr, u64 arg)
> continue;
>
> list_del(&kvg->node);
> +#ifdef CONFIG_SPAPR_TCE_IOMMU
> + if (kvg->spapr_tce.cb)
> + kvg->spapr_tce.cb(dev->kvm,
> + kvg->spapr_tce.liobn);
> +#endif
> kvm_vfio_group_put_external_user(kvg->vfio_group);
> kfree(kvg);
> ret = 0;
> @@ -183,6 +241,59 @@ static int kvm_vfio_set_group(struct kvm_device *dev, long attr, u64 arg)
> kvm_vfio_update_coherency(dev);
>
> return ret;
> +
> +#ifdef CONFIG_SPAPR_TCE_IOMMU
> + case KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE_LIOBN: {
> + struct kvm_vfio_spapr_tce_liobn param;
> + unsigned long minsz;
> + struct kvm_vfio *kv = dev->private;
> + struct vfio_group *vfio_group;
> + struct kvm_vfio_group *kvg;
> + struct fd f;
> +
> + minsz = offsetofend(struct kvm_vfio_spapr_tce_liobn, liobn);
> +
> + if (copy_from_user(¶m, (void __user *)arg, minsz))
> + return -EFAULT;
> +
> + if (param.argsz < minsz)
> + return -EINVAL;
> +
> + f = fdget(param.fd);
> + if (!f.file)
> + return -EBADF;
> +
> + vfio_group = kvm_vfio_group_get_external_user(f.file);
> + fdput(f);
> +
> + if (IS_ERR(vfio_group))
> + return PTR_ERR(vfio_group);
> +
> + ret = -ENOENT;
> +
> + mutex_lock(&kv->lock);
> +
> + list_for_each_entry(kvg, &kv->group_list, node) {
> + if (kvg->vfio_group != vfio_group)
> + continue;
> +
> + if (kvg->spapr_tce.liobn != -1) {
> + ret = -EBUSY;
> + break;
> + }
> +
> + kvg->spapr_tce.liobn = param.liobn;
> + ret = 0;
> + break;
> + }
> +
> + mutex_unlock(&kv->lock);
> +
> + kvm_vfio_group_put_external_user(vfio_group);
> +
> + return ret;
> + }
> +#endif /* CONFIG_SPAPR_TCE_IOMMU */
> }
>
> return -ENXIO;
> @@ -207,6 +318,9 @@ static int kvm_vfio_has_attr(struct kvm_device *dev,
> switch (attr->attr) {
> case KVM_DEV_VFIO_GROUP_ADD:
> case KVM_DEV_VFIO_GROUP_DEL:
> +#ifdef CONFIG_SPAPR_TCE_IOMMU
> + case KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE_LIOBN:
> +#endif
> return 0;
> }
>
^ permalink raw reply
* Re: [PATCH] powerpc: book3s: kvm: Don't abuse host r2 in exit path
From: Paul Mackerras @ 2013-11-28 4:05 UTC (permalink / raw)
To: Aneesh Kumar K.V; +Cc: linuxppc-dev, agraf, kvm-ppc, kvm
In-Reply-To: <1384178387-22993-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On Mon, Nov 11, 2013 at 07:29:47PM +0530, Aneesh Kumar K.V wrote:
> From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
>
> We don't use PACATOC for PR. Avoid updating HOST_R2 with PR
> KVM mode when both HV and PR are enabled in the kernel. Without this we
> get the below crash
>
> (qemu)
> Unable to handle kernel paging request for data at address 0xffffffffffff8310
> Faulting instruction address: 0xc00000000001d5a4
> cpu 0x2: Vector: 300 (Data Access) at [c0000001dc53aef0]
> pc: c00000000001d5a4: .vtime_delta.isra.1+0x34/0x1d0
> lr: c00000000001d760: .vtime_account_system+0x20/0x60
> sp: c0000001dc53b170
> msr: 8000000000009032
> dar: ffffffffffff8310
> dsisr: 40000000
> current = 0xc0000001d76c62d0
> paca = 0xc00000000fef1100 softe: 0 irq_happened: 0x01
> pid = 4472, comm = qemu-system-ppc
> enter ? for help
> [c0000001dc53b200] c00000000001d760 .vtime_account_system+0x20/0x60
> [c0000001dc53b290] c00000000008d050 .kvmppc_handle_exit_pr+0x60/0xa50
> [c0000001dc53b340] c00000000008f51c kvm_start_lightweight+0xb4/0xc4
> [c0000001dc53b510] c00000000008cdf0 .kvmppc_vcpu_run_pr+0x150/0x2e0
> [c0000001dc53b9e0] c00000000008341c .kvmppc_vcpu_run+0x2c/0x40
> [c0000001dc53ba50] c000000000080af4 .kvm_arch_vcpu_ioctl_run+0x54/0x1b0
> [c0000001dc53bae0] c00000000007b4c8 .kvm_vcpu_ioctl+0x478/0x730
> [c0000001dc53bca0] c0000000002140cc .do_vfs_ioctl+0x4ac/0x770
> [c0000001dc53bd80] c0000000002143e8 .SyS_ioctl+0x58/0xb0
> [c0000001dc53be30] c000000000009e58 syscall_exit+0x0/0x98
> --- Exception: c00 (System Call) at 00001fffff960160
> SP (1ffffecbe3c0) is in userspace
>
> These changes were originally part of
> http://mid.gmane.org/20130806042205.GR19254@iris.ozlabs.ibm.com
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Acked-by: Paul Mackerras <paulus@samba.org>
^ permalink raw reply
* Re: [PATCH] powerpc: book3s: kvm: Use the saved dsisr and dar values
From: Paul Mackerras @ 2013-11-28 4:06 UTC (permalink / raw)
To: Aneesh Kumar K.V; +Cc: linuxppc-dev, agraf, kvm-ppc, kvm
In-Reply-To: <1384178577-23721-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On Mon, Nov 11, 2013 at 07:32:57PM +0530, Aneesh Kumar K.V wrote:
> From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
>
> Don't try to compute these values.
>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Acked-by: Paul Mackerras <paulus@samba.org>
^ permalink raw reply
* RE: [PATCH 0/9 v2] vfio-pci: add support for Freescale IOMMU (PAMU)
From: Bharat Bhushan @ 2013-11-28 9:19 UTC (permalink / raw)
To: Bharat Bhushan, Alex Williamson
Cc: linux-pci@vger.kernel.org, agraf@suse.de, Stuart Yoder,
bhelgaas@google.com, iommu@lists.linux-foundation.org, Scott Wood,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
In-Reply-To: <1385397493.2879.557.camel@ul30vt.home>
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQmh1c2hhbiBCaGFyYXQt
UjY1Nzc3DQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjcsIDIwMTMgOTozOSBQTQ0KPiBU
bzogJ0FsZXggV2lsbGlhbXNvbicNCj4gQ2M6IFdvb2QgU2NvdHQtQjA3NDIxOyBsaW51eC1wY2lA
dmdlci5rZXJuZWwub3JnOyBhZ3JhZkBzdXNlLmRlOyBZb2RlciBTdHVhcnQtDQo+IEIwODI0ODsg
aW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmc7IGJoZWxnYWFzQGdvb2dsZS5jb207IGxp
bnV4cHBjLQ0KPiBkZXZAbGlzdHMub3psYWJzLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVs
Lm9yZw0KPiBTdWJqZWN0OiBSRTogW1BBVENIIDAvOSB2Ml0gdmZpby1wY2k6IGFkZCBzdXBwb3J0
IGZvciBGcmVlc2NhbGUgSU9NTVUgKFBBTVUpDQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5h
bCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBBbGV4IFdpbGxpYW1zb24gW21haWx0bzphbGV4Lndp
bGxpYW1zb25AcmVkaGF0LmNvbV0NCj4gPiBTZW50OiBNb25kYXksIE5vdmVtYmVyIDI1LCAyMDEz
IDEwOjA4IFBNDQo+ID4gVG86IEJodXNoYW4gQmhhcmF0LVI2NTc3Nw0KPiA+IENjOiBXb29kIFNj
b3R0LUIwNzQyMTsgbGludXgtcGNpQHZnZXIua2VybmVsLm9yZzsgYWdyYWZAc3VzZS5kZTsgWW9k
ZXINCj4gPiBTdHVhcnQtIEIwODI0ODsgaW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmc7
IGJoZWxnYWFzQGdvb2dsZS5jb207DQo+ID4gbGludXhwcGMtIGRldkBsaXN0cy5vemxhYnMub3Jn
OyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCAw
LzkgdjJdIHZmaW8tcGNpOiBhZGQgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIElPTU1VDQo+ID4gKFBB
TVUpDQo+ID4NCj4gPiBPbiBNb24sIDIwMTMtMTEtMjUgYXQgMDU6MzMgKzAwMDAsIEJoYXJhdCBC
aHVzaGFuIHdyb3RlOg0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N
Cj4gPiA+ID4gRnJvbTogQWxleCBXaWxsaWFtc29uIFttYWlsdG86YWxleC53aWxsaWFtc29uQHJl
ZGhhdC5jb21dDQo+ID4gPiA+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgMjIsIDIwMTMgMjozMSBB
TQ0KPiA+ID4gPiBUbzogV29vZCBTY290dC1CMDc0MjENCj4gPiA+ID4gQ2M6IEJodXNoYW4gQmhh
cmF0LVI2NTc3NzsgbGludXgtcGNpQHZnZXIua2VybmVsLm9yZzsNCj4gPiA+ID4gYWdyYWZAc3Vz
ZS5kZTsgWW9kZXIgU3R1YXJ0LUIwODI0ODsNCj4gPiA+ID4gaW9tbXVAbGlzdHMubGludXgtZm91
bmRhdGlvbi5vcmc7IGJoZWxnYWFzQGdvb2dsZS5jb207IGxpbnV4cHBjLQ0KPiA+ID4gPiBkZXZA
bGlzdHMub3psYWJzLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiA+ID4gPiBT
dWJqZWN0OiBSZTogW1BBVENIIDAvOSB2Ml0gdmZpby1wY2k6IGFkZCBzdXBwb3J0IGZvciBGcmVl
c2NhbGUNCj4gPiA+ID4gSU9NTVUgKFBBTVUpDQo+ID4gPiA+DQo+ID4gPiA+IE9uIFRodSwgMjAx
My0xMS0yMSBhdCAxNDo0NyAtMDYwMCwgU2NvdHQgV29vZCB3cm90ZToNCj4gPiA+ID4gPiBPbiBU
aHUsIDIwMTMtMTEtMjEgYXQgMTM6NDMgLTA3MDAsIEFsZXggV2lsbGlhbXNvbiB3cm90ZToNCj4g
PiA+ID4gPiA+IE9uIFRodSwgMjAxMy0xMS0yMSBhdCAxMToyMCArMDAwMCwgQmhhcmF0IEJodXNo
YW4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN
ZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBBbGV4IFdpbGxpYW1zb24gW21haWx0
bzphbGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbV0NCj4gPiA+ID4gPiA+ID4gPiBTZW50OiBUaHVy
c2RheSwgTm92ZW1iZXIgMjEsIDIwMTMgMTI6MTcgQU0NCj4gPiA+ID4gPiA+ID4gPiBUbzogQmh1
c2hhbiBCaGFyYXQtUjY1Nzc3DQo+ID4gPiA+ID4gPiA+ID4gQ2M6IGpvcm9AOGJ5dGVzLm9yZzsg
YmhlbGdhYXNAZ29vZ2xlLmNvbTsgYWdyYWZAc3VzZS5kZTsNCj4gPiA+ID4gPiA+ID4gPiBXb29k
IFNjb3R0LUIwNzQyMTsgWW9kZXIgU3R1YXJ0LUIwODI0ODsNCj4gPiA+ID4gPiA+ID4gPiBpb21t
dUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZzsgbGludXgtDQo+ID4gPiA+ID4gPiA+ID4gcGNp
QHZnZXIua2VybmVsLm9yZzsgbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmc7IGxpbnV4LQ0K
PiA+ID4gPiA+ID4gPiA+IGtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IEJodXNoYW4gQmhhcmF0LVI2
NTc3Nw0KPiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMC85IHYyXSB2ZmlvLXBj
aTogYWRkIHN1cHBvcnQgZm9yDQo+ID4gPiA+ID4gPiA+ID4gRnJlZXNjYWxlIElPTU1VIChQQU1V
KQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSXMgVkZJT19JT01NVV9QQU1VX0dF
VF9NU0lfQkFOS19DT1VOVCBwZXIgYXBlcnR1cmUgKGllLg0KPiA+ID4gPiA+ID4gPiA+IGVhY2gg
dmZpbyB1c2VyIGhhcyAkQ09VTlQgcmVnaW9ucyBhdCB0aGVpciBkaXNwb3NhbCBleGNsdXNpdmVs
eSk/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE51bWJlciBvZiBtc2ktYmFuayBjb3Vu
dCBpcyBzeXN0ZW0gd2lkZSBhbmQgbm90IHBlcg0KPiA+ID4gPiA+ID4gPiBhcGVydHVyZSwgQnV0
IHdpbGwgYmUNCj4gPiA+ID4gc2V0dGluZyB3aW5kb3dzIGZvciBiYW5rcyBpbiB0aGUgZGV2aWNl
IGFwZXJ0dXJlLg0KPiA+ID4gPiA+ID4gPiBTbyBzYXkgaWYgd2UgYXJlIGRpcmVjdCBhc3NpZ25p
bmcgMiBwY2kgZGV2aWNlIChib3RoIGhhdmUNCj4gPiA+ID4gPiA+ID4gZGlmZmVyZW50IGlvbW11
DQo+ID4gPiA+IGdyb3VwLCBzbyAyIGFwZXJ0dXJlIGluIGlvbW11KSB0byBWTS4NCj4gPiA+ID4g
PiA+ID4gTm93IHFlbXUgY2FuIG1ha2Ugb25seSBvbmUgY2FsbCB0byBrbm93IGhvdyBtYW55IG1z
aS1iYW5rcw0KPiA+ID4gPiA+ID4gPiBhcmUgdGhlcmUgYnV0DQo+ID4gPiA+IGl0IG11c3Qgc2V0
IHN1Yi13aW5kb3dzIGZvciBhbGwgYmFua3MgZm9yIGJvdGggcGNpIGRldmljZSBpbiBpdHMNCj4g
PiA+ID4gcmVzcGVjdGl2ZSBhcGVydHVyZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJJ20g
c3RpbGwgY29uZnVzZWQuICBXaGF0IEkgd2FudCB0byBtYWtlIHN1cmUgb2YgaXMgdGhhdCB0aGUN
Cj4gPiA+ID4gPiA+IGJhbmtzIGFyZSBpbmRlcGVuZGVudCBwZXIgYXBlcnR1cmUuICBGb3IgaW5z
dGFuY2UsIGlmIHdlIGhhdmUNCj4gPiA+ID4gPiA+IHR3byBzZXBhcmF0ZSB1c2Vyc3BhY2UgcHJv
Y2Vzc2VzIG9wZXJhdGluZyBpbmRlcGVuZGVudGx5IGFuZA0KPiA+ID4gPiA+ID4gdGhleSBib3Ro
IGNob3NlIHRvIHVzZSBtc2kgYmFuayB6ZXJvIGZvciB0aGVpciBkZXZpY2UsIHRoYXQncw0KPiA+
ID4gPiA+ID4gYmFuayB6ZXJvIHdpdGhpbiBlYWNoIGFwZXJ0dXJlIGFuZCBkb2Vzbid0IGludGVy
ZmVyZS4gIE9yDQo+ID4gPiA+ID4gPiBhbm90aGVyIHdheSB0byBhc2sgaXMgY2FuIGEgbWFsaWNp
b3VzIHVzZXIgaW50ZXJmZXJlIHdpdGgNCj4gPiA+ID4gPiA+IG90aGVyIHVzZXJzIGJ5DQo+ID4g
dXNpbmcgdGhlIHdyb25nIGJhbmsuDQo+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+ID4NCj4g
PiA+ID4gPiBUaGV5IGNhbiBpbnRlcmZlcmUuDQo+ID4gPg0KPiA+ID4gV2FudCB0byBiZSBzdXJl
IG9mIGhvdyB0aGV5IGNhbiBpbnRlcmZlcmU/DQo+ID4NCj4gPiBXaGF0IGhhcHBlbnMgaWYgbW9y
ZSB0aGFuIG9uZSB1c2VyIHNlbGVjdHMgdGhlIHNhbWUgTVNJIGJhbms/DQo+ID4gTWluaW1hbGx5
LCB3b3VsZG4ndCB0aGF0IHJlc3VsdCBpbiB0aGUgSU9NTVUgYmxvY2tpbmcgdHJhbnNhY3Rpb25z
DQo+ID4gZnJvbSB0aGUgcHJldmlvdXMgdXNlciBvbmNlIHRoZSBuZXcgdXNlciBhY3RpdmF0ZXMg
dGhlaXIgbWFwcGluZz8NCj4gDQo+IFllcyBhbmQgbm87IFdpdGggY3VycmVudCBpbXBsZW1lbnRh
dGlvbiB5ZXMgYnV0IHdpdGggYSBtaW5vciBjaGFuZ2Ugbm8uIExhdGVyIGluDQo+IHRoaXMgcmVz
cG9uc2UgSSB3aWxsIGV4cGxhaW4gaG93Lg0KPiANCj4gPg0KPiA+ID4gPj4gIFdpdGggdGhpcyBo
YXJkd2FyZSwgdGhlIG9ubHkgd2F5IHRvIHByZXZlbnQgdGhhdA0KPiA+ID4gPiA+IGlzIHRvIG1h
a2Ugc3VyZSB0aGF0IGEgYmFuayBpcyBub3Qgc2hhcmVkIGJ5IG11bHRpcGxlIHByb3RlY3Rpb24N
Cj4gY29udGV4dHMuDQo+ID4gPiA+ID4gRm9yIHNvbWUgb2Ygb3VyIHVzZXJzLCB0aG91Z2gsIEkg
YmVsaWV2ZSBwcmV2ZW50aW5nIHRoaXMgaXMgbGVzcw0KPiA+ID4gPiA+IGltcG9ydGFudCB0aGFu
IHRoZSBwZXJmb3JtYW5jZSBiZW5lZml0Lg0KPiA+ID4NCj4gPiA+IFNvIHNob3VsZCB3ZSBsZXQg
dGhpcyBwYXRjaCBzZXJpZXMgaW4gd2l0aG91dCBwcm90ZWN0aW9uPw0KPiA+DQo+ID4gTm8uDQo+
ID4NCj4gPiA+ID4NCj4gPiA+ID4gSSB0aGluayB3ZSBuZWVkIHNvbWUgc29ydCBvZiBvd25lcnNo
aXAgbW9kZWwgYXJvdW5kIHRoZSBtc2kgYmFua3MgdGhlbi4NCj4gPiA+ID4gT3RoZXJ3aXNlIHRo
ZXJlJ3Mgbm90aGluZyBwcmV2ZW50aW5nIGFub3RoZXIgdXNlcnNwYWNlIGZyb20NCj4gPiA+ID4g
YXR0ZW1wdGluZyBhbiBNU0kgYmFzZWQgYXR0YWNrIG9uIG90aGVyIHVzZXJzLCBvciBwZXJoYXBz
IGV2ZW4gb24NCj4gPiA+ID4gdGhlIGhvc3QuICBWRklPIGNhbid0IGFsbG93IHRoYXQuICBUaGFu
a3MsDQo+ID4gPg0KPiA+ID4gV2UgaGF2ZSB2ZXJ5IGZldyAoMyBNU0kgYmFuayBvbiBtb3N0IG9m
IGNoaXBzKSwgc28gd2UgY2FuIG5vdCBhc3NpZ24NCj4gPiA+IG9uZSB0byBlYWNoIHVzZXJzcGFj
ZS4gV2hhdCB3ZSBjYW4gZG8gaXMgaG9zdCBhbmQgdXNlcnNwYWNlIGRvZXMgbm90DQo+ID4gPiBz
aGFyZSBhIE1TSSBiYW5rIHdoaWxlIHVzZXJzcGFjZSB3aWxsIHNoYXJlIGEgTVNJIGJhbmsuDQo+
ID4NCj4gPiBUaGVuIHlvdSBwcm9iYWJseSBuZWVkIFZGSU8gdG8gIm93biIgdGhlIE1TSSBiYW5r
IGFuZCBwcm9ncmFtIGRldmljZXMNCj4gPiBpbnRvIGl0IHJhdGhlciB0aGFuIGV4cG9zaW5nIHRo
ZSBNU0kgYmFua3MgdG8gdXNlcnNwYWNlIHRvIGxldCB0aGVtIGhhdmUNCj4gZGlyZWN0IGFjY2Vz
cy4NCj4gDQo+IE92ZXJhbGwgaWRlYSBvZiBleHBvc2luZyB0aGUgZGV0YWlscyBvZiBtc2kgcmVn
aW9ucyB0byB1c2Vyc3BhY2UgYXJlDQo+ICAxKSBVc2VyIHNwYWNlIGNhbiBkZWZpbmUgdGhlIGFw
ZXJ0dXJlIHNpemUgdG8gZml0IE1TSSBtYXBwaW5nIGluIElPTU1VLg0KPiAgMikgc2V0dXAgaW92
YSBmb3IgYSBNU0kgYmFua3M7IHdoaWNoIGlzIGp1c3QgYWZ0ZXIgZ3Vlc3QgbWVtb3J5Lg0KPiAN
Cj4gQnV0IGN1cnJlbnRseSB3ZSBleHBvc2UgdGhlICJzaXplIiBhbmQgImFkZHJlc3MiIG9mIE1T
SSBiYW5rcywgcGFzc2luZyBhZGRyZXNzDQo+IGlzIG9mIG5vIHVzZSBhbmQgY2FuIGJlIHByb2Js
ZW1hdGljLg0KDQpJIGFtIHNvcnJ5LCBhYm92ZSBpbmZvcm1hdGlvbiBpcyBub3QgY29ycmVjdC4g
Q3VycmVudGx5IG5laXRoZXIgd2UgZXhwb3NlICJhZGRyZXNzIiBub3IgInNpemUiIHRvIHVzZXIg
c3BhY2UuIFdlIG9ubHkgZXhwb3NlIG51bWJlciBvZiBNU0kgQkFOSyBjb3VudCBhbmQgdXNlcnNw
YWNlIGFkZHMgb25lIHN1Yi13aW5kb3cgZm9yIGVhY2ggYmFuay4NCg0KPiBJZiB3ZSBqdXN0IHBy
b3ZpZGUgdGhlIHNpemUgb2YgTVNJIGJhbmsgdG8gdXNlcnNwYWNlIHRoZW4gdXNlcnNwYWNlIGNh
bm5vdCBkbw0KPiBhbnl0aGluZyB3cm9uZy4NCg0KU28gdXNlcnNwYWNlIGRvZXMgbm90IGtub3cg
YWRkcmVzcywgc28gaXQgY2Fubm90IG1tYXAgYW5kIGNhdXNlIGFueSBpbnRlcmZlcmVuY2UgYnkg
ZGlyZWN0bHkgcmVhZGluZy93cml0aW5nLg0KV2hlbiB1c2VyIHNwYWNlIG1ha2VzIFZGSU9fREVW
SUNFX1NFVF9JUlFTIGlvY3RsIGZvciBNU0kgdHlwZSB0aGVuIFZGSU8gd2l0aCBNU0kgbGF5ZXIg
Y29tcG9zZSBhbmQgd3JpdGUgTVNJIGFkZHJlc3MgYW5kIERhdGEgaW4gYWN0dWFsIGRldmljZS4g
VGhpcyBpcyBhbGwgYWJzdHJhY3RlZCB3aXRoaW4gaG9zdCBrZXJuZWwuDQoNCkRvIHdlIHNlZSBh
bnkgaXNzdWUgd2l0aCB0aGlzIGFwcHJvYWNoPw0KDQpUaGFua3MNCi1CaGFyYXQNCg0KPiANCj4g
V2hpbGUgaXQgaXMgc3RpbGwgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIGhvc3QgKE1TSStWRklPKSB0
byBjb21wb3NlIE1TSS1hZGRyZXNzDQo+IGFuZCBNU0ktZGF0YTsgc28gSSB0aGluayB0aGlzIHNo
b3VsZCBsb29rIGZpbmUuDQo+IA0KPiA+IFRoYW5rcywNCj4gPg0KPiA+IEFsZXgNCj4gPg0KDQo=
^ permalink raw reply
* Re: [PATCH v7 0/4] Add dual-fifo mode support of i.MX ssi
From: Vinod Koul @ 2013-11-28 8:41 UTC (permalink / raw)
To: Nicolin Chen
Cc: mark.rutland, devicetree, alsa-devel, pawel.moll, linux-doc,
s.hauer, swarren, timur, rob.herring, linux-kernel, broonie,
ijc+devicetree, dmaengine, dan.j.williams, shawn.guo,
linuxppc-dev, linux-arm-kernel
In-Reply-To: <cover.1384352281.git.b42378@freescale.com>
On Wed, Nov 13, 2013 at 10:55:23PM +0800, Nicolin Chen wrote:
> * ! This series of patches has a direct dependency between them. When
> * ! applying them, we need to apply to one single branch. Otherwise,
> * ! it would break currect branches.
Applied, thanks
--
~Vinod
>
> Changelog
> v7:
> * Appended missing Acked-by to all four patches.
> * Sorry that I didn't add them at the first place.
> v6:
> * PATCH-1: Use goto err_firmware instead of return directly.
> *
> * Nothing changes for the other three ack-ed patches
> v5:
> * PATCH-3: Add period size constraint when using dual fifo mode
> *
> * Nothing changes for the other three patches
> v4:
> * PATCH-3: Drop useless register configuration.
> *
> * Nothing changes for the other three patches
> v3:
> * PATCH-1: Add comments to indicate the end of v1 and v2 array.
> * PATCH-3: Use better way to keep watermark as even number.
> *
> * Nothing changes for PATCH-2 and PATCH-4
> v2:
> * Instead of adding rogue scripts to current SDMA driver based on firmware
> * V1, we define the new SDMA firmware as version 2 and bisect the PATCH-1
> * to two patches: The first is to add version check code to the SDMA driver;
> * And the second is to add SSI dual FIFO DMATYPE.
> *
> * Nothing changes for the last two patches.
> v1:
> * SSI can reduce hardware overrun/underrun possibility when using dual
> * fifo mode. To support this mode, we need to first update sdma sciprt
> * list, and then enable dual fifo BIT in SSI driver, and last update DT
> * bindings of i.MX series.
>
> Nicolin Chen (4):
> dma: imx-sdma: Add sdma firmware version 2 support
> dma: imx-sdma: Add new dma type for ssi dual fifo script
> ASoC: fsl_ssi: Add dual fifo mode support
> ARM: dts: imx: use dual-fifo sdma script for ssi
>
> .../devicetree/bindings/dma/fsl-imx-sdma.txt | 1 +
> arch/arm/boot/dts/imx51.dtsi | 4 ++--
> arch/arm/boot/dts/imx53.dtsi | 4 ++--
> arch/arm/boot/dts/imx6qdl.dtsi | 12 +++++-----
> arch/arm/boot/dts/imx6sl.dtsi | 12 +++++-----
> drivers/dma/imx-sdma.c | 19 ++++++++++++++-
> include/linux/platform_data/dma-imx-sdma.h | 5 ++++
> include/linux/platform_data/dma-imx.h | 1 +
> sound/soc/fsl/fsl_ssi.c | 27 +++++++++++++++++++++-
> 9 files changed, 67 insertions(+), 18 deletions(-)
>
> --
> 1.8.4
>
>
--
^ permalink raw reply
* RE: [PATCH 1/9 v2] pci:msi: add weak function for returning msi region info
From: Bharat Bhushan @ 2013-11-28 10:08 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: linux-pci@vger.kernel.org, joro@8bytes.org, Stuart Yoder,
iommu@lists.linux-foundation.org, agraf@suse.de,
alex.williamson@redhat.com, Scott Wood,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
In-Reply-To: <20131125233602.GA4066@google.com>
> -----Original Message-----
> From: linux-pci-owner@vger.kernel.org [mailto:linux-pci-owner@vger.kernel=
.org]
> On Behalf Of Bjorn Helgaas
> Sent: Tuesday, November 26, 2013 5:06 AM
> To: Bhushan Bharat-R65777
> Cc: alex.williamson@redhat.com; joro@8bytes.org; agraf@suse.de; Wood Scot=
t-
> B07421; Yoder Stuart-B08248; iommu@lists.linux-foundation.org; linux-
> pci@vger.kernel.org; linuxppc-dev@lists.ozlabs.org; linux-
> kernel@vger.kernel.org; Bhushan Bharat-R65777
> Subject: Re: [PATCH 1/9 v2] pci:msi: add weak function for returning msi =
region
> info
>=20
> On Tue, Nov 19, 2013 at 10:47:05AM +0530, Bharat Bhushan wrote:
> > In Aperture type of IOMMU (like FSL PAMU), VFIO-iommu system need to
> > know the MSI region to map its window in h/w. This patch just defines
> > the required weak functions only and will be used by followup patches.
> >
> > Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
> > ---
> > v1->v2
> > - Added description on "struct msi_region"
> >
> > drivers/pci/msi.c | 22 ++++++++++++++++++++++
> > include/linux/msi.h | 14 ++++++++++++++
> > 2 files changed, 36 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index
> > d5f90d6..2643a29 100644
> > --- a/drivers/pci/msi.c
> > +++ b/drivers/pci/msi.c
> > @@ -67,6 +67,28 @@ int __weak arch_msi_check_device(struct pci_dev *dev=
, int
> nvec, int type)
> > return chip->check_device(chip, dev, nvec, type); }
> >
> > +int __weak arch_msi_get_region_count(void) {
> > + return 0;
> > +}
> > +
> > +int __weak arch_msi_get_region(int region_num, struct msi_region
> > +*region) {
> > + return 0;
> > +}
> > +
> > +int msi_get_region_count(void)
> > +{
> > + return arch_msi_get_region_count();
> > +}
> > +EXPORT_SYMBOL(msi_get_region_count);
> > +
> > +int msi_get_region(int region_num, struct msi_region *region) {
> > + return arch_msi_get_region(region_num, region); }
> > +EXPORT_SYMBOL(msi_get_region);
> > +
> > int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int
> > type) {
> > struct msi_desc *entry;
> > diff --git a/include/linux/msi.h b/include/linux/msi.h index
> > b17ead8..ade1480 100644
> > --- a/include/linux/msi.h
> > +++ b/include/linux/msi.h
> > @@ -51,6 +51,18 @@ struct msi_desc {
> > };
> >
> > /*
> > + * This structure is used to get
> > + * - physical address
> > + * - size
> > + * of a msi region
> > + */
> > +struct msi_region {
> > + int region_num; /* MSI region number */
> > + dma_addr_t addr; /* Address of MSI region */
> > + size_t size; /* Size of MSI region */ };
> > +
> > +/*
> > * The arch hooks to setup up msi irqs. Those functions are
> > * implemented as weak symbols so that they /can/ be overriden by
> > * architecture specific code if needed.
> > @@ -64,6 +76,8 @@ void arch_restore_msi_irqs(struct pci_dev *dev, int
> > irq);
> >
> > void default_teardown_msi_irqs(struct pci_dev *dev); void
> > default_restore_msi_irqs(struct pci_dev *dev, int irq);
> > +int arch_msi_get_region_count(void);
> > +int arch_msi_get_region(int region_num, struct msi_region *region);
>=20
> It doesn't look like any of this (struct msi_region, msi_get_region(),
> msi_get_region_count()) is actually used by drivers/pci/msi.c, so I don't=
think
> it needs to be declared in generic code. It looks like it's only used in
> drivers/vfio/vfio_iommu_fsl_pamu.c, where you already know you have an FS=
L
> IOMMU, and you can just call FSL-specific interfaces directly.
Thanks Bjorn,
Want to be sure of what you are suggesting.
What I understood is that we define these (struct msi_region, msi_get_regio=
n(), msi_get_region_count()) in arch/powerpc/include/fsl_msi.h (a new file)=
. Include this header file directly in driver/vfio/vfio_iommu_fsl_pamu.c
Same also applies for msi_set_iova() in patch-5 ?
-Bharat
>=20
> Bjorn
>=20
> >
> > struct msi_chip {
> > struct module *owner;
> > --
> > 1.7.0.4
> >
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in t=
he body
> of a message to majordomo@vger.kernel.org More majordomo info at
> http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* [PATCH -V2] powerpc: book3s: PR: Enable Little Endian PR guest
From: Aneesh Kumar K.V @ 2013-11-28 15:53 UTC (permalink / raw)
To: agraf, benh, paulus; +Cc: linuxppc-dev, kvm, kvm-ppc, Aneesh Kumar K.V
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
This patch make sure we inherit the LE bit correctly in different case
so that we can run Little Endian distro in PR mode
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
Changes from V1:
* Use LPCR bit to find whether to enable LE on interrupt. We do it more or less
same as HV now. We keep it separate at this point because HV H_SETMODE does
a lot more than what we do here.
This patch depends on the below two changes
1) [PATCH v5 0/6] KVM: PPC: Book3S: MMIO support for Little Endian guests (kvm-ppc)
http://mid.gmane.org/1383672128-26795-1-git-send-email-clg@fr.ibm.com
2) [PATCH] powerpc: book3s: kvm: Use the saved dsisr and dar values
http://mid.gmane.org/1384178577-23721-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com
3) [PATCH 11/15] KVM: PPC: Book3S HV: Add little-endian guest support
http://mid.gmane.org/1383995103-24732-12-git-send-email-paulus@samba.org
With further changes to make it apply to latest upstream.
arch/powerpc/include/asm/kvm_host.h | 4 +--
arch/powerpc/kernel/asm-offsets.c | 4 +--
arch/powerpc/kvm/book3s_64_mmu.c | 2 +-
arch/powerpc/kvm/book3s_pr.c | 3 +-
arch/powerpc/kvm/book3s_pr_papr.c | 57 +++++++++++++++++++++++++++++++++++++
5 files changed, 64 insertions(+), 6 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index cecd88338f28..1e67adc725d2 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -240,7 +240,6 @@ struct kvm_arch {
unsigned long sdr1;
unsigned long host_sdr1;
int tlbie_lock;
- unsigned long lpcr;
unsigned long rmor;
struct kvm_rma_info *rma;
unsigned long vrma_slb_v;
@@ -261,6 +260,7 @@ struct kvm_arch {
struct mutex hpt_mutex;
#endif
#ifdef CONFIG_PPC_BOOK3S_64
+ unsigned long lpcr;
struct list_head spapr_tce_tables;
struct list_head rtas_tokens;
#endif
@@ -524,6 +524,7 @@ struct kvm_vcpu_arch {
#ifdef CONFIG_PPC_BOOK3S
ulong fault_dar;
u32 fault_dsisr;
+ unsigned long intr_msr;
#endif
#ifdef CONFIG_BOOKE
@@ -616,7 +617,6 @@ struct kvm_vcpu_arch {
spinlock_t tbacct_lock;
u64 busy_stolen;
u64 busy_preempt;
- unsigned long intr_msr;
#endif
};
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 39dbcb3d3d7d..136c4bec52ab 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -473,7 +473,6 @@ int main(void)
#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
DEFINE(KVM_SDR1, offsetof(struct kvm, arch.sdr1));
DEFINE(KVM_HOST_LPID, offsetof(struct kvm, arch.host_lpid));
- DEFINE(KVM_HOST_LPCR, offsetof(struct kvm, arch.host_lpcr));
DEFINE(KVM_HOST_SDR1, offsetof(struct kvm, arch.host_sdr1));
DEFINE(KVM_TLBIE_LOCK, offsetof(struct kvm, arch.tlbie_lock));
DEFINE(KVM_NEED_FLUSH, offsetof(struct kvm, arch.need_tlb_flush.bits));
@@ -484,9 +483,9 @@ int main(void)
DEFINE(VCPU_DAR, offsetof(struct kvm_vcpu, arch.shregs.dar));
DEFINE(VCPU_VPA, offsetof(struct kvm_vcpu, arch.vpa.pinned_addr));
DEFINE(VCPU_VPA_DIRTY, offsetof(struct kvm_vcpu, arch.vpa.dirty));
- DEFINE(VCPU_INTR_MSR, offsetof(struct kvm_vcpu, arch.intr_msr));
#endif
#ifdef CONFIG_PPC_BOOK3S
+ DEFINE(KVM_HOST_LPCR, offsetof(struct kvm, arch.host_lpcr));
DEFINE(VCPU_VCPUID, offsetof(struct kvm_vcpu, vcpu_id));
DEFINE(VCPU_PURR, offsetof(struct kvm_vcpu, arch.purr));
DEFINE(VCPU_SPURR, offsetof(struct kvm_vcpu, arch.spurr));
@@ -510,6 +509,7 @@ int main(void)
DEFINE(VCPU_SLB_NR, offsetof(struct kvm_vcpu, arch.slb_nr));
DEFINE(VCPU_FAULT_DSISR, offsetof(struct kvm_vcpu, arch.fault_dsisr));
DEFINE(VCPU_FAULT_DAR, offsetof(struct kvm_vcpu, arch.fault_dar));
+ DEFINE(VCPU_INTR_MSR, offsetof(struct kvm_vcpu, arch.intr_msr));
DEFINE(VCPU_LAST_INST, offsetof(struct kvm_vcpu, arch.last_inst));
DEFINE(VCPU_TRAP, offsetof(struct kvm_vcpu, arch.trap));
DEFINE(VCPU_PTID, offsetof(struct kvm_vcpu, arch.ptid));
diff --git a/arch/powerpc/kvm/book3s_64_mmu.c b/arch/powerpc/kvm/book3s_64_mmu.c
index 83da1f868fd5..8231b83c493b 100644
--- a/arch/powerpc/kvm/book3s_64_mmu.c
+++ b/arch/powerpc/kvm/book3s_64_mmu.c
@@ -38,7 +38,7 @@
static void kvmppc_mmu_book3s_64_reset_msr(struct kvm_vcpu *vcpu)
{
- kvmppc_set_msr(vcpu, MSR_SF);
+ kvmppc_set_msr(vcpu, vcpu->arch.intr_msr);
}
static struct kvmppc_slb *kvmppc_mmu_book3s_64_find_slbe(
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index f84778547c6b..dc22643a45d2 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -226,7 +226,7 @@ static void kvmppc_recalc_shadow_msr(struct kvm_vcpu *vcpu)
ulong smsr = vcpu->arch.shared->msr;
/* Guest MSR values */
- smsr &= MSR_FE0 | MSR_FE1 | MSR_SF | MSR_SE | MSR_BE;
+ smsr &= MSR_FE0 | MSR_FE1 | MSR_SF | MSR_SE | MSR_BE | MSR_LE;
/* Process MSR values */
smsr |= MSR_ME | MSR_RI | MSR_IR | MSR_DR | MSR_PR | MSR_EE;
/* External providers the guest reserved */
@@ -1207,6 +1207,7 @@ static struct kvm_vcpu *kvmppc_core_vcpu_create_pr(struct kvm *kvm,
vcpu->arch.pvr = 0x3C0301;
if (mmu_has_feature(MMU_FTR_1T_SEGMENT))
vcpu->arch.pvr = mfspr(SPRN_PVR);
+ vcpu->arch.intr_msr = MSR_SF;
#else
/* default to book3s_32 (750) */
vcpu->arch.pvr = 0x84202;
diff --git a/arch/powerpc/kvm/book3s_pr_papr.c b/arch/powerpc/kvm/book3s_pr_papr.c
index 5efa97b993d8..02a23890aa0d 100644
--- a/arch/powerpc/kvm/book3s_pr_papr.c
+++ b/arch/powerpc/kvm/book3s_pr_papr.c
@@ -256,6 +256,61 @@ static int kvmppc_h_pr_xics_hcall(struct kvm_vcpu *vcpu, u32 cmd)
return EMULATE_DONE;
}
+static int kvmppc_h_set_mode_pr(struct kvm_vcpu *vcpu, unsigned long mflags,
+ unsigned long resource, unsigned long value1,
+ unsigned long value2)
+{
+ struct kvm *kvm = vcpu->kvm;
+ struct kvm_vcpu *v;
+ int n;
+
+ switch (resource) {
+ case H_SET_MODE_RESOURCE_LE:
+ if (value1)
+ return H_P3;
+ if (value2)
+ return H_P4;
+
+ switch (mflags) {
+ case 0:
+ mutex_lock(&kvm->lock);
+ kvmppc_update_lpcr(kvm, 0, LPCR_ILE);
+ kvm_for_each_vcpu(n, v, kvm)
+ v->arch.intr_msr &= ~MSR_LE;
+ mutex_unlock(&kvm->lock);
+ kick_all_cpus_sync();
+ return H_SUCCESS;
+
+ case 1:
+ mutex_lock(&kvm->lock);
+ kvmppc_update_lpcr(kvm, LPCR_ILE, LPCR_ILE);
+ kvm_for_each_vcpu(n, v, kvm)
+ v->arch.intr_msr |= MSR_LE;
+ mutex_unlock(&kvm->lock);
+ kick_all_cpus_sync();
+ return H_SUCCESS;
+
+ default:
+ return H_UNSUPPORTED_FLAG_START;
+ }
+ default:
+ return H_P2;
+ }
+}
+
+static int kvmppc_h_pr_set_mode(struct kvm_vcpu *vcpu)
+{
+ int ret;
+ unsigned long mflags = kvmppc_get_gpr(vcpu, 4);
+ unsigned long resource = kvmppc_get_gpr(vcpu, 5);
+ unsigned long value1 = kvmppc_get_gpr(vcpu, 6);
+ unsigned long value2 = kvmppc_get_gpr(vcpu, 7);
+
+ ret = kvmppc_h_set_mode_pr(vcpu, mflags, resource, value1, value2);
+ kvmppc_set_gpr(vcpu, 3, ret);
+ return EMULATE_DONE;
+}
+
int kvmppc_h_pr(struct kvm_vcpu *vcpu, unsigned long cmd)
{
switch (cmd) {
@@ -291,6 +346,8 @@ int kvmppc_h_pr(struct kvm_vcpu *vcpu, unsigned long cmd)
break;
kvmppc_set_gpr(vcpu, 3, 0);
return EMULATE_DONE;
+ case H_SET_MODE:
+ return kvmppc_h_pr_set_mode(vcpu);
}
return EMULATE_FAIL;
--
1.8.3.2
^ permalink raw reply related
* Re: [PATCH -V2] powerpc: book3s: PR: Enable Little Endian PR guest
From: Alexander Graf @ 2013-11-28 17:57 UTC (permalink / raw)
To: Aneesh Kumar K.V; +Cc: paulus, linuxppc-dev, kvm-ppc, kvm
In-Reply-To: <1385654018-18232-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On 11/28/2013 04:53 PM, Aneesh Kumar K.V wrote:
> From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
>
> This patch make sure we inherit the LE bit correctly in different case
> so that we can run Little Endian distro in PR mode
IMHO H_SET_MODE should be handled in user space for most cases. We
probably want an interface similar to the RTAS hypercall where user
space can then tell the kernel to handle individual sub-commands inside
the kernel after all for performance counters and other performance
critical operations.
But the normal mode of operation should be to bounce this into user
space and have that one set LPCR then.
Alex
^ permalink raw reply
* Re: [PATCH] phy: Add Vitesse 8514 phy ID
From: David Miller @ 2013-11-28 23:31 UTC (permalink / raw)
To: shh.xie; +Cc: netdev, linuxppc-dev, linux-kernel, Shaohui.Xie
In-Reply-To: <1385354449-2943-1-git-send-email-shh.xie@gmail.com>
From: <shh.xie@gmail.com>
Date: Mon, 25 Nov 2013 12:40:49 +0800
> From: Shaohui Xie <Shaohui.Xie@freescale.com>
>
> Phy is compatible with Vitesse 82xx
>
> Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com>
Applied, thank you.
^ permalink raw reply
* [PATCH] powerpc: Add real mode cache inhibited IO accessors
From: Michael Ellerman @ 2013-11-29 2:27 UTC (permalink / raw)
To: linuxppc-dev
From: Michael Ellerman <michael@ellerman.id.au>
These accessors allow us to do cache inhibited accesses when in real
mode. They should only be used in real mode.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
arch/powerpc/include/asm/io.h | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h
index 575fbf8..97d3869 100644
--- a/arch/powerpc/include/asm/io.h
+++ b/arch/powerpc/include/asm/io.h
@@ -191,8 +191,24 @@ DEF_MMIO_OUT_D(out_le32, 32, stw);
#endif /* __BIG_ENDIAN */
+/*
+ * Cache inhibitied accessors for use in real mode, you don't want to use these
+ * unless you know what you're doing.
+ *
+ * NB. These use the cpu byte ordering.
+ */
+DEF_MMIO_OUT_X(out_rm8, 8, stbcix);
+DEF_MMIO_OUT_X(out_rm16, 16, sthcix);
+DEF_MMIO_OUT_X(out_rm32, 32, stwcix);
+DEF_MMIO_IN_X(in_rm8, 8, lbzcix);
+DEF_MMIO_IN_X(in_rm16, 16, lhzcix);
+DEF_MMIO_IN_X(in_rm32, 32, lwzcix);
+
#ifdef __powerpc64__
+DEF_MMIO_OUT_X(out_rm64, 64, stdcix);
+DEF_MMIO_IN_X(in_rm64, 64, ldcix);
+
#ifdef __BIG_ENDIAN__
DEF_MMIO_OUT_D(out_be64, 64, std);
DEF_MMIO_IN_D(in_be64, 64, ld);
--
1.8.3.2
^ permalink raw reply related
* [PATCH] powernv: Remove get/set_rtc_time when they are not present
From: Michael Neuling @ 2013-11-29 3:22 UTC (permalink / raw)
To: benh; +Cc: michael, Linux PPC dev
Currently we continue to poll get/set_rtc_time even when we know they
are not working.
This changes it so that if it fails at boot time we remove the ppc_md
get/set_rtc_time hooks so that we don't end up polling known broken
calls.
Signed-off-by: Michael Neuling <mikey@neuling.org>
diff --git a/arch/powerpc/platforms/powernv/opal-rtc.c b/arch/powerpc/platforms/powernv/opal-rtc.c
index 7d07c7e..b1885db 100644
--- a/arch/powerpc/platforms/powernv/opal-rtc.c
+++ b/arch/powerpc/platforms/powernv/opal-rtc.c
@@ -18,6 +18,7 @@
#include <asm/opal.h>
#include <asm/firmware.h>
+#include <asm/machdep.h>
static void opal_to_tm(u32 y_m_d, u64 h_m_s_ms, struct rtc_time *tm)
{
@@ -48,8 +49,11 @@ unsigned long __init opal_get_boot_time(void)
else
mdelay(10);
}
- if (rc != OPAL_SUCCESS)
+ if (rc != OPAL_SUCCESS) {
+ ppc_md.get_rtc_time = NULL;
+ ppc_md.set_rtc_time = NULL;
return 0;
+ }
y_m_d = be32_to_cpu(__y_m_d);
h_m_s_ms = be64_to_cpu(__h_m_s_ms);
opal_to_tm(y_m_d, h_m_s_ms, &tm);
^ permalink raw reply related
* [PATCH] powerpc: Fix build break with PPC_EARLY_DEBUG_BOOTX=y
From: Michael Ellerman @ 2013-11-29 3:55 UTC (permalink / raw)
To: linuxppc-dev
A kernel configured with PPC_EARLY_DEBUG_BOOTX=y but PPC_PMAC=n and
PPC_MAPLE=n will fail to link:
btext.c:(.text+0x2d0fc): undefined reference to `.rmci_off'
btext.c:(.text+0x2d214): undefined reference to `.rmci_on'
Fix it by making the build of rmci_on/off() depend on
PPC_EARLY_DEBUG_BOOTX, which also enable the only code that uses them.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
arch/powerpc/kernel/misc_64.S | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index e59caf8..64bf8db 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -246,8 +246,8 @@ _GLOBAL(__bswapdi2)
or r3,r7,r9
blr
-#if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE)
+#ifdef CONFIG_PPC_EARLY_DEBUG_BOOTX
_GLOBAL(rmci_on)
sync
isync
@@ -277,6 +277,9 @@ _GLOBAL(rmci_off)
isync
sync
blr
+#endif /* CONFIG_PPC_EARLY_DEBUG_BOOTX */
+
+#if defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE)
/*
* Do an IO access in real mode
--
1.8.3.2
^ permalink raw reply related
* Error in frreing hugepages with preemption enabled
From: Bharat Bhushan @ 2013-11-29 4:38 UTC (permalink / raw)
To: agraf@suse.de, linuxppc-dev@lists.ozlabs.org
Cc: Scott Wood, kvm@vger.kernel.org, kvm-ppc@vger.kernel.org
Hi Alex,
I am running KVM guest with host kernel having CONFIG_PREEMPT enabled. With=
allocated pages things seems to work fine but I uses hugepages for guest I=
see below prints when "quit" from qemu.
(qemu) QEMU waiting for connection on: telnet:0.0.0.0:4444,server
qemu-system-ppc64: pci_add_option_rom: failed to find romfile "efi-virtio.r=
om"
q
debug_smp_processor_id: 15 callbacks suppressed
BUG: using smp_processor_id() in preemptible [00000000] code: qemu-system-p=
pc/2504
caller is .free_hugepd_range+0xb0/0x21c
CPU: 1 PID: 2504 Comm: qemu-system-ppc Not tainted 3.12.0-rc3-07733-gabf490=
7 #175
Call Trace:
[c0000000fb433400] [c000000000007d38] .show_stack+0x7c/0x1cc (unreliable)
[c0000000fb4334d0] [c0000000005e8ce0] .dump_stack+0x9c/0xf4
[c0000000fb433560] [c0000000002de5ec] .debug_smp_processor_id+0x108/0x11c
[c0000000fb4335f0] [c000000000025e10] .free_hugepd_range+0xb0/0x21c
[c0000000fb433680] [c0000000000265bc] .hugetlb_free_pgd_range+0x2c8/0x3b0
[c0000000fb4337a0] [c0000000000e428c] .free_pgtables+0x14c/0x158
[c0000000fb433840] [c0000000000ef320] .exit_mmap+0xec/0x194
[c0000000fb433960] [c00000000004d780] .mmput+0x64/0x124
[c0000000fb4339e0] [c000000000051f40] .do_exit+0x29c/0x9c8
[c0000000fb433ae0] [c0000000000527c8] .do_group_exit+0x50/0xc4
[c0000000fb433b70] [c0000000000606a0] .get_signal_to_deliver+0x21c/0x5d8
[c0000000fb433c70] [c000000000009b08] .do_signal+0x54/0x278
[c0000000fb433db0] [c000000000009e50] .do_notify_resume+0x64/0x78
[c0000000fb433e30] [c000000000000b44] .ret_from_except_lite+0x70/0x74
This mean that free_hugepd_range() must be called with preemption enabled.
I tried below change and this seems to work fine (I am not having expertise=
in this area so not sure this is correct way)
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index d67db4b..6bf8459 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -563,8 +563,10 @@ static void hugetlb_free_pmd_range(struct mmu_gather *=
tlb, pud_t *pud,
*/
next =3D addr + (1 << hugepd_shift(*(hugepd_t *)pmd));
#endif
+ preempt_disable();
free_hugepd_range(tlb, (hugepd_t *)pmd, PMD_SHIFT,
addr, next, floor, ceiling);
+ preempt_enable();
} while (addr =3D next, addr !=3D end);
=20
start &=3D PUD_MASK;
Thanks
-Bharat
^ permalink raw reply related
* [PATCH] DTS: DMA: Fix DMA3 interrupts
From: hongbo.zhang @ 2013-11-29 8:07 UTC (permalink / raw)
To: scottwood, benh, linuxppc-dev; +Cc: Hongbo Zhang, linux-kernel
From: Hongbo Zhang <hongbo.zhang@freescale.com>
MPIC registers for internal interrupts is non-continous in address, any
internal interrupt number greater than 159 should be added (16+208) to work.
16 is due to external interrupts as usual, 208 is due to the non-continous MPIC
register space.
Tested on T4240 rev2 with SRIO2 disabled.
Signed-off-by: Hongbo Zhang <hongbo.zhang@freescale.com>
---
arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi b/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi
index b89d816..d3cc8d0 100644
--- a/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi
@@ -42,41 +42,41 @@ dma2: dma@102300 {
dma-channel@0 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x0 0x80>;
- interrupts = <256 2 0 0>;
+ interrupts = <464 2 0 0>;
};
dma-channel@80 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x80 0x80>;
- interrupts = <257 2 0 0>;
+ interrupts = <465 2 0 0>;
};
dma-channel@100 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x100 0x80>;
- interrupts = <258 2 0 0>;
+ interrupts = <466 2 0 0>;
};
dma-channel@180 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x180 0x80>;
- interrupts = <259 2 0 0>;
+ interrupts = <467 2 0 0>;
};
dma-channel@300 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x300 0x80>;
- interrupts = <260 2 0 0>;
+ interrupts = <468 2 0 0>;
};
dma-channel@380 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x380 0x80>;
- interrupts = <261 2 0 0>;
+ interrupts = <469 2 0 0>;
};
dma-channel@400 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x400 0x80>;
- interrupts = <262 2 0 0>;
+ interrupts = <470 2 0 0>;
};
dma-channel@480 {
compatible = "fsl,eloplus-dma-channel";
reg = <0x480 0x80>;
- interrupts = <263 2 0 0>;
+ interrupts = <471 2 0 0>;
};
};
--
1.7.9.5
^ permalink raw reply related
* Re: [PATCH v2] powerpc/gpio: Fix the wrong GPIO input data on MPC8572/MPC8536
From: Linus Walleij @ 2013-11-29 9:32 UTC (permalink / raw)
To: Liu Gang, Anatolij Gustschin
Cc: linux-gpio@vger.kernel.org, linuxppc-dev@lists.ozlabs.org list,
r61911, b07421
In-Reply-To: <1385107960-373-1-git-send-email-Gang.Liu@freescale.com>
On Fri, Nov 22, 2013 at 9:12 AM, Liu Gang <Gang.Liu@freescale.com> wrote:
> For MPC8572/MPC8536, the status of GPIOs defined as output
> cannot be determined by reading GPDAT register, so the code
> use shadow data register instead. But the code may give the
> wrong status of GPIOs defined as input under some scenarios:
>
> 1. If some pins were configured as inputs and were asserted
> high before booting the kernel, the shadow data has been
> initialized with those pin values.
> 2. Some pins have been configured as output first and have
> been set to the high value, then reconfigured as input.
>
> The above cases will make the shadow data for those input
> pins to be set to high. Then reading the pin status will
> always return high even if the actual pin status is low.
>
> The code should eliminate the effects of the shadow data to
> the input pins, and the status of those pins should be
> read directly from GPDAT.
>
> Signed-off-by: Liu Gang <Gang.Liu@freescale.com>
> ---
> changes in v2:
> - Added more description of the problem.
> - Reduced one in_be32() call.
> - Do not modify the shadow data.
I'm waiting for the maintainers to ACK this before
applying.
Anatolij?
Yours,
Linus Walleij
^ permalink raw reply
* [PATCH V4 0/9] cpuidle/ppc: Enable deep idle states on PowerNV
From: Preeti U Murthy @ 2013-11-29 10:41 UTC (permalink / raw)
To: fweisbec, paul.gortmaker, paulus, shangw, rjw, galak, benh,
paulmck, arnd, linux-pm, rostedt, michael, john.stultz, tglx,
chenhui.zhao, deepthi, r58472, geoff, linux-kernel, srivatsa.bhat,
schwidefsky, svaidy, linuxppc-dev
On PowerPC, when CPUs enter certain deep idle states, the local timers stop and the
time base could go out of sync with the rest of the cores in the system.
This patchset adds support to wake up CPUs in such idle states by broadcasting
IPIs to them at their next timer events. We refer to these IPIs as the tick
broadcast IPIs in this patchset to refer to this context.
The patchset also includes resyncing of time base with the rest of the cores
in the system as soon as the CPUs wake up from deep idle states.
"Fast-Sleep" is a deep idle state on Power8 in which the above mentioned challenges
exist. With the required support for deep idle states thus in place, the patchset
adds Fast-Sleep into cpuidle. Fast-Sleep can yield us significantly more power
savings than the idle states that we have in cpuidle so far.
This patchset is based on mainline-3.13-rc1 and the cpuidle driver for power
posted by Deepthi Dharwar: https://lkml.org/lkml/2013/11/11/29
Changes in V4:
1. Add Fast Sleep CPU idle state on PowerNV.
2. Add the required context management for Fast Sleep and the call to OPAL
to synchronize time base after wakeup from fast sleep.
4. Add parsing of CPU idle states from the device tree to populate the cpuidle
state table.
5. Rename ambiguous functions in the code around waking up of CPUs from fast
sleep.
6. Fixed a bug in re-programming of the hrtimer that is queued to wakeup the
CPUs in fast sleep and modified Changelogs.
7. Added the ARCH_HAS_TICK_BROADCAST option. This signifies that we have a
arch specific function to perform broadcast.
Changes in V3:
http://thread.gmane.org/gmane.linux.power-management.general/38113
1. Fix the way in which a broadcast ipi is handled on the idling cpus. Timer
handling on a broadcast ipi is being done now without missing out any timer
stats generation.
2. Fix a bug in the programming of the hrtimer meant to do broadcast. Program
it to trigger at the earlier of a "broadcast period", and the next wakeup
event. By introducing the "broadcast period" as the maximum period after
which the broadcast hrtimer can fire, we ensure that we do not miss
wakeups in corner cases.
3. On hotplug of a broadcast cpu, trigger the hrtimer meant to do broadcast
to fire immediately on the new broadcast cpu. This will ensure we do not miss
doing a broadcast pending in the nearest future.
4. Change the type of allocation from GFP_KERNEL to GFP_NOWAIT while
initializing bc_hrtimer since we are in an atomic context and cannot sleep.
5. Use the broadcast ipi to wakeup the newly nominated broadcast cpu on
hotplug of the old instead of smp_call_function_single(). This is because we
are interrupt disabled at this point and should not be using
smp_call_function_single or its children in this context to send an ipi.
6. Move GENERIC_CLOCKEVENTS_BROADCAST to arch/powerpc/Kconfig.
7. Fix coding style issues.
Changes in V2: https://lkml.org/lkml/2013/8/14/239
1. Dynamically pick a broadcast CPU, instead of having a dedicated one.
2. Remove the constraint of having to disable tickless idle on the broadcast
CPU by queueing a hrtimer dedicated to do broadcast.
V1 posting: https://lkml.org/lkml/2013/7/25/740.
1. Added the infrastructure to wakeup CPUs in deep idle states in which the
local timers stop.
---
Preeti U Murthy (5):
cpuidle/ppc: Split timer_interrupt() into timer handling and interrupt handling routines
cpuidle/ppc: Add basic infrastructure to enable the broadcast framework on ppc
cpuidle/powernv: Add "Fast-Sleep" CPU idle state
cpuidle/ppc: Nominate new broadcast cpu on hotplug of the old
cpuidle/powernv: Parse device tree to setup idle states
Srivatsa S. Bhat (2):
powerpc: Free up the slot of PPC_MSG_CALL_FUNC_SINGLE IPI message
powerpc: Implement tick broadcast IPI as a fixed IPI message
Vaidyanathan Srinivasan (2):
powernv/cpuidle: Add context management for Fast Sleep
powermgt: Add OPAL call to resync timebase on wakeup
arch/powerpc/Kconfig | 2
arch/powerpc/include/asm/opal.h | 2
arch/powerpc/include/asm/processor.h | 1
arch/powerpc/include/asm/smp.h | 2
arch/powerpc/include/asm/time.h | 4
arch/powerpc/kernel/exceptions-64s.S | 10 +
arch/powerpc/kernel/idle_power7.S | 90 +++++++--
arch/powerpc/kernel/smp.c | 23 ++
arch/powerpc/kernel/time.c | 137 ++++++++++----
arch/powerpc/platforms/cell/interrupt.c | 2
arch/powerpc/platforms/powernv/opal-wrappers.S | 1
arch/powerpc/platforms/ps3/smp.c | 2
drivers/cpuidle/cpuidle-powerpc-book3s.c | 241 +++++++++++++++++++++++-
13 files changed, 443 insertions(+), 74 deletions(-)
--
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox