From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: [PATCH 1/4] ALSA: hda/hdmi: Use single mutex unlock in error paths Date: Mon, 23 Jul 2018 16:50:27 +0200 Message-ID: <20180723145030.25133-2-tiwai@suse.de> References: <20180723145030.25133-1-tiwai@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180723145030.25133-1-tiwai-l3A5Bk7waGM@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: alsa-devel@alsa-project.org SW5zdGVhZCBvZiBjYWxsaW5nIG11dGV4X3VubG9jaygpIGF0IGVhY2ggZXJyb3IgcGF0aCBtdWx0 aXBsZSB0aW1lcywKdGFrZSB0aGUgc3RhbmRhcmQgZ290by1hbmQtYS1zaW5nbGUtdW5sb2NrIGFw cHJvYWNoLiAgVGhpcyB3aWxsCnNpbXBsaWZ5IHRoZSBjb2RlIGFuZCBtYWtlIGVhc2llciB0byBm aW5kIHRoZSB1bmJhbGFuY2VkIG11dGV4IGxvY2tzLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLCBi dXQgb25seSB0aGUgY29kZSByZWFkYWJpbGl0eSBpbXByb3ZlbWVudCBhcyBhCnByZWxpbWluYXJ5 IHdvcmsgZm9yIGZ1cnRoZXIgY2hhbmdlcy4KClNpZ25lZC1vZmYtYnk6IFRha2FzaGkgSXdhaSA8 dGl3YWlAc3VzZS5kZT4KLS0tCiBzb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyB8IDY3ICsrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5z ZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9w YXRjaF9oZG1pLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYwppbmRleCAxZGU1NDkxZmI5 YmYuLjY3NTAzMThkMWM4MiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMK KysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKQEAgLTMzOSwxMyArMzM5LDEzIEBAIHN0 YXRpYyBpbnQgaGRtaV9lbGRfY3RsX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2ws CiAJaWYgKCFwZXJfcGluKSB7CiAJCS8qIG5vIHBpbiBpcyBib3VuZCB0byB0aGUgcGNtICovCiAJ CXVpbmZvLT5jb3VudCA9IDA7Ci0JCW11dGV4X3VubG9jaygmc3BlYy0+cGNtX2xvY2spOwotCQly ZXR1cm4gMDsKKwkJZ290byB1bmxvY2s7CiAJfQogCWVsZCA9ICZwZXJfcGluLT5zaW5rX2VsZDsK IAl1aW5mby0+Y291bnQgPSBlbGQtPmVsZF92YWxpZCA/IGVsZC0+ZWxkX3NpemUgOiAwOwotCW11 dGV4X3VubG9jaygmc3BlYy0+cGNtX2xvY2spOwogCisgdW5sb2NrOgorCW11dGV4X3VubG9jaygm c3BlYy0+cGNtX2xvY2spOwogCXJldHVybiAwOwogfQogCkBAIC0zNTcsNiArMzU3LDcgQEAgc3Rh dGljIGludCBoZG1pX2VsZF9jdGxfZ2V0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAog CXN0cnVjdCBoZG1pX3NwZWNfcGVyX3BpbiAqcGVyX3BpbjsKIAlzdHJ1Y3QgaGRtaV9lbGQgKmVs ZDsKIAlpbnQgcGNtX2lkeDsKKwlpbnQgZXJyID0gMDsKIAogCXBjbV9pZHggPSBrY29udHJvbC0+ cHJpdmF0ZV92YWx1ZTsKIAltdXRleF9sb2NrKCZzcGVjLT5wY21fbG9jayk7CkBAIC0zNjUsMTYg KzM2NiwxNSBAQCBzdGF0aWMgaW50IGhkbWlfZWxkX2N0bF9nZXQoc3RydWN0IHNuZF9rY29udHJv bCAqa2NvbnRyb2wsCiAJCS8qIG5vIHBpbiBpcyBib3VuZCB0byB0aGUgcGNtICovCiAJCW1lbXNl dCh1Y29udHJvbC0+dmFsdWUuYnl0ZXMuZGF0YSwgMCwKIAkJICAgICAgIEFSUkFZX1NJWkUodWNv bnRyb2wtPnZhbHVlLmJ5dGVzLmRhdGEpKTsKLQkJbXV0ZXhfdW5sb2NrKCZzcGVjLT5wY21fbG9j ayk7Ci0JCXJldHVybiAwOworCQlnb3RvIHVubG9jazsKIAl9Ci0JZWxkID0gJnBlcl9waW4tPnNp bmtfZWxkOwogCisJZWxkID0gJnBlcl9waW4tPnNpbmtfZWxkOwogCWlmIChlbGQtPmVsZF9zaXpl ID4gQVJSQVlfU0laRSh1Y29udHJvbC0+dmFsdWUuYnl0ZXMuZGF0YSkgfHwKIAkgICAgZWxkLT5l bGRfc2l6ZSA+IEVMRF9NQVhfU0laRSkgewotCQltdXRleF91bmxvY2soJnNwZWMtPnBjbV9sb2Nr KTsKIAkJc25kX0JVRygpOwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJZXJyID0gLUVJTlZBTDsKKwkJ Z290byB1bmxvY2s7CiAJfQogCiAJbWVtc2V0KHVjb250cm9sLT52YWx1ZS5ieXRlcy5kYXRhLCAw LApAQCAtMzgyLDkgKzM4MiwxMCBAQCBzdGF0aWMgaW50IGhkbWlfZWxkX2N0bF9nZXQoc3RydWN0 IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCiAJaWYgKGVsZC0+ZWxkX3ZhbGlkKQogCQltZW1jcHko dWNvbnRyb2wtPnZhbHVlLmJ5dGVzLmRhdGEsIGVsZC0+ZWxkX2J1ZmZlciwKIAkJICAgICAgIGVs ZC0+ZWxkX3NpemUpOwotCW11dGV4X3VubG9jaygmc3BlYy0+cGNtX2xvY2spOwogCi0JcmV0dXJu IDA7CisgdW5sb2NrOgorCW11dGV4X3VubG9jaygmc3BlYy0+cGNtX2xvY2spOworCXJldHVybiBl cnI7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBlbGRfYnl0ZXNf Y3RsID0gewpAQCAtMTIwOSw4ICsxMjEwLDggQEAgc3RhdGljIGludCBoZG1pX3BjbV9vcGVuKHN0 cnVjdCBoZGFfcGNtX3N0cmVhbSAqaGluZm8sCiAJcGluX2lkeCA9IGhpbmZvX3RvX3Bpbl9pbmRl eChjb2RlYywgaGluZm8pOwogCWlmICghc3BlYy0+ZHluX3BjbV9hc3NpZ24pIHsKIAkJaWYgKHNu ZF9CVUdfT04ocGluX2lkeCA8IDApKSB7Ci0JCQltdXRleF91bmxvY2soJnNwZWMtPnBjbV9sb2Nr KTsKLQkJCXJldHVybiAtRUlOVkFMOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gdW5sb2Nr OwogCQl9CiAJfSBlbHNlIHsKIAkJLyogbm8gcGluIGlzIGFzc2lnbmVkIHRvIHRoZSBQQ00KQEAg LTEyMTgsMTYgKzEyMTksMTMgQEAgc3RhdGljIGludCBoZG1pX3BjbV9vcGVuKHN0cnVjdCBoZGFf cGNtX3N0cmVhbSAqaGluZm8sCiAJCSAqLwogCQlpZiAocGluX2lkeCA8IDApIHsKIAkJCWVyciA9 IGhkbWlfcGNtX29wZW5fbm9fcGluKGhpbmZvLCBjb2RlYywgc3Vic3RyZWFtKTsKLQkJCW11dGV4 X3VubG9jaygmc3BlYy0+cGNtX2xvY2spOwotCQkJcmV0dXJuIGVycjsKKwkJCWdvdG8gdW5sb2Nr OwogCQl9CiAJfQogCiAJZXJyID0gaGRtaV9jaG9vc2VfY3Z0KGNvZGVjLCBwaW5faWR4LCAmY3Z0 X2lkeCk7Ci0JaWYgKGVyciA8IDApIHsKLQkJbXV0ZXhfdW5sb2NrKCZzcGVjLT5wY21fbG9jayk7 Ci0JCXJldHVybiBlcnI7Ci0JfQorCWlmIChlcnIgPCAwKQorCQlnb3RvIHVubG9jazsKIAogCXBl cl9jdnQgPSBnZXRfY3Z0KHNwZWMsIGN2dF9pZHgpOwogCS8qIENsYWltIGNvbnZlcnRlciAqLwpA QCAtMTI2NCwxMiArMTI2MiwxMSBAQCBzdGF0aWMgaW50IGhkbWlfcGNtX29wZW4oc3RydWN0IGhk YV9wY21fc3RyZWFtICpoaW5mbywKIAkJCXBlcl9jdnQtPmFzc2lnbmVkID0gMDsKIAkJCWhpbmZv LT5uaWQgPSAwOwogCQkJc25kX2hkYV9zcGRpZl9jdGxzX3VuYXNzaWduKGNvZGVjLCBwY21faWR4 KTsKLQkJCW11dGV4X3VubG9jaygmc3BlYy0+cGNtX2xvY2spOwotCQkJcmV0dXJuIC1FTk9ERVY7 CisJCQllcnIgPSAtRU5PREVWOworCQkJZ290byB1bmxvY2s7CiAJCX0KIAl9CiAKLQltdXRleF91 bmxvY2soJnNwZWMtPnBjbV9sb2NrKTsKIAkvKiBTdG9yZSB0aGUgdXBkYXRlZCBwYXJhbWV0ZXJz ICovCiAJcnVudGltZS0+aHcuY2hhbm5lbHNfbWluID0gaGluZm8tPmNoYW5uZWxzX21pbjsKIAly dW50aW1lLT5ody5jaGFubmVsc19tYXggPSBoaW5mby0+Y2hhbm5lbHNfbWF4OwpAQCAtMTI3OCw3 ICsxMjc1LDkgQEAgc3RhdGljIGludCBoZG1pX3BjbV9vcGVuKHN0cnVjdCBoZGFfcGNtX3N0cmVh bSAqaGluZm8sCiAKIAlzbmRfcGNtX2h3X2NvbnN0cmFpbnRfc3RlcChzdWJzdHJlYW0tPnJ1bnRp bWUsIDAsCiAJCQkJICAgU05EUlZfUENNX0hXX1BBUkFNX0NIQU5ORUxTLCAyKTsKLQlyZXR1cm4g MDsKKyB1bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZzcGVjLT5wY21fbG9jayk7CisJcmV0dXJuIGVy cjsKIH0KIAogLyoKQEAgLTE4NjcsNyArMTg2Niw3IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19oZG1p X3BsYXliYWNrX3BjbV9wcmVwYXJlKHN0cnVjdCBoZGFfcGNtX3N0cmVhbSAqaGluZm8sCiAJc3Ry dWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAlib29s IG5vbl9wY207CiAJaW50IHBpbmN0bDsKLQlpbnQgZXJyOworCWludCBlcnIgPSAwOwogCiAJbXV0 ZXhfbG9jaygmc3BlYy0+cGNtX2xvY2spOwogCXBpbl9pZHggPSBoaW5mb190b19waW5faW5kZXgo Y29kZWMsIGhpbmZvKTsKQEAgLTE4NzksMTMgKzE4NzgsMTIgQEAgc3RhdGljIGludCBnZW5lcmlj X2hkbWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0IGhkYV9wY21fc3RyZWFtICpoaW5mbywK IAkJcGluX2N2dF9maXh1cChjb2RlYywgTlVMTCwgY3Z0X25pZCk7CiAJCXNuZF9oZGFfY29kZWNf c2V0dXBfc3RyZWFtKGNvZGVjLCBjdnRfbmlkLAogCQkJCQlzdHJlYW1fdGFnLCAwLCBmb3JtYXQp OwotCQltdXRleF91bmxvY2soJnNwZWMtPnBjbV9sb2NrKTsKLQkJcmV0dXJuIDA7CisJCWdvdG8g dW5sb2NrOwogCX0KIAogCWlmIChzbmRfQlVHX09OKHBpbl9pZHggPCAwKSkgewotCQltdXRleF91 bmxvY2soJnNwZWMtPnBjbV9sb2NrKTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJCWVyciA9IC1FSU5W QUw7CisJCWdvdG8gdW5sb2NrOwogCX0KIAlwZXJfcGluID0gZ2V0X3BpbihzcGVjLCBwaW5faWR4 KTsKIAlwaW5fbmlkID0gcGVyX3Bpbi0+cGluX25pZDsKQEAgLTE5MjQsNiArMTkyMiw3IEBAIHN0 YXRpYyBpbnQgZ2VuZXJpY19oZG1pX3BsYXliYWNrX3BjbV9wcmVwYXJlKHN0cnVjdCBoZGFfcGNt X3N0cmVhbSAqaGluZm8sCiAJLyogc25kX2hkYV9zZXRfZGV2X3NlbGVjdCgpIGhhcyBiZWVuIGNh bGxlZCBiZWZvcmUgKi8KIAllcnIgPSBzcGVjLT5vcHMuc2V0dXBfc3RyZWFtKGNvZGVjLCBjdnRf bmlkLCBwaW5fbmlkLAogCQkJCSBzdHJlYW1fdGFnLCBmb3JtYXQpOworIHVubG9jazoKIAltdXRl eF91bmxvY2soJnNwZWMtPnBjbV9sb2NrKTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtMTk0NSw2ICsx OTQ0LDcgQEAgc3RhdGljIGludCBoZG1pX3BjbV9jbG9zZShzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0g KmhpbmZvLAogCXN0cnVjdCBoZG1pX3NwZWNfcGVyX2N2dCAqcGVyX2N2dDsKIAlzdHJ1Y3QgaGRt aV9zcGVjX3Blcl9waW4gKnBlcl9waW47CiAJaW50IHBpbmN0bDsKKwlpbnQgZXJyID0gMDsKIAog CWlmIChoaW5mby0+bmlkKSB7CiAJCXBjbV9pZHggPSBoaW5mb190b19wY21faW5kZXgoY29kZWMs IGhpbmZvKTsKQEAgLTE5NjMsMTQgKzE5NjMsMTIgQEAgc3RhdGljIGludCBoZG1pX3BjbV9jbG9z ZShzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLAogCQlzbmRfaGRhX3NwZGlmX2N0bHNfdW5h c3NpZ24oY29kZWMsIHBjbV9pZHgpOwogCQljbGVhcl9iaXQocGNtX2lkeCwgJnNwZWMtPnBjbV9p bl91c2UpOwogCQlwaW5faWR4ID0gaGluZm9fdG9fcGluX2luZGV4KGNvZGVjLCBoaW5mbyk7Ci0J CWlmIChzcGVjLT5keW5fcGNtX2Fzc2lnbiAmJiBwaW5faWR4IDwgMCkgewotCQkJbXV0ZXhfdW5s b2NrKCZzcGVjLT5wY21fbG9jayk7Ci0JCQlyZXR1cm4gMDsKLQkJfQorCQlpZiAoc3BlYy0+ZHlu X3BjbV9hc3NpZ24gJiYgcGluX2lkeCA8IDApCisJCQlnb3RvIHVubG9jazsKIAogCQlpZiAoc25k X0JVR19PTihwaW5faWR4IDwgMCkpIHsKLQkJCW11dGV4X3VubG9jaygmc3BlYy0+cGNtX2xvY2sp OwotCQkJcmV0dXJuIC1FSU5WQUw7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byB1bmxvY2s7 CiAJCX0KIAkJcGVyX3BpbiA9IGdldF9waW4oc3BlYywgcGluX2lkeCk7CiAKQEAgLTE5ODksMTAg KzE5ODcsMTEgQEAgc3RhdGljIGludCBoZG1pX3BjbV9jbG9zZShzdHJ1Y3QgaGRhX3BjbV9zdHJl YW0gKmhpbmZvLAogCQlwZXJfcGluLT5zZXR1cCA9IGZhbHNlOwogCQlwZXJfcGluLT5jaGFubmVs cyA9IDA7CiAJCW11dGV4X3VubG9jaygmcGVyX3Bpbi0+bG9jayk7CisJdW5sb2NrOgogCQltdXRl eF91bmxvY2soJnNwZWMtPnBjbV9sb2NrKTsKIAl9CiAKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZXJy OwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9wY21fb3BzIGdlbmVyaWNfb3BzID0gewot LSAKMi4xOC4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK