From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH] drm/i915: Fix unsigned overflow when calculating total data rate, v2. Date: Mon, 22 Oct 2018 12:20:00 +0200 Message-ID: <20181022102000.30255-1-maarten.lankhorst@linux.intel.com> References: <153995438994.19935.5568338422851671238@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id C140189BF8 for ; Mon, 22 Oct 2018 10:20:04 +0000 (UTC) In-Reply-To: <153995438994.19935.5568338422851671238@skylake-alporthouse-com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gZ2VuMTEsIHdlIGNhbiBkZWZpbml0ZWx5IHNtYXNoIHRoZSAzMi1iaXRzIGJhcnJpZXIgd2l0 aCBqdXN0IGEKd2hlbiB3ZSBlbmFibGUgYWxsIHBsYW5lcyBpbiB0aGUgbmV4dCBwYXRjaC4KCkNo YW5nZXMgc2luY2UgdjE6Ci0gVXNlIGRpdjY0X3U2NCAoaWNrbGUpLgoKU2lnbmVkLW9mZi1ieTog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KUmV2 aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8IDQ3ICsrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDI1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDY3YTRkMDczNTI5MS4u ZjQyYjhjMzE5MDQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTM3ODQsNyArMzc4NCw3 IEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKIAogc3RhdGljIHUxNiBpbnRlbF9nZXRfZGRiX3NpemUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKLQkJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGludCB0b3RhbF9kYXRhX3JhdGUsCisJ CQkgICAgICBjb25zdCB1NjQgdG90YWxfZGF0YV9yYXRlLAogCQkJICAgICAgY29uc3QgaW50IG51 bV9hY3RpdmUsCiAJCQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIpCiB7CkBA IC0zNzk4LDEyICszNzk4LDEyIEBAIHN0YXRpYyB1MTYgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuIGRkYl9zaXplIC0gNDsgLyog NCBibG9ja3MgZm9yIGJ5cGFzcyBwYXRoIGFsbG9jYXRpb24gKi8KIAogCWFkanVzdGVkX21vZGUg PSAmY3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Ci0JdG90YWxfZGF0YV9idyA9ICh1NjQpdG90 YWxfZGF0YV9yYXRlICogZHJtX21vZGVfdnJlZnJlc2goYWRqdXN0ZWRfbW9kZSk7CisJdG90YWxf ZGF0YV9idyA9IHRvdGFsX2RhdGFfcmF0ZSAqIGRybV9tb2RlX3ZyZWZyZXNoKGFkanVzdGVkX21v ZGUpOwogCiAJLyoKIAkgKiAxMkdCL3MgaXMgbWF4aW11bSBCVyBzdXBwb3J0ZWQgYnkgc2luZ2xl IERCdWYgc2xpY2UuCiAJICovCi0JaWYgKHRvdGFsX2RhdGFfYncgPj0gR0JwcygxMikgfHwgbnVt X2FjdGl2ZSA+IDEpIHsKKwlpZiAobnVtX2FjdGl2ZSA+IDEgfHwgdG90YWxfZGF0YV9idyA+PSBH QnBzKDEyKSkgewogCQlkZGItPmVuYWJsZWRfc2xpY2VzID0gMjsKIAl9IGVsc2UgewogCQlkZGIt PmVuYWJsZWRfc2xpY2VzID0gMTsKQEAgLTM4MTYsNyArMzgxNiw3IEBAIHN0YXRpYyB1MTYgaW50 ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHN0YXRp YyB2b2lkCiBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwK LQkJCQkgICBjb25zdCB1bnNpZ25lZCBpbnQgdG90YWxfZGF0YV9yYXRlLAorCQkJCSAgIGNvbnN0 IHU2NCB0b3RhbF9kYXRhX3JhdGUsCiAJCQkJICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAq ZGRiLAogCQkJCSAgIHN0cnVjdCBza2xfZGRiX2VudHJ5ICphbGxvYywgLyogb3V0ICovCiAJCQkJ ICAgaW50ICpudW1fYWN0aXZlIC8qIG91dCAqLykKQEAgLTQxMzksNyArNDEzOSw3IEBAIGludCBz a2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YywKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludAorc3RhdGljIHU2NAogc2ts X3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3N0YXRlLAogCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUsCiAJ CQkgICAgIGNvbnN0IGludCBwbGFuZSkKQEAgLTQxNTEsNiArNDE1MSw3IEBAIHNrbF9wbGFuZV9y ZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwK IAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKIAl1MzIgZm9ybWF0OwogCXVpbnRfZml4ZWRf MTZfMTZfdCBkb3duX3NjYWxlX2Ftb3VudDsKKwl1NjQgcmF0ZTsKIAogCWlmICghaW50ZWxfcHN0 YXRlLT5iYXNlLnZpc2libGUpCiAJCXJldHVybiAwOwpAQCAtNDE3NywyOCArNDE3OCwyNiBAQCBz a2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjc3RhdGUsCiAJCWhlaWdodCAvPSAyOwogCX0KIAotCWRhdGFfcmF0ZSA9IHdpZHRoICogaGVp Z2h0ICogZmItPmZvcm1hdC0+Y3BwW3BsYW5lXTsKKwlkYXRhX3JhdGUgPSB3aWR0aCAqIGhlaWdo dDsKIAogCWRvd25fc2NhbGVfYW1vdW50ID0gc2tsX3BsYW5lX2Rvd25zY2FsZV9hbW91bnQoY3N0 YXRlLCBpbnRlbF9wc3RhdGUpOwogCi0JcmV0dXJuIG11bF9yb3VuZF91cF91MzJfZml4ZWQxNihk YXRhX3JhdGUsIGRvd25fc2NhbGVfYW1vdW50KTsKKwlyYXRlID0gbXVsX3JvdW5kX3VwX3UzMl9m aXhlZDE2KGRhdGFfcmF0ZSwgZG93bl9zY2FsZV9hbW91bnQpOworCisJcmF0ZSAqPSBmYi0+Zm9y bWF0LT5jcHBbcGxhbmVdOworCXJldHVybiByYXRlOwogfQogCi0vKgotICogV2UgZG9uJ3Qgb3Zl cmZsb3cgMzIgYml0cy4gV29yc3QgY2FzZSBpcyAzIHBsYW5lcyBlbmFibGVkLCBlYWNoIGZldGNo aW5nCi0gKiBhIDgxOTJ4NDA5NkAzMmJwcCBmcmFtZWJ1ZmZlcjoKLSAqICAgMyAqIDQwOTYgKiA4 MTkyICAqIDQgPCAyXjMyCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQKK3N0YXRpYyB1NjQKIHNr bF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpp bnRlbF9jc3RhdGUsCi0JCQkJIHVuc2lnbmVkIGludCAqcGxhbmVfZGF0YV9yYXRlLAotCQkJCSB1 bnNpZ25lZCBpbnQgKnV2X3BsYW5lX2RhdGFfcmF0ZSkKKwkJCQkgdTY0ICpwbGFuZV9kYXRhX3Jh dGUsCisJCQkJIHU2NCAqdXZfcGxhbmVfZGF0YV9yYXRlKQogewogCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3N0YXRlID0gJmludGVsX2NzdGF0ZS0+YmFzZTsKIAlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBjc3RhdGUtPnN0YXRlOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwog CWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKLQl1bnNpZ25lZCBpbnQgdG90 YWxfZGF0YV9yYXRlID0gMDsKKwl1NjQgdG90YWxfZGF0YV9yYXRlID0gMDsKIAogCWlmIChXQVJO X09OKCFzdGF0ZSkpCiAJCXJldHVybiAwOwpAQCAtNDIwNiw3ICs0MjA1LDcgQEAgc2tsX2dldF90 b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2Nz dGF0ZSwKIAkvKiBDYWxjdWxhdGUgYW5kIGNhY2hlIGRhdGEgcmF0ZSBmb3IgZWFjaCBwbGFuZSAq LwogCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgcHN0 YXRlLCBjc3RhdGUpIHsKIAkJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHRvX2ludGVsX3BsYW5l KHBsYW5lKS0+aWQ7Ci0JCXVuc2lnbmVkIGludCByYXRlOworCQl1NjQgcmF0ZTsKIAogCQkvKiBw YWNrZWQveSAqLwogCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShpbnRlbF9j c3RhdGUsCkBAIC00MzI1LDExICs0MzI0LDExIEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCXVpbnQxNl90IGFsbG9jX3NpemUsIHN0YXJ0 OwogCXVpbnQxNl90IG1pbmltdW1bSTkxNV9NQVhfUExBTkVTXSA9IHt9OwogCXVpbnQxNl90IHV2 X21pbmltdW1bSTkxNV9NQVhfUExBTkVTXSA9IHt9OwotCXVuc2lnbmVkIGludCB0b3RhbF9kYXRh X3JhdGU7CisJdTY0IHRvdGFsX2RhdGFfcmF0ZTsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkOwog CWludCBudW1fYWN0aXZlOwotCXVuc2lnbmVkIGludCBwbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhf UExBTkVTXSA9IHt9OwotCXVuc2lnbmVkIGludCB1dl9wbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhf UExBTkVTXSA9IHt9OworCXU2NCBwbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhfUExBTkVTXSA9IHt9 OworCXU2NCB1dl9wbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhfUExBTkVTXSA9IHt9OwogCXVpbnQx Nl90IHRvdGFsX21pbl9ibG9ja3MgPSAwOwogCiAJLyogQ2xlYXIgdGhlIHBhcnRpdGlvbmluZyBm b3IgZGlzYWJsZWQgcGxhbmVzLiAqLwpAQCAtNDM4OCw3ICs0Mzg3LDcgQEAgc2tsX2FsbG9jYXRl X3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAKIAlzdGFydCA9IGFs bG9jLT5zdGFydDsKIAlmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGludGVsX2NydGMsIHBsYW5l X2lkKSB7Ci0JCXVuc2lnbmVkIGludCBkYXRhX3JhdGUsIHV2X2RhdGFfcmF0ZTsKKwkJdTY0IGRh dGFfcmF0ZSwgdXZfZGF0YV9yYXRlOwogCQl1aW50MTZfdCBwbGFuZV9ibG9ja3MsIHV2X3BsYW5l X2Jsb2NrczsKIAogCQlpZiAocGxhbmVfaWQgPT0gUExBTkVfQ1VSU09SKQpAQCAtNDQwMiw4ICs0 NDAxLDcgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj c3RhdGUsCiAJCSAqIHJlc3VsdCBpcyA8IGF2YWlsYWJsZSBhcyBkYXRhX3JhdGUgLyB0b3RhbF9k YXRhX3JhdGUgPCAxCiAJCSAqLwogCQlwbGFuZV9ibG9ja3MgPSBtaW5pbXVtW3BsYW5lX2lkXTsK LQkJcGxhbmVfYmxvY2tzICs9IGRpdl91NjQoKHVpbnQ2NF90KWFsbG9jX3NpemUgKiBkYXRhX3Jh dGUsCi0JCQkJCXRvdGFsX2RhdGFfcmF0ZSk7CisJCXBsYW5lX2Jsb2NrcyArPSBkaXY2NF91NjQo YWxsb2Nfc2l6ZSAqIGRhdGFfcmF0ZSwgdG90YWxfZGF0YV9yYXRlKTsKIAogCQkvKiBMZWF2ZSBk aXNhYmxlZCBwbGFuZXMgYXQgKDAsMCkgKi8KIAkJaWYgKGRhdGFfcmF0ZSkgewpAQCAtNDQxNyw4 ICs0NDE1LDcgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjc3RhdGUsCiAJCXV2X2RhdGFfcmF0ZSA9IHV2X3BsYW5lX2RhdGFfcmF0ZVtwbGFuZV9pZF07 CiAKIAkJdXZfcGxhbmVfYmxvY2tzID0gdXZfbWluaW11bVtwbGFuZV9pZF07Ci0JCXV2X3BsYW5l X2Jsb2NrcyArPSBkaXZfdTY0KCh1aW50NjRfdClhbGxvY19zaXplICogdXZfZGF0YV9yYXRlLAot CQkJCQkgICB0b3RhbF9kYXRhX3JhdGUpOworCQl1dl9wbGFuZV9ibG9ja3MgKz0gZGl2NjRfdTY0 KGFsbG9jX3NpemUgKiB1dl9kYXRhX3JhdGUsIHRvdGFsX2RhdGFfcmF0ZSk7CiAKIAkJaWYgKHV2 X2RhdGFfcmF0ZSkgewogCQkJZGRiLT51dl9wbGFuZVtwaXBlXVtwbGFuZV9pZF0uc3RhcnQgPSBz dGFydDsKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==