From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v4,1/4] ACPI / bus: Do not traverse through non-existed device table From: Andy Shevchenko Message-Id: <20180209153836.19302-1-andriy.shevchenko@linux.intel.com> Date: Fri, 9 Feb 2018 17:38:33 +0200 To: dmaengine , "Rafael J . Wysocki" , linux-acpi@vger.kernel.org, Mika Westerberg Cc: Andy Shevchenko , Sinan Kaya , Sakari Ailus , Vinod Koul List-ID: V2hlbiBfX2FjcGlfbWF0Y2hfZGV2aWNlKCkgaXMgY2FsbGVkIGl0IHdvdWxkIGJlIHBvc3NpYmxl IHRvIGhhdmUKQUNQSSBJRCB0YWJsZSBhIE5VTEwgcG9pbnRlci4gVG8gYXZvaWQgcG90ZW50aWFs IGRlcmVmZXJlbmNlLApjaGVjayBmb3IgdGhpcyBiZWZvcmUgdHJhdmVyc2UuCgpXaGlsZSBoZXJl LCByZW1vdmUgcmVkdW5kYW50ICdlbHNlJy4KCk5vdGUsIHRoaXMgcGF0Y2ggaW1wbGllcyBhIGJp dCBvZiByZWZhY3RvcmluZyBhY3BpX29mX21hdGNoX2RldmljZSgpCnRvIHJldHVybiBwb2ludGVy IHRvIE9GIElEIHdoZW4gbWF0Y2hlZCBmb2xsb3dlZCBieSByZWZhY3RvcmluZwpfX2FjcGlfbWF0 Y2hfZGV2aWNlKCkgdG8gcmV0dXJuIGVpdGhlciBBQ1BJIG9yIE9GIElEIHdoZW4gbWF0Y2hlcy4K CkNjOiBTaW5hbiBLYXlhIDxva2F5YUBjb2RlYXVyb3JhLm9yZz4KQ2M6IFNha2FyaSBBaWx1cyA8 c2FrYXJpLmFpbHVzQGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbm9kIEtvdWwgPHZpbm9kLmtvdWxA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hl bmtvQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2FjcGkvYnVzLmMgfCA2MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2FjcGkvYnVzLmMgYi9kcml2ZXJzL2FjcGkvYnVzLmMKaW5kZXggNjc2Yzk3ODhlMWM4 Li5mMTM4NGUxMDdlZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9idXMuYworKysgYi9kcml2 ZXJzL2FjcGkvYnVzLmMKQEAgLTY2MCwxMyArNjYwLDE1IEBAIHN0cnVjdCBhY3BpX2RldmljZSAq YWNwaV9jb21wYW5pb25fbWF0Y2goY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KQogICogYWNwaV9v Zl9tYXRjaF9kZXZpY2UgLSBNYXRjaCBkZXZpY2Ugb2JqZWN0IHVzaW5nIHRoZSAiY29tcGF0aWJs ZSIgcHJvcGVydHkuCiAgKiBAYWRldjogQUNQSSBkZXZpY2Ugb2JqZWN0IHRvIG1hdGNoLgogICog QG9mX21hdGNoX3RhYmxlOiBMaXN0IG9mIGRldmljZSBJRHMgdG8gbWF0Y2ggYWdhaW5zdC4KKyAq IEBvZl9pZDogT0YgSUQgaWYgbWF0Y2hlZAogICoKICAqIElmIEBkZXYgaGFzIGFuIEFDUEkgY29t cGFuaW9uIHdoaWNoIGhhcyBBQ1BJX0RUX05BTUVTUEFDRV9ISUQgaW4gaXRzIGxpc3Qgb2YKICAq IGlkZW50aWZpZXJzIGFuZCBhIF9EU0Qgb2JqZWN0IHdpdGggdGhlICJjb21wYXRpYmxlIiBwcm9w ZXJ0eSwgdXNlIHRoYXQKICAqIHByb3BlcnR5IHRvIG1hdGNoIGFnYWluc3QgdGhlIGdpdmVuIGxp c3Qgb2YgaWRlbnRpZmllcnMuCiAgKi8KIHN0YXRpYyBib29sIGFjcGlfb2ZfbWF0Y2hfZGV2aWNl KHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwKLQkJCQkgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCAqb2ZfbWF0Y2hfdGFibGUpCisJCQkJIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX21h dGNoX3RhYmxlLAorCQkJCSBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICoqb2ZfaWQpCiB7CiAJ Y29uc3QgdW5pb24gYWNwaV9vYmplY3QgKm9mX2NvbXBhdGlibGUsICpvYmo7CiAJaW50IGksIG52 YWw7CkBAIC02OTAsOCArNjkyLDExIEBAIHN0YXRpYyBib29sIGFjcGlfb2ZfbWF0Y2hfZGV2aWNl KHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwKIAkJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAq aWQ7CiAKIAkJZm9yIChpZCA9IG9mX21hdGNoX3RhYmxlOyBpZC0+Y29tcGF0aWJsZVswXTsgaWQr KykKLQkJCWlmICghc3RyY2FzZWNtcChvYmotPnN0cmluZy5wb2ludGVyLCBpZC0+Y29tcGF0aWJs ZSkpCisJCQlpZiAoIXN0cmNhc2VjbXAob2JqLT5zdHJpbmcucG9pbnRlciwgaWQtPmNvbXBhdGli bGUpKSB7CisJCQkJaWYgKG9mX2lkKQorCQkJCQkqb2ZfaWQgPSBpZDsKIAkJCQlyZXR1cm4gdHJ1 ZTsKKwkJCX0KIAl9CiAKIAlyZXR1cm4gZmFsc2U7CkBAIC03NjIsMTAgKzc2NywxMSBAQCBzdGF0 aWMgYm9vbCBfX2FjcGlfbWF0Y2hfZGV2aWNlX2Nscyhjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2Vf aWQgKmlkLAogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2 aWNlX2lkICpfX2FjcGlfbWF0Y2hfZGV2aWNlKAotCXN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNl LAotCWNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAqaWRzLAotCWNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgKm9mX2lkcykKK3N0YXRpYyBib29sIF9fYWNwaV9tYXRjaF9kZXZpY2Uoc3RydWN0 IGFjcGlfZGV2aWNlICpkZXZpY2UsCisJCQkJY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICph Y3BpX2lkcywKKwkJCQljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZHMsCisJCQkJY29u c3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICoqYWNwaV9pZCwKKwkJCQljb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkICoqb2ZfaWQpCiB7CiAJY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICppZDsK IAlzdHJ1Y3QgYWNwaV9oYXJkd2FyZV9pZCAqaHdpZDsKQEAgLTc3NSwzMCArNzgxLDMyIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgKl9fYWNwaV9tYXRjaF9kZXZpY2UoCiAJ ICogZHJpdmVyIGZvciBpdC4KIAkgKi8KIAlpZiAoIWRldmljZSB8fCAhZGV2aWNlLT5zdGF0dXMu cHJlc2VudCkKLQkJcmV0dXJuIE5VTEw7CisJCXJldHVybiBmYWxzZTsKIAogCWxpc3RfZm9yX2Vh Y2hfZW50cnkoaHdpZCwgJmRldmljZS0+cG5wLmlkcywgbGlzdCkgewogCQkvKiBGaXJzdCwgY2hl Y2sgdGhlIEFDUEkvUE5QIElEcyBwcm92aWRlZCBieSB0aGUgY2FsbGVyLiAqLwotCQlmb3IgKGlk ID0gaWRzOyBpZC0+aWRbMF0gfHwgaWQtPmNsczsgaWQrKykgewotCQkJaWYgKGlkLT5pZFswXSAm JiAhc3RyY21wKChjaGFyICopIGlkLT5pZCwgaHdpZC0+aWQpKQotCQkJCXJldHVybiBpZDsKLQkJ CWVsc2UgaWYgKGlkLT5jbHMgJiYgX19hY3BpX21hdGNoX2RldmljZV9jbHMoaWQsIGh3aWQpKQot CQkJCXJldHVybiBpZDsKKwkJaWYgKGFjcGlfaWRzKSB7CisJCQlmb3IgKGlkID0gYWNwaV9pZHM7 IGlkLT5pZFswXSB8fCBpZC0+Y2xzOyBpZCsrKSB7CisJCQkJaWYgKGlkLT5pZFswXSAmJiAhc3Ry Y21wKChjaGFyICopaWQtPmlkLCBod2lkLT5pZCkpCisJCQkJCWdvdG8gb3V0X2FjcGlfbWF0Y2g7 CisJCQkJaWYgKGlkLT5jbHMgJiYgX19hY3BpX21hdGNoX2RldmljZV9jbHMoaWQsIGh3aWQpKQor CQkJCQlnb3RvIG91dF9hY3BpX21hdGNoOworCQkJfQogCQl9CiAKIAkJLyoKIAkJICogTmV4dCwg Y2hlY2sgQUNQSV9EVF9OQU1FU1BBQ0VfSElEIGFuZCB0cnkgdG8gbWF0Y2ggdGhlCiAJCSAqICJj b21wYXRpYmxlIiBwcm9wZXJ0eSBpZiBmb3VuZC4KLQkJICoKLQkJICogVGhlIGlkIHJldHVybmVk IGJ5IHRoZSBiZWxvdyBpcyBub3QgdmFsaWQsIGJ1dCB0aGUgb25seQotCQkgKiBjYWxsZXIgcGFz c2luZyBub24tTlVMTCBvZl9pZHMgaGVyZSBpcyBvbmx5IGludGVyZXN0ZWQgaW4KLQkJICogd2hl dGhlciBvciBub3QgdGhlIHJldHVybiB2YWx1ZSBpcyBOVUxMLgogCQkgKi8KLQkJaWYgKCFzdHJj bXAoQUNQSV9EVF9OQU1FU1BBQ0VfSElELCBod2lkLT5pZCkKLQkJICAgICYmIGFjcGlfb2ZfbWF0 Y2hfZGV2aWNlKGRldmljZSwgb2ZfaWRzKSkKLQkJCXJldHVybiBpZDsKKwkJaWYgKCFzdHJjbXAo QUNQSV9EVF9OQU1FU1BBQ0VfSElELCBod2lkLT5pZCkpCisJCQlyZXR1cm4gYWNwaV9vZl9tYXRj aF9kZXZpY2UoZGV2aWNlLCBvZl9pZHMsIG9mX2lkKTsKIAl9Ci0JcmV0dXJuIE5VTEw7CisJcmV0 dXJuIGZhbHNlOworCitvdXRfYWNwaV9tYXRjaDoKKwlpZiAoYWNwaV9pZCkKKwkJKmFjcGlfaWQg PSBpZDsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogLyoqCkBAIC04MTUsNyArODIzLDEwIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgKl9fYWNwaV9tYXRjaF9kZXZpY2UoCiBjb25z dCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgKmFjcGlfbWF0Y2hfZGV2aWNlKGNvbnN0IHN0cnVjdCBh Y3BpX2RldmljZV9pZCAqaWRzLAogCQkJCQkgICAgICAgY29uc3Qgc3RydWN0IGRldmljZSAqZGV2 KQogewotCXJldHVybiBfX2FjcGlfbWF0Y2hfZGV2aWNlKGFjcGlfY29tcGFuaW9uX21hdGNoKGRl diksIGlkcywgTlVMTCk7CisJY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICppZCA9IE5VTEw7 CisKKwlfX2FjcGlfbWF0Y2hfZGV2aWNlKGFjcGlfY29tcGFuaW9uX21hdGNoKGRldiksIGlkcywg TlVMTCwgJmlkLCBOVUxMKTsKKwlyZXR1cm4gaWQ7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChhY3Bp X21hdGNoX2RldmljZSk7CiAKQEAgLTg0MCw3ICs4NTEsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChh Y3BpX2dldF9tYXRjaF9kYXRhKTsKIGludCBhY3BpX21hdGNoX2RldmljZV9pZHMoc3RydWN0IGFj cGlfZGV2aWNlICpkZXZpY2UsCiAJCQkgIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAqaWRz KQogewotCXJldHVybiBfX2FjcGlfbWF0Y2hfZGV2aWNlKGRldmljZSwgaWRzLCBOVUxMKSA/IDAg OiAtRU5PRU5UOworCXJldHVybiBfX2FjcGlfbWF0Y2hfZGV2aWNlKGRldmljZSwgaWRzLCBOVUxM LCBOVUxMLCBOVUxMKSA/IDAgOiAtRU5PRU5UOwogfQogRVhQT1JUX1NZTUJPTChhY3BpX21hdGNo X2RldmljZV9pZHMpOwogCkBAIC04NDksMTAgKzg2MCwxMiBAQCBib29sIGFjcGlfZHJpdmVyX21h dGNoX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB7CiAJaWYgKCFkcnYtPmFjcGlfbWF0Y2hf dGFibGUpCiAJCXJldHVybiBhY3BpX29mX21hdGNoX2RldmljZShBQ1BJX0NPTVBBTklPTihkZXYp LAotCQkJCQkgICAgZHJ2LT5vZl9tYXRjaF90YWJsZSk7CisJCQkJCSAgICBkcnYtPm9mX21hdGNo X3RhYmxlLAorCQkJCQkgICAgTlVMTCk7CiAKLQlyZXR1cm4gISFfX2FjcGlfbWF0Y2hfZGV2aWNl KGFjcGlfY29tcGFuaW9uX21hdGNoKGRldiksCi0JCQkJICAgICBkcnYtPmFjcGlfbWF0Y2hfdGFi bGUsIGRydi0+b2ZfbWF0Y2hfdGFibGUpOworCXJldHVybiBfX2FjcGlfbWF0Y2hfZGV2aWNlKGFj cGlfY29tcGFuaW9uX21hdGNoKGRldiksCisJCQkJICAgZHJ2LT5hY3BpX21hdGNoX3RhYmxlLCBk cnYtPm9mX21hdGNoX3RhYmxlLAorCQkJCSAgIE5VTEwsIE5VTEwpOwogfQogRVhQT1JUX1NZTUJP TF9HUEwoYWNwaV9kcml2ZXJfbWF0Y2hfZGV2aWNlKTsKIAo=