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: [v3,2/5] ACPI / bus: Do not traverse through non-existed device table From: Andy Shevchenko Message-Id: <1518108802.22495.207.camel@linux.intel.com> Date: Thu, 08 Feb 2018 18:53:22 +0200 To: "Rafael J. Wysocki" Cc: dmaengine , "Rafael J . Wysocki" , ACPI Devel Maling List , Mika Westerberg , Sinan Kaya , Sakari Ailus , Vinod Koul List-ID: T24gVGh1LCAyMDE4LTAyLTA4IGF0IDE2OjU5ICswMTAwLCBSYWZhZWwgSi4gV3lzb2NraSB3cm90 ZToKPiBPbiBXZWQsIEZlYiA3LCAyMDE4IGF0IDM6NTYgUE0sIEFuZHkgU2hldmNoZW5rbwo+IDxh bmRyaXkuc2hldmNoZW5rb0BsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gCgo+IEFuZCBhcyBm YXIgYXMgSSdtIGNvbmNlcm5lZCB5b3UgY2FuIGRvOgo+IAo+IGlmICghc3RyY21wKEFDUElfRFRf TkFNRVNQQUNFX0hJRCwgaHdpZC0+aWQpCj4gICAgICAgICByZXR1cm4gKGNvbnN0IHN0cnVjdCBh Y3BpX2RldmljZV9pZAo+ICopYWNwaV9vZl9tYXRjaF9kZXZpY2UoZGV2aWNlLCBvZl9pZHMpOwo+ IAo+IGFuZCB1cGRhdGUgdGhlIGNvbW1lbnQgYWNjb3JkaW5nbHkuCgpXb3VsZCB0aGUgZm9sbG93 aW5nIHdvcmsgZm9yIHlvdT8KCi0tLSA4PCAtLS0gODwgLS0tIDg8IC0tLQpGcm9tIDAzMDEzYzBj MWU0ODdjZGE0YzBkOGRjNTA2NWVkMmYwMDMxMDk1ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEFuZHkgU2hldmNoZW5rbyA8YW5kcml5LnNoZXZjaGVua29AbGludXguaW50ZWwuY29t PgpEYXRlOiBUaHUsIDEgRmViIDIwMTggMjE6NTI6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv MV0gQUNQSSAvIGJ1czogRG8gbm90IHRyYXZlcnNlIHRocm91Z2ggbm9uLWV4aXN0ZWQKZGV2aWNl CiB0YWJsZQoKV2hlbiBfX2FjcGlfbWF0Y2hfZGV2aWNlKCkgaXMgY2FsbGVkIGl0IHdvdWxkIGJl IHBvc3NpYmxlIHRvIGhhdmUKQUNQSSBJRCB0YWJsZSBhIE1VTEwgcG9pbnRlci4gVG8gYXZvaWQg cG90ZW50aWFsIGRlcmVmZXJlbmNlLApjaGVjayBmb3IgdGhpcyBiZWZvcmUgdHJhdmVyc2UuCgpU aGlzIHBhdGNoIGltcGxpZXMgYSBiaXQgb2YgcmVmYWN0b3JpbmcgYWNwaV9vZl9tYXRjaF9kZXZp Y2UoKSB0byByZXR1cm4KcG9pbnRlciB0byBPRiBJRCB3aGVuIG1hdGNoZWQgZm9sbG93ZWQgYnkg cmVmYWN0b3JpbmcKX19hY3BpX21hdGNoX2RldmljZSgpIHRvIHJldHVybiBlaXRoZXIgQUNQSSBv ciBPRiBJRCB3aGVuIG1hdGNoZXMuCgpXaGlsZSBoZXJlLCByZW1vdmUgcmVkdW5kYW50ICdlbHNl Jy4KCkNjOiBTaW5hbiBLYXlhIDxva2F5YUBjb2RlYXVyb3JhLm9yZz4KQ2M6IFNha2FyaSBBaWx1 cyA8c2FrYXJpLmFpbHVzQGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbm9kIEtvdWwgPHZpbm9kLmtv dWxAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2 Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2FjcGkvYnVzLmMgfCA2NiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgorCQkJCSBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkCipvZl9tYXRjaF90YWJsZSwKKwkJCQkgY29uc3Qgc3RydWN0 IG9mX2RldmljZV9pZCAqKm9mX2lkKQogewogCWNvbnN0IHVuaW9uIGFjcGlfb2JqZWN0ICpvZl9j b21wYXRpYmxlLCAqb2JqOwogCWludCBpLCBudmFsOwpAQCAtNjkwLDggKzY5MiwxMSBAQCBzdGF0 aWMgYm9vbCBhY3BpX29mX21hdGNoX2RldmljZShzdHJ1Y3QgYWNwaV9kZXZpY2UKKmFkZXYsCiAJ CWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKmlkOwogCiAJCWZvciAoaWQgPSBvZl9tYXRjaF90 YWJsZTsgaWQtPmNvbXBhdGlibGVbMF07IGlkKyspCi0JCQlpZiAoIXN0cmNhc2VjbXAob2JqLT5z dHJpbmcucG9pbnRlciwgaWQtCj5jb21wYXRpYmxlKSkKKwkJCWlmICghc3RyY2FzZWNtcChvYmot PnN0cmluZy5wb2ludGVyLCBpZC0KPmNvbXBhdGlibGUpKSB7CisJCQkJaWYgKG9mX2lkKQorCQkJ CQkqb2ZfaWQgPSBpZDsKIAkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KIAl9CiAKIAlyZXR1cm4gZmFs c2U7CkBAIC03NjIsMTAgKzc2NywxMSBAQCBzdGF0aWMgYm9vbCBfX2FjcGlfbWF0Y2hfZGV2aWNl X2Nscyhjb25zdCBzdHJ1Y3QKYWNwaV9kZXZpY2VfaWQgKmlkLAogCXJldHVybiB0cnVlOwogfQog Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICpfX2FjcGlfbWF0Y2hfZGV2aWNl KAotCXN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlLAotCWNvbnN0IHN0cnVjdCBhY3BpX2Rldmlj ZV9pZCAqaWRzLAotCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX2lkcykKK3N0YXRpYyBi b29sIF9fYWNwaV9tYXRjaF9kZXZpY2Uoc3RydWN0IGFjcGlfZGV2aWNlICpkZXZpY2UsCisJCQkJ Y29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICphY3BpX2lkcywKKwkJCQljb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkICpvZl9pZHMsCisJCQkJY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICoq YWNwaV9pZCwKKwkJCQljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICoqb2ZfaWQpCiB7CiAJY29u c3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkICppZDsKIAlzdHJ1Y3QgYWNwaV9oYXJkd2FyZV9pZCAq aHdpZDsKQEAgLTc3NSwzMCArNzgxLDM1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kZXZp Y2VfaWQKKl9fYWNwaV9tYXRjaF9kZXZpY2UoCiAJICogZHJpdmVyIGZvciBpdC4KIAkgKi8KIAlp ZiAoIWRldmljZSB8fCAhZGV2aWNlLT5zdGF0dXMucHJlc2VudCkKLQkJcmV0dXJuIE5VTEw7CisJ CXJldHVybiBmYWxzZTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoaHdpZCwgJmRldmljZS0+cG5w LmlkcywgbGlzdCkgewogCQkvKiBGaXJzdCwgY2hlY2sgdGhlIEFDUEkvUE5QIElEcyBwcm92aWRl ZCBieSB0aGUKY2FsbGVyLiAqLwotCQlmb3IgKGlkID0gaWRzOyBpZC0+aWRbMF0gfHwgaWQtPmNs czsgaWQrKykgewotCQkJaWYgKGlkLT5pZFswXSAmJiAhc3RyY21wKChjaGFyICopIGlkLT5pZCwg aHdpZC0KPmlkKSkKLQkJCQlyZXR1cm4gaWQ7Ci0JCQllbHNlIGlmIChpZC0+Y2xzICYmIF9fYWNw aV9tYXRjaF9kZXZpY2VfY2xzKGlkLApod2lkKSkKLQkJCQlyZXR1cm4gaWQ7CisJCWlmIChhY3Bp X2lkcykgeworCQkJYm9vbCBmb3VuZDsKKworCQkJZm9yIChpZCA9IGFjcGlfaWRzOyBpZC0+aWRb MF0gfHwgaWQtPmNsczsgaWQrKykKeworCQkJCWZvdW5kID0gZmFsc2U7CisJCQkJaWYgKGlkLT5p ZFswXSAmJiAhc3RyY21wKChjaGFyICopaWQtCj5pZCwgaHdpZC0+aWQpKQorCQkJCQlmb3VuZCA9 IHRydWU7CisJCQkJaWYgKGlkLT5jbHMgJiYKX19hY3BpX21hdGNoX2RldmljZV9jbHMoaWQsIGh3 aWQpKQorCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJaWYgKGZvdW5kKSB7CisJCQkJCWlmIChhY3Bp X2lkKQorCQkJCQkJKmFjcGlfaWQgPSBpZDsKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJfQorCQkJ fQogCQl9CiAKIAkJLyoKIAkJICogTmV4dCwgY2hlY2sgQUNQSV9EVF9OQU1FU1BBQ0VfSElEIGFu ZCB0cnkgdG8gbWF0Y2gKdGhlCiAJCSAqICJjb21wYXRpYmxlIiBwcm9wZXJ0eSBpZiBmb3VuZC4K LQkJICoKLQkJICogVGhlIGlkIHJldHVybmVkIGJ5IHRoZSBiZWxvdyBpcyBub3QgdmFsaWQsIGJ1 dCB0aGUKb25seQotCQkgKiBjYWxsZXIgcGFzc2luZyBub24tTlVMTCBvZl9pZHMgaGVyZSBpcyBv bmx5CmludGVyZXN0ZWQgaW4KLQkJICogd2hldGhlciBvciBub3QgdGhlIHJldHVybiB2YWx1ZSBp cyBOVUxMLgogCQkgKi8KLQkJaWYgKCFzdHJjbXAoQUNQSV9EVF9OQU1FU1BBQ0VfSElELCBod2lk LT5pZCkKLQkJICAgICYmIGFjcGlfb2ZfbWF0Y2hfZGV2aWNlKGRldmljZSwgb2ZfaWRzKSkKLQkJ CXJldHVybiBpZDsKKwkJaWYgKCFzdHJjbXAoQUNQSV9EVF9OQU1FU1BBQ0VfSElELCBod2lkLT5p ZCkpCisJCQlyZXR1cm4gYWNwaV9vZl9tYXRjaF9kZXZpY2UoZGV2aWNlLCBvZl9pZHMsCm9mX2lk KTsKIAl9Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIGZhbHNlOwogfQogCiAvKioKQEAgLTgxNSw3 ICs4MjYsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZAoqX19hY3BpX21h dGNoX2RldmljZSgKIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZV9pZCAqYWNwaV9tYXRjaF9kZXZp Y2UoY29uc3Qgc3RydWN0CmFjcGlfZGV2aWNlX2lkICppZHMsCiAJCQkJCSAgICAgICBjb25zdCBz dHJ1Y3QgZGV2aWNlCipkZXYpCiB7Ci0JcmV0dXJuIF9fYWNwaV9tYXRjaF9kZXZpY2UoYWNwaV9j b21wYW5pb25fbWF0Y2goZGV2KSwgaWRzLApOVUxMKTsKKwljb25zdCBzdHJ1Y3QgYWNwaV9kZXZp Y2VfaWQgKmlkID0gTlVMTDsKKworCV9fYWNwaV9tYXRjaF9kZXZpY2UoYWNwaV9jb21wYW5pb25f bWF0Y2goZGV2KSwgaWRzLCBOVUxMLCAmaWQsCk5VTEwpOworCXJldHVybiBpZDsKIH0KIEVYUE9S VF9TWU1CT0xfR1BMKGFjcGlfbWF0Y2hfZGV2aWNlKTsKIApAQCAtODQwLDcgKzg1NCw3IEBAIEVY UE9SVF9TWU1CT0xfR1BMKGFjcGlfZ2V0X21hdGNoX2RhdGEpOwogaW50IGFjcGlfbWF0Y2hfZGV2 aWNlX2lkcyhzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSwKIAkJCSAgY29uc3Qgc3RydWN0IGFj cGlfZGV2aWNlX2lkICppZHMpCiB7Ci0JcmV0dXJuIF9fYWNwaV9tYXRjaF9kZXZpY2UoZGV2aWNl LCBpZHMsIE5VTEwpID8gMCA6IC1FTk9FTlQ7CisJcmV0dXJuIF9fYWNwaV9tYXRjaF9kZXZpY2Uo ZGV2aWNlLCBpZHMsIE5VTEwsIE5VTEwsIE5VTEwpID8gMCA6Ci1FTk9FTlQ7CiB9CiBFWFBPUlRf U1lNQk9MKGFjcGlfbWF0Y2hfZGV2aWNlX2lkcyk7CiAKQEAgLTg0OSwxMCArODYzLDEyIEBAIGJv b2wgYWNwaV9kcml2ZXJfbWF0Y2hfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwKIHsKIAlpZiAo IWRydi0+YWNwaV9tYXRjaF90YWJsZSkKIAkJcmV0dXJuIGFjcGlfb2ZfbWF0Y2hfZGV2aWNlKEFD UElfQ09NUEFOSU9OKGRldiksCi0JCQkJCSAgICBkcnYtPm9mX21hdGNoX3RhYmxlKTsKKwkJCQkJ ICAgIGRydi0+b2ZfbWF0Y2hfdGFibGUsCisJCQkJCSAgICBOVUxMKTsKIAotCXJldHVybiAhIV9f YWNwaV9tYXRjaF9kZXZpY2UoYWNwaV9jb21wYW5pb25fbWF0Y2goZGV2KSwKLQkJCQkgICAgIGRy di0+YWNwaV9tYXRjaF90YWJsZSwgZHJ2LQo+b2ZfbWF0Y2hfdGFibGUpOworCXJldHVybiBfX2Fj cGlfbWF0Y2hfZGV2aWNlKGFjcGlfY29tcGFuaW9uX21hdGNoKGRldiksCisJCQkJICAgZHJ2LT5h Y3BpX21hdGNoX3RhYmxlLCBkcnYtCj5vZl9tYXRjaF90YWJsZSwKKwkJCQkgICBOVUxMLCBOVUxM KTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGFjcGlfZHJpdmVyX21hdGNoX2RldmljZSk7CgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9hY3BpL2J1cy5jIGIvZHJpdmVycy9hY3BpL2J1cy5jCmluZGV4IDY3 NmM5Nzg4ZTFjOC4uMzNjNTE2NmU2MDI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvYnVzLmMK KysrIGIvZHJpdmVycy9hY3BpL2J1cy5jCkBAIC02NjAsMTMgKzY2MCwxNSBAQCBzdHJ1Y3QgYWNw aV9kZXZpY2UgKmFjcGlfY29tcGFuaW9uX21hdGNoKGNvbnN0CnN0cnVjdCBkZXZpY2UgKmRldikK ICAqIGFjcGlfb2ZfbWF0Y2hfZGV2aWNlIC0gTWF0Y2ggZGV2aWNlIG9iamVjdCB1c2luZyB0aGUg ImNvbXBhdGlibGUiCnByb3BlcnR5LgogICogQGFkZXY6IEFDUEkgZGV2aWNlIG9iamVjdCB0byBt YXRjaC4KICAqIEBvZl9tYXRjaF90YWJsZTogTGlzdCBvZiBkZXZpY2UgSURzIHRvIG1hdGNoIGFn YWluc3QuCisgKiBAb2ZfaWQ6IE9GIElEIGlmIG1hdGNoZWQKICAqCiAgKiBJZiBAZGV2IGhhcyBh biBBQ1BJIGNvbXBhbmlvbiB3aGljaCBoYXMgQUNQSV9EVF9OQU1FU1BBQ0VfSElEIGluIGl0cwps aXN0IG9mCiAgKiBpZGVudGlmaWVycyBhbmQgYSBfRFNEIG9iamVjdCB3aXRoIHRoZSAiY29tcGF0 aWJsZSIgcHJvcGVydHksIHVzZQp0aGF0CiAgKiBwcm9wZXJ0eSB0byBtYXRjaCBhZ2FpbnN0IHRo ZSBnaXZlbiBsaXN0IG9mIGlkZW50aWZpZXJzLgogICovCiBzdGF0aWMgYm9vbCBhY3BpX29mX21h dGNoX2RldmljZShzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXYsCi0JCQkJIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQKKm9mX21hdGNoX3RhYmxlKQo=