From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v3 3/3] drm/mst: Avoid processing partially received up/down message transactions Date: Wed, 19 Jul 2017 16:46:32 +0300 Message-ID: <20170719134632.13366-1-imre.deak@intel.com> References: <20170719114330.26540-4-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id E8DA56E537 for ; Wed, 19 Jul 2017 13:46:35 +0000 (UTC) In-Reply-To: <20170719114330.26540-4-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Dave Airlie , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org Q3VycmVudGx5IHdlIG1heSBwcm9jZXNzIHVwL2Rvd24gbWVzc2FnZSB0cmFuc2FjdGlvbnMgY29u dGFpbmluZwp1bmluaXRpYWxpemVkIGRhdGEuIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGVyZSB3YXMg YW4gZXJyb3IgZHVyaW5nIHRoZQpyZWNlcHRpb24gb2YgYW55IG1lc3NhZ2UgaW4gdGhlIHRyYW5z YWN0aW9uLCBidXQgd2UgaGFwcGVuZWQgdG8gcmVjZWl2ZQp0aGUgbGFzdCBtZXNzYWdlIGNvcnJl Y3RseSB3aXRoIHRoZSBlbmQtb2YtbWVzc2FnZSBmbGFnIHNldC4KClRvIGF2b2lkIHRoaXMgYWJv cnQgdGhlIHJlY2VwdGlvbiBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlbiB0aGUgZmlyc3QKZXJyb3Ig aXMgZGV0ZWN0ZWQsIHJlamVjdGluZyBhbnkgbWVzc2FnZXMgdW50aWwgYSBtZXNzYWdlIHdpdGgg dGhlCnN0YXJ0LW9mLW1lc3NhZ2UgZmxhZyBpcyByZWNlaXZlZCAod2hpY2ggd2lsbCBzdGFydCBh IG5ldyB0cmFuc2FjdGlvbikuClRoaXMgaXMgYWxzbyB3aGF0IHRoZSBEUCAxLjQgc3BlYyAyLjEx LjguMiBjYWxscyBmb3IgaW4gdGhpcyBjYXNlLgoKSW4gYWRkdGlvbiB0aGlzIGFsc28gcHJldmVu dHMgcmVjZWl2aW5nIGJvZ3VzIHRyYW5zYWN0aW9ucyB3aXRob3V0IHRoZQpmaXJzdCBtZXNzYWdl IHdpdGggdGhlIHRoZSBzdGFydC1vZi1tZXNzYWdlIGZsYWcgc2V0LgoKdjI6Ci0gdW5jaGFuZ2Vk CnYzOgotIGdpdCBhZGQgdGhlIHBhcnQgdGhhdCBhY3R1YWxseSBza2lwcyBtZXNzYWdlcyBhZnRl ciBhbiBlcnJvciBpbgogIGRybV9kcF9zaWRlYmFuZF9tc2dfYnVpbGQoKQoKQ2M6IERhdmUgQWly bGllIDxhaXJsaWVkQHJlZGhhdC5jb20+CkNjOiBMeXVkZSA8bHl1ZGVAcmVkaGF0LmNvbT4KQ2M6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6IElt cmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Rw X21zdF90b3BvbG9neS5jIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKaW5kZXggNzhlOWE3ZDU4Nzk0Li40MWI0OTJmOTk5NTUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtMzMyLDYgKzMzMiwxMyBA QCBzdGF0aWMgYm9vbCBkcm1fZHBfc2lkZWJhbmRfbXNnX2J1aWxkKHN0cnVjdCBkcm1fZHBfc2lk ZWJhbmRfbXNnX3J4ICptc2csCiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAorCQkvKgorCQkgKiBp Z25vcmUgb3V0LW9mLW9yZGVyIG1lc3NhZ2VzIG9yIG1lc3NhZ2VzIHRoYXQgYXJlIHBhcnQgb2Yg YQorCQkgKiBmYWlsZWQgdHJhbnNhY3Rpb24KKwkJICovCisJCWlmICghcmVjdl9oZHIuc29tdCAm JiAhbXNnLT5oYXZlX3NvbXQpCisJCQlyZXR1cm4gZmFsc2U7CisKIAkJLyogZ2V0IGxlbmd0aCBj b250YWluZWQgaW4gdGhpcyBwb3J0aW9uICovCiAJCW1zZy0+Y3VyY2h1bmtfbGVuID0gcmVjdl9o ZHIubXNnX2xlbjsKIAkJbXNnLT5jdXJjaHVua19oZHJsZW4gPSBoZHJsZW47CkBAIC0yMTY4LDcg KzIxNzUsNyBAQCBpbnQgZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfcmVzdW1lKHN0cnVjdCBkcm1f ZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKQogfQogRVhQT1JUX1NZTUJPTChkcm1fZHBfbXN0X3Rv cG9sb2d5X21ncl9yZXN1bWUpOwogCi1zdGF0aWMgdm9pZCBkcm1fZHBfZ2V0X29uZV9zYl9tc2co c3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsIGJvb2wgdXApCitzdGF0aWMgYm9v bCBkcm1fZHBfZ2V0X29uZV9zYl9tc2coc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICpt Z3IsIGJvb2wgdXApCiB7CiAJaW50IGxlbjsKIAl1OCByZXBseWJsb2NrWzMyXTsKQEAgLTIxODMs MTIgKzIxOTAsMTIgQEAgc3RhdGljIHZvaWQgZHJtX2RwX2dldF9vbmVfc2JfbXNnKHN0cnVjdCBk cm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLCBib29sIHVwKQogCQkJICAgICAgIHJlcGx5Ymxv Y2ssIGxlbik7CiAJaWYgKHJldCAhPSBsZW4pIHsKIAkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRv IHJlYWQgRFBDRCBkb3duIHJlcCAlZCAlZFxuIiwgbGVuLCByZXQpOwotCQlyZXR1cm47CisJCXJl dHVybiBmYWxzZTsKIAl9CiAJcmV0ID0gZHJtX2RwX3NpZGViYW5kX21zZ19idWlsZChtc2csIHJl cGx5YmxvY2ssIGxlbiwgdHJ1ZSk7CiAJaWYgKCFyZXQpIHsKIAkJRFJNX0RFQlVHX0tNUygic2lk ZWJhbmQgbXNnIGJ1aWxkIGZhaWxlZCAlZFxuIiwgcmVwbHlibG9ja1swXSk7Ci0JCXJldHVybjsK KwkJcmV0dXJuIGZhbHNlOwogCX0KIAlyZXBseWxlbiA9IG1zZy0+Y3VyY2h1bmtfbGVuICsgbXNn LT5jdXJjaHVua19oZHJsZW47CiAKQEAgLTIyMDIsMjUgKzIyMDksMzAgQEAgc3RhdGljIHZvaWQg ZHJtX2RwX2dldF9vbmVfc2JfbXNnKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdy LCBib29sIHVwKQogCQlpZiAocmV0ICE9IGxlbikgewogCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVk IHRvIHJlYWQgYSBjaHVuayAobGVuICVkLCByZXQgJWQpXG4iLAogCQkJCSAgICAgIGxlbiwgcmV0 KTsKLQkJCXJldHVybjsKKwkJCXJldHVybiBmYWxzZTsKIAkJfQogCiAJCXJldCA9IGRybV9kcF9z aWRlYmFuZF9tc2dfYnVpbGQobXNnLCByZXBseWJsb2NrLCBsZW4sIGZhbHNlKTsKIAkJaWYgKCFy ZXQpIHsKIAkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBidWlsZCBzaWRlYmFuZCBtc2dcbiIp OwotCQkJcmV0dXJuOworCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAKIAkJY3VycmVwbHkgKz0gbGVu OwogCQlyZXBseWxlbiAtPSBsZW47CiAJfQorCXJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgaW50 IGRybV9kcF9tc3RfaGFuZGxlX2Rvd25fcmVwKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n ciAqbWdyKQogewogCWludCByZXQgPSAwOwogCi0JZHJtX2RwX2dldF9vbmVfc2JfbXNnKG1nciwg ZmFsc2UpOworCWlmICghZHJtX2RwX2dldF9vbmVfc2JfbXNnKG1nciwgZmFsc2UpKSB7CisJCW1l bXNldCgmbWdyLT5kb3duX3JlcF9yZWN2LCAwLAorCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBkcm1f ZHBfc2lkZWJhbmRfbXNnX3J4KSk7CisJCXJldHVybiAwOworCX0KIAogCWlmIChtZ3ItPmRvd25f cmVwX3JlY3YuaGF2ZV9lb210KSB7CiAJCXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICp0 eG1zZzsKQEAgLTIyNzYsNyArMjI4OCwxMiBAQCBzdGF0aWMgaW50IGRybV9kcF9tc3RfaGFuZGxl X2Rvd25fcmVwKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyKQogc3RhdGljIGlu dCBkcm1fZHBfbXN0X2hhbmRsZV91cF9yZXEoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdy ICptZ3IpCiB7CiAJaW50IHJldCA9IDA7Ci0JZHJtX2RwX2dldF9vbmVfc2JfbXNnKG1nciwgdHJ1 ZSk7CisKKwlpZiAoIWRybV9kcF9nZXRfb25lX3NiX21zZyhtZ3IsIHRydWUpKSB7CisJCW1lbXNl dCgmbWdyLT51cF9yZXFfcmVjdiwgMCwKKwkJICAgICAgIHNpemVvZihzdHJ1Y3QgZHJtX2RwX3Np ZGViYW5kX21zZ19yeCkpOworCQlyZXR1cm4gMDsKKwl9CiAKIAlpZiAobWdyLT51cF9yZXFfcmVj di5oYXZlX2VvbXQpIHsKIAkJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcmVxX2JvZHkgbXNn OwotLSAKMi4xMy4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK