From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 1/2] drm/i915: Fix unsigned overflow when calculating total data rate Date: Mon, 15 Oct 2018 11:52:06 +0200 Message-ID: <20181015095207.6713-2-maarten.lankhorst@linux.intel.com> References: <20181015095207.6713-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE77089125 for ; Mon, 15 Oct 2018 09:52:12 +0000 (UTC) In-Reply-To: <20181015095207.6713-1-maarten.lankhorst@linux.intel.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 aCBqdXN0IGEKd2hlbiB3ZSBlbmFibGUgYWxsIHBsYW5lcyBpbiB0aGUgbmV4dCBwYXRjaC4KClNp Z25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8IDQ3ICsrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlv bnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IGZhNWM0 ODc3OGE4MC4uMzdiNmQ3NDczMWIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTM3ODQs NyArMzc4NCw3IEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKIAogc3RhdGljIHUxNiBpbnRlbF9nZXRfZGRiX3NpemUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNzdGF0ZSwKLQkJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGludCB0b3RhbF9kYXRh X3JhdGUsCisJCQkgICAgICBjb25zdCB1NjQgdG90YWxfZGF0YV9yYXRlLAogCQkJICAgICAgY29u c3QgaW50IG51bV9hY3RpdmUsCiAJCQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpk ZGIpCiB7CkBAIC0zNzk4LDEyICszNzk4LDEyIEBAIHN0YXRpYyB1MTYgaW50ZWxfZ2V0X2RkYl9z aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuIGRkYl9zaXpl IC0gNDsgLyogNCBibG9ja3MgZm9yIGJ5cGFzcyBwYXRoIGFsbG9jYXRpb24gKi8KIAogCWFkanVz dGVkX21vZGUgPSAmY3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Ci0JdG90YWxfZGF0YV9idyA9 ICh1NjQpdG90YWxfZGF0YV9yYXRlICogZHJtX21vZGVfdnJlZnJlc2goYWRqdXN0ZWRfbW9kZSk7 CisJdG90YWxfZGF0YV9idyA9IHRvdGFsX2RhdGFfcmF0ZSAqIGRybV9tb2RlX3ZyZWZyZXNoKGFk anVzdGVkX21vZGUpOwogCiAJLyoKIAkgKiAxMkdCL3MgaXMgbWF4aW11bSBCVyBzdXBwb3J0ZWQg Ynkgc2luZ2xlIERCdWYgc2xpY2UuCiAJICovCi0JaWYgKHRvdGFsX2RhdGFfYncgPj0gR0Jwcygx MikgfHwgbnVtX2FjdGl2ZSA+IDEpIHsKKwlpZiAobnVtX2FjdGl2ZSA+IDEgfHwgdG90YWxfZGF0 YV9idyA+PSBHQnBzKDEyKSkgewogCQlkZGItPmVuYWJsZWRfc2xpY2VzID0gMjsKIAl9IGVsc2Ug ewogCQlkZGItPmVuYWJsZWRfc2xpY2VzID0gMTsKQEAgLTM4MTYsNyArMzgxNiw3IEBAIHN0YXRp YyB1MTYgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIHN0YXRpYyB2b2lkCiBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKLQkJCQkgICBjb25zdCB1bnNpZ25lZCBpbnQgdG90YWxfZGF0YV9yYXRlLAorCQkJ CSAgIGNvbnN0IHU2NCB0b3RhbF9kYXRhX3JhdGUsCiAJCQkJICAgc3RydWN0IHNrbF9kZGJfYWxs b2NhdGlvbiAqZGRiLAogCQkJCSAgIHN0cnVjdCBza2xfZGRiX2VudHJ5ICphbGxvYywgLyogb3V0 ICovCiAJCQkJICAgaW50ICpudW1fYWN0aXZlIC8qIG91dCAqLykKQEAgLTQxMzksNyArNDEzOSw3 IEBAIGludCBza2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YywKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludAorc3RhdGlj IHU2NAogc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3N0YXRlLAogCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpw c3RhdGUsCiAJCQkgICAgIGNvbnN0IGludCBwbGFuZSkKQEAgLTQxNTEsNiArNDE1MSw3IEBAIHNr bF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKIAl1MzIgZm9ybWF0OwogCXVp bnRfZml4ZWRfMTZfMTZfdCBkb3duX3NjYWxlX2Ftb3VudDsKKwl1NjQgcmF0ZTsKIAogCWlmICgh aW50ZWxfcHN0YXRlLT5iYXNlLnZpc2libGUpCiAJCXJldHVybiAwOwpAQCAtNDE3NywyOCArNDE3 OCwyNiBAQCBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsCiAJCWhlaWdodCAvPSAyOwogCX0KIAotCWRhdGFfcmF0ZSA9IHdp ZHRoICogaGVpZ2h0ICogZmItPmZvcm1hdC0+Y3BwW3BsYW5lXTsKKwlkYXRhX3JhdGUgPSB3aWR0 aCAqIGhlaWdodDsKIAogCWRvd25fc2NhbGVfYW1vdW50ID0gc2tsX3BsYW5lX2Rvd25zY2FsZV9h bW91bnQoY3N0YXRlLCBpbnRlbF9wc3RhdGUpOwogCi0JcmV0dXJuIG11bF9yb3VuZF91cF91MzJf Zml4ZWQxNihkYXRhX3JhdGUsIGRvd25fc2NhbGVfYW1vdW50KTsKKwlyYXRlID0gbXVsX3JvdW5k X3VwX3UzMl9maXhlZDE2KGRhdGFfcmF0ZSwgZG93bl9zY2FsZV9hbW91bnQpOworCisJcmF0ZSAq PSBmYi0+Zm9ybWF0LT5jcHBbcGxhbmVdOworCXJldHVybiByYXRlOwogfQogCi0vKgotICogV2Ug ZG9uJ3Qgb3ZlcmZsb3cgMzIgYml0cy4gV29yc3QgY2FzZSBpcyAzIHBsYW5lcyBlbmFibGVkLCBl YWNoIGZldGNoaW5nCi0gKiBhIDgxOTJ4NDA5NkAzMmJwcCBmcmFtZWJ1ZmZlcjoKLSAqICAgMyAq IDQwOTYgKiA4MTkyICAqIDQgPCAyXjMyCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQKK3N0YXRp YyB1NjQKIHNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICppbnRlbF9jc3RhdGUsCi0JCQkJIHVuc2lnbmVkIGludCAqcGxhbmVfZGF0YV9yYXRl LAotCQkJCSB1bnNpZ25lZCBpbnQgKnV2X3BsYW5lX2RhdGFfcmF0ZSkKKwkJCQkgdTY0ICpwbGFu ZV9kYXRhX3JhdGUsCisJCQkJIHU2NCAqdXZfcGxhbmVfZGF0YV9yYXRlKQogewogCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3N0YXRlID0gJmludGVsX2NzdGF0ZS0+YmFzZTsKIAlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPnN0YXRlOwogCXN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lOwogCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKLQl1bnNpZ25l ZCBpbnQgdG90YWxfZGF0YV9yYXRlID0gMDsKKwl1NjQgdG90YWxfZGF0YV9yYXRlID0gMDsKIAog CWlmIChXQVJOX09OKCFzdGF0ZSkpCiAJCXJldHVybiAwOwpAQCAtNDIwNiw3ICs0MjA1LDcgQEAg c2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmludGVsX2NzdGF0ZSwKIAkvKiBDYWxjdWxhdGUgYW5kIGNhY2hlIGRhdGEgcmF0ZSBmb3IgZWFj aCBwbGFuZSAqLwogCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShw bGFuZSwgcHN0YXRlLCBjc3RhdGUpIHsKIAkJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHRvX2lu dGVsX3BsYW5lKHBsYW5lKS0+aWQ7Ci0JCXVuc2lnbmVkIGludCByYXRlOworCQl1NjQgcmF0ZTsK IAogCQkvKiBwYWNrZWQveSAqLwogCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0 ZShpbnRlbF9jc3RhdGUsCkBAIC00MzI1LDExICs0MzI0LDExIEBAIHNrbF9hbGxvY2F0ZV9waXBl X2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCXVpbnQxNl90IGFsbG9jX3Np emUsIHN0YXJ0OwogCXVpbnQxNl90IG1pbmltdW1bSTkxNV9NQVhfUExBTkVTXSA9IHt9OwogCXVp bnQxNl90IHV2X21pbmltdW1bSTkxNV9NQVhfUExBTkVTXSA9IHt9OwotCXVuc2lnbmVkIGludCB0 b3RhbF9kYXRhX3JhdGU7CisJdTY0IHRvdGFsX2RhdGFfcmF0ZTsKIAllbnVtIHBsYW5lX2lkIHBs YW5lX2lkOwogCWludCBudW1fYWN0aXZlOwotCXVuc2lnbmVkIGludCBwbGFuZV9kYXRhX3JhdGVb STkxNV9NQVhfUExBTkVTXSA9IHt9OwotCXVuc2lnbmVkIGludCB1dl9wbGFuZV9kYXRhX3JhdGVb STkxNV9NQVhfUExBTkVTXSA9IHt9OworCXU2NCBwbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhfUExB TkVTXSA9IHt9OworCXU2NCB1dl9wbGFuZV9kYXRhX3JhdGVbSTkxNV9NQVhfUExBTkVTXSA9IHt9 OwogCXVpbnQxNl90IHRvdGFsX21pbl9ibG9ja3MgPSAwOwogCiAJLyogQ2xlYXIgdGhlIHBhcnRp dGlvbmluZyBmb3IgZGlzYWJsZWQgcGxhbmVzLiAqLwpAQCAtNDM4OCw3ICs0Mzg3LDcgQEAgc2ts X2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAKIAlz dGFydCA9IGFsbG9jLT5zdGFydDsKIAlmb3JfZWFjaF9wbGFuZV9pZF9vbl9jcnRjKGludGVsX2Ny dGMsIHBsYW5lX2lkKSB7Ci0JCXVuc2lnbmVkIGludCBkYXRhX3JhdGUsIHV2X2RhdGFfcmF0ZTsK KwkJdTY0IGRhdGFfcmF0ZSwgdXZfZGF0YV9yYXRlOwogCQl1aW50MTZfdCBwbGFuZV9ibG9ja3Ms IHV2X3BsYW5lX2Jsb2NrczsKIAogCQlpZiAocGxhbmVfaWQgPT0gUExBTkVfQ1VSU09SKQpAQCAt NDQwMiw4ICs0NDAxLDcgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUsCiAJCSAqIHJlc3VsdCBpcyA8IGF2YWlsYWJsZSBhcyBkYXRhX3JhdGUg LyB0b3RhbF9kYXRhX3JhdGUgPCAxCiAJCSAqLwogCQlwbGFuZV9ibG9ja3MgPSBtaW5pbXVtW3Bs YW5lX2lkXTsKLQkJcGxhbmVfYmxvY2tzICs9IGRpdl91NjQoKHVpbnQ2NF90KWFsbG9jX3NpemUg KiBkYXRhX3JhdGUsCi0JCQkJCXRvdGFsX2RhdGFfcmF0ZSk7CisJCXBsYW5lX2Jsb2NrcyArPSBh bGxvY19zaXplICogZGF0YV9yYXRlIC8gdG90YWxfZGF0YV9yYXRlOwogCiAJCS8qIExlYXZlIGRp c2FibGVkIHBsYW5lcyBhdCAoMCwwKSAqLwogCQlpZiAoZGF0YV9yYXRlKSB7CkBAIC00NDE3LDgg KzQ0MTUsNyBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKIAkJdXZfZGF0YV9yYXRlID0gdXZfcGxhbmVfZGF0YV9yYXRlW3BsYW5lX2lkXTsK IAogCQl1dl9wbGFuZV9ibG9ja3MgPSB1dl9taW5pbXVtW3BsYW5lX2lkXTsKLQkJdXZfcGxhbmVf YmxvY2tzICs9IGRpdl91NjQoKHVpbnQ2NF90KWFsbG9jX3NpemUgKiB1dl9kYXRhX3JhdGUsCi0J CQkJCSAgIHRvdGFsX2RhdGFfcmF0ZSk7CisJCXV2X3BsYW5lX2Jsb2NrcyArPSBhbGxvY19zaXpl ICogdXZfZGF0YV9yYXRlIC8gdG90YWxfZGF0YV9yYXRlOwogCiAJCWlmICh1dl9kYXRhX3JhdGUp IHsKIAkJCWRkYi0+dXZfcGxhbmVbcGlwZV1bcGxhbmVfaWRdLnN0YXJ0ID0gc3RhcnQ7Ci0tIAoy LjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=