From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [PATCH V2 mlx5-next 03/11] net/mlx5: Separate and generalize dma device from pci device Date: Mon, 29 Apr 2019 18:14:05 +0000 Message-ID: <20190429181326.6262-4-saeedm@mellanox.com> References: <20190429181326.6262-1-saeedm@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190429181326.6262-1-saeedm@mellanox.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org To: Saeed Mahameed , Leon Romanovsky Cc: Jason Gunthorpe , "netdev@vger.kernel.org" , "linux-rdma@vger.kernel.org" , Vu Pham , Parav Pandit List-Id: linux-rdma@vger.kernel.org RnJvbTogVnUgUGhhbSA8dnVodW9uZ0BtZWxsYW5veC5jb20+DQoNClRoZSBtbHg1IFN1Yi1GdW5j dGlvbiAoU0YpIHN1YiBkZXZpY2Ugd2lsbCBiZSBpbnRyb2R1Y2VkIGluDQpzdWJzZXF1ZW50IHBh dGNoZXMuIEl0IHdpbGwgYmUgY3JlYXRlZCBhcyBtZWRpYXRlZCBkZXZpY2UgYW5kDQpiZWxvbmcg dG8gbWRldiBidXMuIEl0IGlzIG5lY2Vzc2FyeSB0byB0cmVhdCBkbWEgb3BlcmF0aW9ucyBvbg0K UEYsIFZGIGFuZCBTRiBpbiB1bmlmb3JtIHdheSwgaGVuY2UgcmVkdWNlIHRoZSBkZXBlbmRlbmN5 IG9uDQpwZGV2IHBjaSBkZXYgc3RydWN0IGFuZCB3b3JrIGRpcmVjdGx5IG91dCBvZiBuZXdseSBp bnRyb2R1Y2VkDQonc3RydWN0IGRldmljZScgZnJvbSBwcmV2aW91cyBwYXRjaC4NCg0KVGhpcyBw YXRjaCBkb2VzIG5vdCBjaGFuZ2UgYW55IGZ1bmN0aW9uYWxpdHkuDQoNClNpZ25lZC1vZmYtYnk6 IFZ1IFBoYW0gPHZ1aHVvbmdAbWVsbGFub3guY29tPg0KUmV2aWV3ZWQtYnk6IFBhcmF2IFBhbmRp dCA8cGFyYXZAbWVsbGFub3guY29tPg0KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNh ZWVkbUBtZWxsYW5veC5jb20+DQotLS0NCiBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWlu LmMgICAgICAgICAgICAgfCAxMCArKysrKystLS0tDQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvYWxsb2MuYyAgIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQ0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYyB8ICA3ICsrKy0tLS0NCiAuLi4v bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgfCAxNCArKysrKysrLS0t LS0tLQ0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jICB8ICAy ICstDQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wYWdlYWxsb2MuYyAgIHwgMTUg KysrKysrKy0tLS0tLS0tDQogNiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAzMyBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21h aW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYw0KaW5kZXggM2M3NmVlMjRh MTdlLi40NGQwMGNjNWZmZTIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4 NS9tYWluLmMNCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYw0KQEAgLTE4 MSw3ICsxODEsNyBAQCBzdGF0aWMgaW50IG1seDVfbmV0ZGV2X2V2ZW50KHN0cnVjdCBub3RpZmll cl9ibG9jayAqdGhpcywNCiAJCQkJCQkJICBpYmRldi0+cmVwLT52cG9ydCk7DQogCQkJaWYgKHJl cF9uZGV2ID09IG5kZXYpDQogCQkJCXJvY2UtPm5ldGRldiA9IG5kZXY7DQotCQl9IGVsc2UgaWYg KG5kZXYtPmRldi5wYXJlbnQgPT0gJm1kZXYtPnBkZXYtPmRldikgew0KKwkJfSBlbHNlIGlmIChu ZGV2LT5kZXYucGFyZW50ID09IG1kZXYtPmRldmljZSkgew0KIAkJCXJvY2UtPm5ldGRldiA9IG5k ZXY7DQogCQl9DQogCQl3cml0ZV91bmxvY2soJnJvY2UtPm5ldGRldl9sb2NrKTsNCkBAIC01NjY2 LDcgKzU2NjYsOCBAQCBzdGF0aWMgaW50IG1seDVfaWJfaW5pdF9tdWx0aXBvcnRfbWFzdGVyKHN0 cnVjdCBtbHg1X2liX2RldiAqZGV2KQ0KIAkJCX0NCiANCiAJCQlpZiAoYm91bmQpIHsNCi0JCQkJ ZGV2X2RiZygmbXBpLT5tZGV2LT5wZGV2LT5kZXYsICJyZW1vdmluZyBwb3J0IGZyb20gdW5hZmZp bGlhdGVkIGxpc3QuXG4iKTsNCisJCQkJZGV2X2RiZyhtcGktPm1kZXYtPmRldmljZSwNCisJCQkJ CSJyZW1vdmluZyBwb3J0IGZyb20gdW5hZmZpbGlhdGVkIGxpc3QuXG4iKTsNCiAJCQkJbWx4NV9p Yl9kYmcoZGV2LCAicG9ydCAlZCBib3VuZFxuIiwgaSArIDEpOw0KIAkJCQlsaXN0X2RlbCgmbXBp LT5saXN0KTsNCiAJCQkJYnJlYWs7DQpAQCAtNTg2NSw3ICs1ODY2LDcgQEAgaW50IG1seDVfaWJf c3RhZ2VfaW5pdF9pbml0KHN0cnVjdCBtbHg1X2liX2RldiAqZGV2KQ0KIAlkZXYtPmliX2Rldi5s b2NhbF9kbWFfbGtleQk9IDAgLyogbm90IHN1cHBvcnRlZCBmb3Igbm93ICovOw0KIAlkZXYtPmli X2Rldi5waHlzX3BvcnRfY250CT0gZGV2LT5udW1fcG9ydHM7DQogCWRldi0+aWJfZGV2Lm51bV9j b21wX3ZlY3RvcnMgICAgPSBtbHg1X2NvbXBfdmVjdG9yc19jb3VudChtZGV2KTsNCi0JZGV2LT5p Yl9kZXYuZGV2LnBhcmVudAkJPSAmbWRldi0+cGRldi0+ZGV2Ow0KKwlkZXYtPmliX2Rldi5kZXYu cGFyZW50CQk9IG1kZXYtPmRldmljZTsNCiANCiAJbXV0ZXhfaW5pdCgmZGV2LT5jYXBfbWFza19t dXRleCk7DQogCUlOSVRfTElTVF9IRUFEKCZkZXYtPnFwX2xpc3QpOw0KQEAgLTY1NTQsNyArNjU1 NSw4IEBAIHN0YXRpYyB2b2lkICptbHg1X2liX2FkZF9zbGF2ZV9wb3J0KHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICptZGV2KQ0KIA0KIAlpZiAoIWJvdW5kKSB7DQogCQlsaXN0X2FkZF90YWlsKCZtcGkt Pmxpc3QsICZtbHg1X2liX3VuYWZmaWxpYXRlZF9wb3J0X2xpc3QpOw0KLQkJZGV2X2RiZygmbWRl di0+cGRldi0+ZGV2LCAibm8gc3VpdGFibGUgSUIgZGV2aWNlIGZvdW5kIHRvIGJpbmQgdG8sIGFk ZGVkIHRvIHVuYWZmaWxpYXRlZCBsaXN0LlxuIik7DQorCQlkZXZfZGJnKG1kZXYtPmRldmljZSwN CisJCQkibm8gc3VpdGFibGUgSUIgZGV2aWNlIGZvdW5kIHRvIGJpbmQgdG8sIGFkZGVkIHRvIHVu YWZmaWxpYXRlZCBsaXN0LlxuIik7DQogCX0NCiAJbXV0ZXhfdW5sb2NrKCZtbHg1X2liX211bHRp cG9ydF9tdXRleCk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2FsbG9jLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvYWxsb2MuYw0KaW5kZXggOTAwOGUxNzEyNmRiLi41NDlmOTYyY2Q4NmUgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYw0KKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMNCkBAIC01 NywxNSArNTcsMTYgQEAgc3RhdGljIHZvaWQgKm1seDVfZG1hX3phbGxvY19jb2hlcmVudF9ub2Rl KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQogCQkJCQkgICBpbnQgbm9kZSkNCiB7DQogCXN0 cnVjdCBtbHg1X3ByaXYgKnByaXYgPSAmZGV2LT5wcml2Ow0KKwlzdHJ1Y3QgZGV2aWNlICpkZXZp Y2UgPSBkZXYtPmRldmljZTsNCiAJaW50IG9yaWdpbmFsX25vZGU7DQogCXZvaWQgKmNwdV9oYW5k bGU7DQogDQogCW11dGV4X2xvY2soJnByaXYtPmFsbG9jX211dGV4KTsNCi0Jb3JpZ2luYWxfbm9k ZSA9IGRldl90b19ub2RlKCZkZXYtPnBkZXYtPmRldik7DQotCXNldF9kZXZfbm9kZSgmZGV2LT5w ZGV2LT5kZXYsIG5vZGUpOw0KLQljcHVfaGFuZGxlID0gZG1hX2FsbG9jX2NvaGVyZW50KCZkZXYt PnBkZXYtPmRldiwgc2l6ZSwgZG1hX2hhbmRsZSwNCisJb3JpZ2luYWxfbm9kZSA9IGRldl90b19u b2RlKGRldmljZSk7DQorCXNldF9kZXZfbm9kZShkZXZpY2UsIG5vZGUpOw0KKwljcHVfaGFuZGxl ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldmljZSwgc2l6ZSwgZG1hX2hhbmRsZSwNCiAJCQkJCUdG UF9LRVJORUwpOw0KLQlzZXRfZGV2X25vZGUoJmRldi0+cGRldi0+ZGV2LCBvcmlnaW5hbF9ub2Rl KTsNCisJc2V0X2Rldl9ub2RlKGRldmljZSwgb3JpZ2luYWxfbm9kZSk7DQogCW11dGV4X3VubG9j aygmcHJpdi0+YWxsb2NfbXV0ZXgpOw0KIAlyZXR1cm4gY3B1X2hhbmRsZTsNCiB9DQpAQCAtMTEw LDcgKzExMSw3IEBAIEVYUE9SVF9TWU1CT0wobWx4NV9idWZfYWxsb2MpOw0KIA0KIHZvaWQgbWx4 NV9idWZfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9mcmFnX2J1 ZiAqYnVmKQ0KIHsNCi0JZG1hX2ZyZWVfY29oZXJlbnQoJmRldi0+cGRldi0+ZGV2LCBidWYtPnNp emUsIGJ1Zi0+ZnJhZ3MtPmJ1ZiwNCisJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LT5kZXZpY2UsIGJ1 Zi0+c2l6ZSwgYnVmLT5mcmFncy0+YnVmLA0KIAkJCSAgYnVmLT5mcmFncy0+bWFwKTsNCiANCiAJ a2ZyZWUoYnVmLT5mcmFncyk7DQpAQCAtMTM5LDcgKzE0MCw3IEBAIGludCBtbHg1X2ZyYWdfYnVm X2FsbG9jX25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IHNpemUsDQogCQlpZiAo IWZyYWctPmJ1ZikNCiAJCQlnb3RvIGVycl9mcmVlX2J1ZjsNCiAJCWlmIChmcmFnLT5tYXAgJiAo KDEgPDwgYnVmLT5wYWdlX3NoaWZ0KSAtIDEpKSB7DQotCQkJZG1hX2ZyZWVfY29oZXJlbnQoJmRl di0+cGRldi0+ZGV2LCBmcmFnX3N6LA0KKwkJCWRtYV9mcmVlX2NvaGVyZW50KGRldi0+ZGV2aWNl LCBmcmFnX3N6LA0KIAkJCQkJICBidWYtPmZyYWdzW2ldLmJ1ZiwgYnVmLT5mcmFnc1tpXS5tYXAp Ow0KIAkJCW1seDVfY29yZV93YXJuKGRldiwgInVuZXhwZWN0ZWQgbWFwIGFsaWdubWVudDogJXBh ZCwgcGFnZV9zaGlmdD0lZFxuIiwNCiAJCQkJICAgICAgICZmcmFnLT5tYXAsIGJ1Zi0+cGFnZV9z aGlmdCk7DQpAQCAtMTUyLDcgKzE1Myw3IEBAIGludCBtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUo c3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IHNpemUsDQogDQogZXJyX2ZyZWVfYnVmOg0K IAl3aGlsZSAoaS0tKQ0KLQkJZG1hX2ZyZWVfY29oZXJlbnQoJmRldi0+cGRldi0+ZGV2LCBQQUdF X1NJWkUsIGJ1Zi0+ZnJhZ3NbaV0uYnVmLA0KKwkJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LT5kZXZp Y2UsIFBBR0VfU0laRSwgYnVmLT5mcmFnc1tpXS5idWYsDQogCQkJCSAgYnVmLT5mcmFnc1tpXS5t YXApOw0KIAlrZnJlZShidWYtPmZyYWdzKTsNCiBlcnJfb3V0Og0KQEAgLTE2OCw3ICsxNjksNyBA QCB2b2lkIG1seDVfZnJhZ19idWZfZnJlZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1 Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmKQ0KIAlmb3IgKGkgPSAwOyBpIDwgYnVmLT5ucGFnZXM7IGkr Kykgew0KIAkJaW50IGZyYWdfc3ogPSBtaW5fdChpbnQsIHNpemUsIFBBR0VfU0laRSk7DQogDQot CQlkbWFfZnJlZV9jb2hlcmVudCgmZGV2LT5wZGV2LT5kZXYsIGZyYWdfc3osIGJ1Zi0+ZnJhZ3Nb aV0uYnVmLA0KKwkJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LT5kZXZpY2UsIGZyYWdfc3osIGJ1Zi0+ ZnJhZ3NbaV0uYnVmLA0KIAkJCQkgIGJ1Zi0+ZnJhZ3NbaV0ubWFwKTsNCiAJCXNpemUgLT0gZnJh Z19zejsNCiAJfQ0KQEAgLTI3NCw3ICsyNzUsNyBAQCB2b2lkIG1seDVfZGJfZnJlZShzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9kYiAqZGIpDQogCV9fc2V0X2JpdChkYi0+ aW5kZXgsIGRiLT51LnBnZGlyLT5iaXRtYXApOw0KIA0KIAlpZiAoYml0bWFwX2Z1bGwoZGItPnUu cGdkaXItPmJpdG1hcCwgZGJfcGVyX3BhZ2UpKSB7DQotCQlkbWFfZnJlZV9jb2hlcmVudCgmKGRl di0+cGRldi0+ZGV2KSwgUEFHRV9TSVpFLA0KKwkJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LT5kZXZp Y2UsIFBBR0VfU0laRSwNCiAJCQkJICBkYi0+dS5wZ2Rpci0+ZGJfcGFnZSwgZGItPnUucGdkaXIt PmRiX2RtYSk7DQogCQlsaXN0X2RlbCgmZGItPnUucGdkaXItPmxpc3QpOw0KIAkJYml0bWFwX2Zy ZWUoZGItPnUucGdkaXItPmJpdG1hcCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2NtZC5jDQppbmRleCA3NzlmYTFlOWVlNGUuLjc0NmM4Y2M5NWU0OCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYw0K KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jDQpAQCAt MTg1Miw3ICsxODUyLDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlX21zZ19jYWNoZShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2KQ0KIA0KIHN0YXRpYyBpbnQgYWxsb2NfY21kX3BhZ2Uoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kICpjbWQpDQogew0KLQlzdHJ1Y3QgZGV2 aWNlICpkZGV2ID0gJmRldi0+cGRldi0+ZGV2Ow0KKwlzdHJ1Y3QgZGV2aWNlICpkZGV2ID0gZGV2 LT5kZXZpY2U7DQogDQogCWNtZC0+Y21kX2FsbG9jX2J1ZiA9IGRtYV9hbGxvY19jb2hlcmVudChk ZGV2LCBNTFg1X0FEQVBURVJfUEFHRV9TSVpFLA0KIAkJCQkJCSZjbWQtPmFsbG9jX2RtYSwgR0ZQ X0tFUk5FTCk7DQpAQCAtMTg4Myw3ICsxODgzLDcgQEAgc3RhdGljIGludCBhbGxvY19jbWRfcGFn ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWQgKmNtZCkNCiANCiBz dGF0aWMgdm9pZCBmcmVlX2NtZF9wYWdlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVj dCBtbHg1X2NtZCAqY21kKQ0KIHsNCi0Jc3RydWN0IGRldmljZSAqZGRldiA9ICZkZXYtPnBkZXYt PmRldjsNCisJc3RydWN0IGRldmljZSAqZGRldiA9IGRldi0+ZGV2aWNlOw0KIA0KIAlkbWFfZnJl ZV9jb2hlcmVudChkZGV2LCBjbWQtPmFsbG9jX3NpemUsIGNtZC0+Y21kX2FsbG9jX2J1ZiwNCiAJ CQkgIGNtZC0+YWxsb2NfZG1hKTsNCkBAIC0xOTA4LDggKzE5MDgsNyBAQCBpbnQgbWx4NV9jbWRf aW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCX0N CiANCi0JY21kLT5wb29sID0gZG1hX3Bvb2xfY3JlYXRlKCJtbHg1X2NtZCIsICZkZXYtPnBkZXYt PmRldiwgc2l6ZSwgYWxpZ24sDQotCQkJCSAgICAwKTsNCisJY21kLT5wb29sID0gZG1hX3Bvb2xf Y3JlYXRlKCJtbHg1X2NtZCIsIGRldi0+ZGV2aWNlLCBzaXplLCBhbGlnbiwgMCk7DQogCWlmICgh Y21kLT5wb29sKQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMNCmluZGV4IGI1ZmRiZDMxOTBkOS4u YWUwZjE1NGQxNmRiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX21haW4uYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX21haW4uYw0KQEAgLTE4OTEsNyArMTg5MSw3IEBAIHN0YXRpYyBpbnQgbWx4 NWVfb3Blbl9jaGFubmVsKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBpbnQgaXgsDQogCWMtPnRz dGFtcCAgID0gJnByaXYtPnRzdGFtcDsNCiAJYy0+aXggICAgICAgPSBpeDsNCiAJYy0+Y3B1ICAg ICAgPSBjcHU7DQotCWMtPnBkZXYgICAgID0gJnByaXYtPm1kZXYtPnBkZXYtPmRldjsNCisJYy0+ cGRldiAgICAgPSBwcml2LT5tZGV2LT5kZXZpY2U7DQogCWMtPm5ldGRldiAgID0gcHJpdi0+bmV0 ZGV2Ow0KIAljLT5ta2V5X2JlICA9IGNwdV90b19iZTMyKHByaXYtPm1kZXYtPm1seDVlX3Jlcy5t a2V5LmtleSk7DQogCWMtPm51bV90YyAgID0gcGFyYW1zLT5udW1fdGM7DQpAQCAtMjEzNyw3ICsy MTM3LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfYnVpbGRfcnFfcGFyYW0oc3RydWN0IG1seDVlX3By aXYgKnByaXYsDQogCU1MWDVfU0VUKHJxYywgcnFjLCB2c2QsICAgICAgICAgICAgcGFyYW1zLT52 bGFuX3N0cmlwX2Rpc2FibGUpOw0KIAlNTFg1X1NFVChycWMsIHJxYywgc2NhdHRlcl9mY3MsICAg IHBhcmFtcy0+c2NhdHRlcl9mY3NfZW4pOw0KIA0KLQlwYXJhbS0+d3EuYnVmX251bWFfbm9kZSA9 IGRldl90b19ub2RlKCZtZGV2LT5wZGV2LT5kZXYpOw0KKwlwYXJhbS0+d3EuYnVmX251bWFfbm9k ZSA9IGRldl90b19ub2RlKG1kZXYtPmRldmljZSk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIG1seDVl X2J1aWxkX2Ryb3BfcnFfcGFyYW0oc3RydWN0IG1seDVlX3ByaXYgKnByaXYsDQpAQCAtMjE1Miw3 ICsyMTUyLDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfYnVpbGRfZHJvcF9ycV9wYXJhbShzdHJ1Y3Qg bWx4NWVfcHJpdiAqcHJpdiwNCiAJCSBtbHg1ZV9nZXRfcnF3cV9sb2dfc3RyaWRlKE1MWDVfV1Ff VFlQRV9DWUNMSUMsIDEpKTsNCiAJTUxYNV9TRVQocnFjLCBycWMsIGNvdW50ZXJfc2V0X2lkLCBw cml2LT5kcm9wX3JxX3FfY291bnRlcik7DQogDQotCXBhcmFtLT53cS5idWZfbnVtYV9ub2RlID0g ZGV2X3RvX25vZGUoJm1kZXYtPnBkZXYtPmRldik7DQorCXBhcmFtLT53cS5idWZfbnVtYV9ub2Rl ID0gZGV2X3RvX25vZGUobWRldi0+ZGV2aWNlKTsNCiB9DQogDQogc3RhdGljIHZvaWQgbWx4NWVf YnVpbGRfc3FfcGFyYW1fY29tbW9uKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LA0KQEAgLTIxNjQs NyArMjE2NCw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2J1aWxkX3NxX3BhcmFtX2NvbW1vbihzdHJ1 Y3QgbWx4NWVfcHJpdiAqcHJpdiwNCiAJTUxYNV9TRVQod3EsIHdxLCBsb2dfd3Ffc3RyaWRlLCBp bG9nMihNTFg1X1NFTkRfV1FFX0JCKSk7DQogCU1MWDVfU0VUKHdxLCB3cSwgcGQsICAgICAgICAg ICAgcHJpdi0+bWRldi0+bWx4NWVfcmVzLnBkbik7DQogDQotCXBhcmFtLT53cS5idWZfbnVtYV9u b2RlID0gZGV2X3RvX25vZGUoJnByaXYtPm1kZXYtPnBkZXYtPmRldik7DQorCXBhcmFtLT53cS5i dWZfbnVtYV9ub2RlID0gZGV2X3RvX25vZGUocHJpdi0+bWRldi0+ZGV2aWNlKTsNCiB9DQogDQog c3RhdGljIHZvaWQgbWx4NWVfYnVpbGRfc3FfcGFyYW0oc3RydWN0IG1seDVlX3ByaXYgKnByaXYs DQpAQCAtMzA0Niw4ICszMDQ2LDggQEAgc3RhdGljIGludCBtbHg1ZV9hbGxvY19kcm9wX2NxKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LA0KIAkJCSAgICAgICBzdHJ1Y3QgbWx4NWVfY3EgKmNx LA0KIAkJCSAgICAgICBzdHJ1Y3QgbWx4NWVfY3FfcGFyYW0gKnBhcmFtKQ0KIHsNCi0JcGFyYW0t PndxLmJ1Zl9udW1hX25vZGUgPSBkZXZfdG9fbm9kZSgmbWRldi0+cGRldi0+ZGV2KTsNCi0JcGFy YW0tPndxLmRiX251bWFfbm9kZSAgPSBkZXZfdG9fbm9kZSgmbWRldi0+cGRldi0+ZGV2KTsNCisJ cGFyYW0tPndxLmJ1Zl9udW1hX25vZGUgPSBkZXZfdG9fbm9kZShtZGV2LT5kZXZpY2UpOw0KKwlw YXJhbS0+d3EuZGJfbnVtYV9ub2RlICA9IGRldl90b19ub2RlKG1kZXYtPmRldmljZSk7DQogDQog CXJldHVybiBtbHg1ZV9hbGxvY19jcV9jb21tb24obWRldiwgcGFyYW0sIGNxKTsNCiB9DQpAQCAt NDYzOSw3ICs0NjM5LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfYnVpbGRfbmljX25ldGRldihzdHJ1 Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQ0KIAlib29sIGZjc19zdXBwb3J0ZWQ7DQogCWJvb2wgZmNz X2VuYWJsZWQ7DQogDQotCVNFVF9ORVRERVZfREVWKG5ldGRldiwgJm1kZXYtPnBkZXYtPmRldik7 DQorCVNFVF9ORVRERVZfREVWKG5ldGRldiwgbWRldi0+ZGV2aWNlKTsNCiANCiAJbmV0ZGV2LT5u ZXRkZXZfb3BzID0gJm1seDVlX25ldGRldl9vcHM7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jDQppbmRleCBhNjZiNmVkODBiMzAuLmZj MjE0MDNmMTQwZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9yZXAuYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX3JlcC5jDQpAQCAtMTM4OSw3ICsxMzg5LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVf YnVpbGRfcmVwX25ldGRldihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQ0KIAlzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqbWRldiA9IHByaXYtPm1kZXY7DQogDQogCWlmIChyZXAtPnZwb3J0ID09IE1M WDVfVlBPUlRfVVBMSU5LKSB7DQotCQlTRVRfTkVUREVWX0RFVihuZXRkZXYsICZwcml2LT5tZGV2 LT5wZGV2LT5kZXYpOw0KKwkJU0VUX05FVERFVl9ERVYobmV0ZGV2LCBtZGV2LT5kZXZpY2UpOw0K IAkJbmV0ZGV2LT5uZXRkZXZfb3BzID0gJm1seDVlX25ldGRldl9vcHNfdXBsaW5rX3JlcDsNCiAJ CS8qIHdlIHdhbnQgYSBwZXJzaXN0ZW50IG1hYyBmb3IgdGhlIHVwbGluayByZXAgKi8NCiAJCW1s eDVfcXVlcnlfbmljX3Zwb3J0X21hY19hZGRyZXNzKG1kZXYsIDAsIG5ldGRldi0+ZGV2X2FkZHIp Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9w YWdlYWxsb2MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wYWdl YWxsb2MuYw0KaW5kZXggZDg3ZDQyZjRmNmRkLi45MWJkMjU4ZWNmMWIgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvcGFnZWFsbG9jLmMNCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9wYWdlYWxsb2MuYw0KQEAg LTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgdm9pZCBmcmVlXzRrKHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYsIHU2NCBhZGRyKQ0KIAkJcmJfZXJhc2UoJmZ3cC0+cmJfbm9kZSwgJmRldi0+cHJpdi5w YWdlX3Jvb3QpOw0KIAkJaWYgKGZ3cC0+ZnJlZV9jb3VudCAhPSAxKQ0KIAkJCWxpc3RfZGVsKCZm d3AtPmxpc3QpOw0KLQkJZG1hX3VubWFwX3BhZ2UoJmRldi0+cGRldi0+ZGV2LCBhZGRyICYgTUxY NV9VNjRfNEtfUEFHRV9NQVNLLA0KKwkJZG1hX3VubWFwX3BhZ2UoZGV2LT5kZXZpY2UsIGFkZHIg JiBNTFg1X1U2NF80S19QQUdFX01BU0ssDQogCQkJICAgICAgIFBBR0VfU0laRSwgRE1BX0JJRElS RUNUSU9OQUwpOw0KIAkJX19mcmVlX3BhZ2UoZndwLT5wYWdlKTsNCiAJCWtmcmVlKGZ3cCk7DQpA QCAtMjExLDExICsyMTEsMTIgQEAgc3RhdGljIHZvaWQgZnJlZV80ayhzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LCB1NjQgYWRkcikNCiANCiBzdGF0aWMgaW50IGFsbG9jX3N5c3RlbV9wYWdlKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBmdW5jX2lkKQ0KIHsNCisJc3RydWN0IGRldmlj ZSAqZGV2aWNlID0gZGV2LT5kZXZpY2U7DQorCWludCBuaWQgPSBkZXZfdG9fbm9kZShkZXZpY2Up Ow0KIAlzdHJ1Y3QgcGFnZSAqcGFnZTsNCiAJdTY0IHplcm9fYWRkciA9IDE7DQogCXU2NCBhZGRy Ow0KIAlpbnQgZXJyOw0KLQlpbnQgbmlkID0gZGV2X3RvX25vZGUoJmRldi0+cGRldi0+ZGV2KTsN CiANCiAJcGFnZSA9IGFsbG9jX3BhZ2VzX25vZGUobmlkLCBHRlBfSElHSFVTRVIsIDApOw0KIAlp ZiAoIXBhZ2UpIHsNCkBAIC0yMjMsOSArMjI0LDggQEAgc3RhdGljIGludCBhbGxvY19zeXN0ZW1f cGFnZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgZnVuY19pZCkNCiAJCXJldHVybiAt RU5PTUVNOw0KIAl9DQogbWFwOg0KLQlhZGRyID0gZG1hX21hcF9wYWdlKCZkZXYtPnBkZXYtPmRl diwgcGFnZSwgMCwNCi0JCQkgICAgUEFHRV9TSVpFLCBETUFfQklESVJFQ1RJT05BTCk7DQotCWlm IChkbWFfbWFwcGluZ19lcnJvcigmZGV2LT5wZGV2LT5kZXYsIGFkZHIpKSB7DQorCWFkZHIgPSBk bWFfbWFwX3BhZ2UoZGV2aWNlLCBwYWdlLCAwLCBQQUdFX1NJWkUsIERNQV9CSURJUkVDVElPTkFM KTsNCisJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGRldmljZSwgYWRkcikpIHsNCiAJCW1seDVfY29y ZV93YXJuKGRldiwgImZhaWxlZCBkbWEgbWFwcGluZyBwYWdlXG4iKTsNCiAJCWVyciA9IC1FTk9N RU07DQogCQlnb3RvIGVycl9tYXBwaW5nOw0KQEAgLTI0MCw4ICsyNDAsNyBAQCBzdGF0aWMgaW50 IGFsbG9jX3N5c3RlbV9wYWdlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBmdW5jX2lk KQ0KIAllcnIgPSBpbnNlcnRfcGFnZShkZXYsIGFkZHIsIHBhZ2UsIGZ1bmNfaWQpOw0KIAlpZiAo ZXJyKSB7DQogCQltbHg1X2NvcmVfZXJyKGRldiwgImZhaWxlZCB0byB0cmFjayBhbGxvY2F0ZWQg cGFnZVxuIik7DQotCQlkbWFfdW5tYXBfcGFnZSgmZGV2LT5wZGV2LT5kZXYsIGFkZHIsIFBBR0Vf U0laRSwNCi0JCQkgICAgICAgRE1BX0JJRElSRUNUSU9OQUwpOw0KKwkJZG1hX3VubWFwX3BhZ2Uo ZGV2aWNlLCBhZGRyLCBQQUdFX1NJWkUsIERNQV9CSURJUkVDVElPTkFMKTsNCiAJfQ0KIA0KIGVy cl9tYXBwaW5nOg0KQEAgLTI0OSw3ICsyNDgsNyBAQCBzdGF0aWMgaW50IGFsbG9jX3N5c3RlbV9w YWdlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBmdW5jX2lkKQ0KIAkJX19mcmVlX3Bh Z2UocGFnZSk7DQogDQogCWlmICh6ZXJvX2FkZHIgPT0gMCkNCi0JCWRtYV91bm1hcF9wYWdlKCZk ZXYtPnBkZXYtPmRldiwgemVyb19hZGRyLCBQQUdFX1NJWkUsDQorCQlkbWFfdW5tYXBfcGFnZShk ZXZpY2UsIHplcm9fYWRkciwgUEFHRV9TSVpFLA0KIAkJCSAgICAgICBETUFfQklESVJFQ1RJT05B TCk7DQogDQogCXJldHVybiBlcnI7DQotLSANCjIuMjAuMQ0KDQo=