From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikulas Patocka Subject: [PATCH 05/21] udl-kms: fix a linked-list corruption when using fbdefio Date: Sun, 03 Jun 2018 16:40:58 +0200 Message-ID: <20180603144220.849008093@twibright.com> References: <20180603144053.875668929@twibright.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from leontynka.twibright.com (109-183-129-149.tmcz.cz [109.183.129.149]) by gabe.freedesktop.org (Postfix) with ESMTPS id 08BB36E28C for ; Sun, 3 Jun 2018 15:19:28 +0000 (UTC) Content-Disposition: inline; filename=udlkms-alloc-pages.patch List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mikulas Patocka , Bartlomiej Zolnierkiewicz , Dave Airlie , Bernie Thompson , Ladislav Michl Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIHVkbCBkcml2ZXIgY3Jhc2hlcyB3aGVuIGZiZGVmaW8gaXMgdXNlZC4gVGhlIGNyYXNoIGNh biBiZSByZXByb2R1Y2VkCndpdGggdGhpcyBzZXF1ZW5jZToKMS4gZWNobyAxID4vc3lzL21vZHVs ZS91ZGwvcGFyYW1ldGVycy9mYl9kZWZpbwoyLiBydW4gc29tZSBwcm9ncmFtIHRoYXQgbWFwcyB0 aGUgZnJhbWVidWZmZXIsIHN1Y2ggYXMgJ2xpbmtzIC1nJyBvciAnZmJpJwozLiBhbGxvY2F0ZSBt ZW1vcnkgdG8gdGhlIHBvaW50IHdoZXJlIHRoZSBtYWNoaW5lIHN0YXJ0cyBzd2FwcGluZwoKVGhl IHJlYXNvbiBmb3IgdGhlIGNyYXNoIGlzIHRoYXQgdWRsX2dlbV9nZXRfcGFnZXMgY2FsbHMgZHJt X2dlbV9nZXRfcGFnZXMKYW5kIGRybV9nZW1fZ2V0X3BhZ2VzIGFsbG9jYXRlcyB0aGUgcGFnZXMg dXNpbmcgc2htZW1fcmVhZF9tYXBwaW5nX3BhZ2UuClRoZSBzaG1lbSBwYWdlcyBhcmUga2VwdCBv biB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgbGlzdHMgdXNpbmcgdGhlCnBhZ2UtPmxydSBlbnRyeS4K Ckhvd2V2ZXIsIGZiZGVmaW8gcmV1c2VzIHRoZSBwYWdlLT5scnUgZW50cnkgZm9yIHRoZSBsaXN0 IG9mIHBhZ2VzIHRoYXQKd2VyZSBtb2RpZmllZCwgc28gdGhlIG1lbW9yeSBtYW5hZ2VtZW50IGxp c3RzIGFyZSBjb3JydXB0ZWQgYW5kIHRoZQptYWNoaW5lIGNyYXNoZXMgd2hlbiB2bXNjYW4gc3Rh cnRzIHRvIHNjYW4gbWVtb3J5LgoKSSBmaXhlZCB0aGlzIGNyYXNoIGJ5IGFsbG9jYXRpbmcgcGFn ZXMgd2l0aCAiYWxsb2NfcGFnZSIgaW5zdGVhZC4gVGhlCnBhZ2VzIGFsbG9jYXRlZCB3aXRoICJh bGxvY19wYWdlIiBoYXZlIHBhZ2UtPmxydSB1bnVzZWQsIGFuZCB0aHVzIHRoZQpzeXN0ZW0gZG9l c24ndCBjcmFzaCB3aGVuIGZiZGVmaW8gdXNlcyBpdC4KClVuYWJsZSB0byBoYW5kbGUga2VybmVs IHBhZ2luZyByZXF1ZXN0IGF0IHZpcnR1YWwgYWRkcmVzcyBkZWFkMDAwMDAwMDAwMjAwCk1lbSBh Ym9ydCBpbmZvOgogIEVTUiA9IDB4OTYwMDAwNDQKICBFeGNlcHRpb24gY2xhc3MgPSBEQUJUIChj dXJyZW50IEVMKSwgSUwgPSAzMiBiaXRzCiAgU0VUID0gMCwgRm5WID0gMAogIEVBID0gMCwgUzFQ VFcgPSAwCkRhdGEgYWJvcnQgaW5mbzoKICBJU1YgPSAwLCBJU1MgPSAweDAwMDAwMDQ0CiAgQ00g PSAwLCBXblIgPSAxCltkZWFkMDAwMDAwMDAwMjAwXSBhZGRyZXNzIGJldHdlZW4gdXNlciBhbmQg a2VybmVsIGFkZHJlc3MgcmFuZ2VzCkludGVybmFsIGVycm9yOiBPb3BzOiA5NjAwMDA0NCBbIzFd IFBSRUVNUFQgU01QCk1vZHVsZXMgbGlua2VkIGluOiBpcDZ0YWJsZV9maWx0ZXIgaXA2X3RhYmxl cyBpcHRhYmxlX2ZpbHRlciBpcF90YWJsZXMgeF90YWJsZXMgYWZfcGFja2V0IGF1dG9mczQgdWRs IGRybV9rbXNfaGVscGVyIGNmYmZpbGxyZWN0IHN5c2NvcHlhcmVhIGNmYmltZ2JsdCBzeXNmaWxs cmVjdCBzeXNpbWdibHQgZmJfc3lzX2ZvcHMgY2ZiY29weWFyZWEgZmIgZm9udCBkcm0gZHJtX3Bh bmVsX29yaWVudGF0aW9uX3F1aXJrcyBtb3VzZWRldiBoaWRfZ2VuZXJpYyB1c2JoaWQgaGlkIGJp bmZtdF9taXNjIHNuZF91c2JfYXVkaW8gc25kX2h3ZGVwIHNuZF91c2JtaWRpX2xpYiBzbmRfcmF3 bWlkaSBzbmRfcGNtIHNuZF90aW1lciBzbmQgc291bmRjb3JlIGlwdjYgYWVzX2NlX2JsayBjcnlw dG9fc2ltZCBjcnlwdGQgYWVzX2NlX2NpcGhlciBjcmMzMl9jZSBnaGFzaF9jZSBnZjEyOG11bCBh ZXNfYXJtNjQgc2hhMl9jZSBzaGEyNTZfYXJtNjQgc2hhMV9jZSBzaGExX2dlbmVyaWMgeGhjaV9w bGF0X2hjZCB4aGNpX2hjZCBzZF9tb2QgdXNiY29yZSB1c2JfY29tbW9uIG12cHAyIHVuaXgKQ1BV OiAwIFBJRDogMzkgQ29tbToga3N3YXBkMCBOb3QgdGFpbnRlZCA0LjE2LjEyICMzCkhhcmR3YXJl IG5hbWU6IE1hcnZlbGwgODA0MCBNQUNISUFUT0JpbiAoRFQpCnBzdGF0ZTogMDAwMDAwODUgKG56 Y3YgZGFJZiAtUEFOIC1VQU8pCnBjIDogaXNvbGF0ZV9scnVfcGFnZXMuaXNyYS4xNisweDIzYy8w eDJiMApsciA6IGlzb2xhdGVfbHJ1X3BhZ2VzLmlzcmEuMTYrMHgxMDQvMHgyYjAKc3AgOiBmZmZm ZmZjMTNhODk3YWMwCngyOTogZmZmZmZmYzEzYTg5N2FjMCB4Mjg6IDAwMDAwMDAwMDAwMDAwMDMK eDI3OiAwMDAwMDAwMDAwMDAwMDAzIHgyNjogMDAwMDAwMDAwMDAwMDAwNAp4MjU6IGZmZmZmZjgw MDg3ZTg0YTAgeDI0OiBmZmZmZmZjMTNhODk3YjY4CngyMzogZmZmZmZmYmYwNGNlZmM2MCB4MjI6 IGZmZmZmZmMxM2E4OTdlNDQKeDIxOiAwMDAwMDAwMDAwMDAwMDA5IHgyMDogZmZmZmZmYzEzYTg5 N2MwMAp4MTk6IGZmZmZmZmMxM2E4OTdiNDAgeDE4OiBmZmZmZmZiZjA0ZDM5MDAwCngxNzogMDAw MDAwMDBmZmZmZmZmOCB4MTY6IGZmZmZmZmJmMDAwMDAwMDAKeDE1OiAwMDAwMDAwMDAwMDAwMDA2 IHgxNDogMDAwMDAwMDAwMDAwMDAwMAp4MTM6IDAwMDAwMDAwMDAwMDAxYWEgeDEyOiA0MDAwMDAw MDAwMDQwMDFjCngxMTogMDAwMDAwMDAwMDAwMDAwMSB4MTA6IDAwMDAwMDAwMDAwMDAwMDEKeDkg OiAwMDAwMDAwMDAwMGVlM2FjIHg4IDogMDAwMDAwMDAwMDAwMDRhMAp4NyA6IGZmZmZmZjgwMDg3 ZTg0YTAgeDYgOiAwMDAwMDAwMDAwMDAwMDAwCng1IDogMDAwMDAwMDAwMDAwMDAwMCB4NCA6IDAw MDAwMDAwMDAwMDAwMDIKeDMgOiBmZmZmZmY4MDA4N2U4NGEwIHgyIDogMDAwMDAwMDAwMDAwMDIw MAp4MSA6IGRlYWQwMDAwMDAwMDAyMDAgeDAgOiA0MDAwMDAwMDAwMDQwMDFjClByb2Nlc3Mga3N3 YXBkMCAocGlkOiAzOSwgc3RhY2sgbGltaXQgPSAweDAwMDAwMDAwOTdmMjU1NzEpCkNhbGwgdHJh Y2U6CiBpc29sYXRlX2xydV9wYWdlcy5pc3JhLjE2KzB4MjNjLzB4MmIwCiBzaHJpbmtfaW5hY3Rp dmVfbGlzdCsweGU0LzB4M2IwCiBzaHJpbmtfbm9kZV9tZW1jZy5jb25zdHByb3AuMTkrMHgzNzQv MHg2MzAKIHNocmlua19ub2RlKzB4NjQvMHgxYzgKIGtzd2FwZCsweDM0MC8weDU2OAoga3RocmVh ZCsweDExOC8weDEyMAogcmV0X2Zyb21fZm9yaysweDEwLzB4MTgKQ29kZTogZDI4MDQwMDIgZjg1 ZTAyZTAgZjg1ZTAyZWMgZjkwMDA0NjEgKGY5MDAwMDIzKQotLS1bIGVuZCB0cmFjZSBmOWYzYWQz ODU2Y2IyZWYzIF0tLS0Kbm90ZToga3N3YXBkMFszOV0gZXhpdGVkIHdpdGggcHJlZW1wdF9jb3Vu dCAxCgpTaWduZWQtb2ZmLWJ5OiBNaWt1bGFzIFBhdG9ja2EgPG1wYXRvY2thQHJlZGhhdC5jb20+ CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCgotLS0KIGRyaXZlcnMvZ3B1L2RybS91ZGwvdWRs X2dlbS5jIHwgICAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hh bmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCkluZGV4OiBsaW51eC00LjE2 LjEyL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2dlbS5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4LTQu MTYuMTIub3JpZy9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9nZW0uYwkyMDE4LTAxLTEwIDA5OjMx OjIzLjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtNC4xNi4xMi9kcml2ZXJzL2dwdS9kcm0vdWRs L3VkbF9nZW0uYwkyMDE4LTA1LTI5IDE3OjQ2OjEwLjAwMDAwMDAwMCArMDIwMApAQCAtMTMwLDI4 ICsxMzAsNTEgQEAgaW50IHVkbF9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiBpbnQg dWRsX2dlbV9nZXRfcGFnZXMoc3RydWN0IHVkbF9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0 IHBhZ2UgKipwYWdlczsKKwlpbnQgbnBhZ2VzLCBpOwogCiAJaWYgKG9iai0+cGFnZXMpCiAJCXJl dHVybiAwOwogCi0JcGFnZXMgPSBkcm1fZ2VtX2dldF9wYWdlcygmb2JqLT5iYXNlKTsKLQlpZiAo SVNfRVJSKHBhZ2VzKSkKLQkJcmV0dXJuIFBUUl9FUlIocGFnZXMpOworCW5wYWdlcyA9IG9iai0+ YmFzZS5zaXplID4+IFBBR0VfU0hJRlQ7CisKKwlwYWdlcyA9IGt2bWFsbG9jX2FycmF5KG5wYWdl cywgc2l6ZW9mKHN0cnVjdCBwYWdlICopLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBhZ2VzKQorCQly ZXR1cm4gLUVOT01FTTsKKworCWZvciAoaSA9IDA7IGkgPCBucGFnZXM7IGkrKykgeworCQlzdHJ1 Y3QgcGFnZSAqcCA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOworCQlpZiAo IXApCisJCQlnb3RvIGZhaWw7CisJCXBhZ2VzW2ldID0gcDsKKwl9CiAKIAlvYmotPnBhZ2VzID0g cGFnZXM7CiAKIAlyZXR1cm4gMDsKKworZmFpbDoKKwl3aGlsZSAoaS0tKQorCQlwdXRfcGFnZShw YWdlc1tpXSk7CisJa3ZmcmVlKHBhZ2VzKTsKKwlyZXR1cm4gLUVOT01FTTsKIH0KIAogdm9pZCB1 ZGxfZ2VtX3B1dF9wYWdlcyhzdHJ1Y3QgdWRsX2dlbV9vYmplY3QgKm9iaikKIHsKKwlpbnQgbnBh Z2VzLCBpOworCiAJaWYgKG9iai0+YmFzZS5pbXBvcnRfYXR0YWNoKSB7CiAJCWt2ZnJlZShvYmot PnBhZ2VzKTsKIAkJb2JqLT5wYWdlcyA9IE5VTEw7CiAJCXJldHVybjsKIAl9CiAKLQlkcm1fZ2Vt X3B1dF9wYWdlcygmb2JqLT5iYXNlLCBvYmotPnBhZ2VzLCBmYWxzZSwgZmFsc2UpOworCW5wYWdl cyA9IG9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBh Z2VzOyBpKyspCisJCXB1dF9wYWdlKG9iai0+cGFnZXNbaV0pOworCisJa3ZmcmVlKG9iai0+cGFn ZXMpOwogCW9iai0+cGFnZXMgPSBOVUxMOwogfQogCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK