From owner-freebsd-net@freebsd.org Thu Jan 28 05:14:08 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 216BAA70110 for ; Thu, 28 Jan 2016 05:14:08 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from phabric-backend.rbsd.freebsd.org (unknown [IPv6:2607:fc50:2000:101::1bb:73]) by mx1.freebsd.org (Postfix) with ESMTP id 0003412EB for ; Thu, 28 Jan 2016 05:14:07 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by phabric-backend.rbsd.freebsd.org (Postfix, from userid 1346) id F2DD71060EC; Thu, 28 Jan 2016 05:14:07 +0000 (UTC) Date: Thu, 28 Jan 2016 05:14:07 +0000 To: freebsd-net@freebsd.org From: "sepherosa_gmail.com (Sepherosa Ziehau)" Reply-to: D5098+325+4e694d74d281089c@reviews.freebsd.org Subject: [Differential] [Request, 217 lines] D5098: hyperv/hn: Reorganize TX csum offloading Message-ID: X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , Thread-Topic: D5098: hyperv/hn: Reorganize TX csum offloading X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: Precedence: bulk Thread-Index: MWY5NTZkMGRiYzcxOTg0MWVmNWQ1NWNiZWRh MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_2090b449f5d8745f07ed904ab1fd66c1" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2016 05:14:08 -0000 --b1_2090b449f5d8745f07ed904ab1fd66c1 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit sepherosa_gmail.com created this revision. sepherosa_gmail.com added reviewers: network, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com. sepherosa_gmail.com added a subscriber: freebsd-net-list. REVISION SUMMARY So that we don't need to access mbuf content for non-TSO offloading. REVISION DETAIL https://reviews.freebsd.org/D5098 AFFECTED FILES sys/dev/hyperv/netvsc/hv_net_vsc.h sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, network, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com Cc: freebsd-net-list --b1_2090b449f5d8745f07ed904ab1fd66c1 Content-Type: text/x-patch; charset=utf-8; name="D5098.12774.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5098.12774.patch" ZGlmZiAtLWdpdCBhL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2Qu YyBiL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2QuYwotLS0gYS9z eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNkLmMKKysrIGIvc3lzL2Rl di9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJlZWJzZC5jCkBAIC0xNjcsMTYgKzE2Nyw2 IEBACiAjZGVmaW5lIEhOX1RYRF9GTEFHX0RNQU1BUAkweDIKIAogLyoKLSAqIEEgdW5pZmllZCBm bGFnIGZvciBhbGwgb3V0Ym91bmQgY2hlY2sgc3VtIGZsYWdzIGlzIHVzZWZ1bCwKLSAqIGFuZCBp dCBoZWxwcyBhdm9pZGluZyB1bm5lY2Vzc2FyeSBjaGVjayBzdW0gY2FsY3VsYXRpb24gaW4KLSAq IG5ldHdvcmsgZm9yd2FyZGluZyBzY2VuYXJpby4KLSAqLwotI2RlZmluZSBIVl9DU1VNX0ZPUl9P VVRCT1VORAkJCQkJCVwKLSAgICAoQ1NVTV9JUHxDU1VNX0lQX1VEUHxDU1VNX0lQX1RDUHxDU1VN X0lQX1NDVFB8Q1NVTV9JUF9UU098CQlcCi0gICAgQ1NVTV9JUF9JU0NTSXxDU1VNX0lQNl9VRFB8 Q1NVTV9JUDZfVENQfENTVU1fSVA2X1NDVFB8CQlcCi0gICAgQ1NVTV9JUDZfVFNPfENTVU1fSVA2 X0lTQ1NJKQotCi0vKgogICogT25seSBlbmFibGUgVURQIGNoZWNrc3VtIG9mZmxvYWRpbmcgd2hl biBpdCBpcyBvbiAyMDEyUjIgb3IKICAqIGxhdGVyLiAgVURQIGNoZWNrc3VtIG9mZmxvYWRpbmcg ZG9lc24ndCB3b3JrIG9uIGVhcmxpZXIKICAqIFdpbmRvd3MgcmVsZWFzZXMuCkBAIC0yNjUsNjIg KzI1NSw2IEBACiAjZW5kaWYKIH0KIAotLyoKLSAqIE5ldFZzYyBnZXQgbWVzc2FnZSB0cmFuc3Bv cnQgcHJvdG9jb2wgdHlwZSAKLSAqLwotc3RhdGljIHVpbnQzMl90IGdldF90cmFuc3BvcnRfcHJv dG9fdHlwZShzdHJ1Y3QgbWJ1ZiAqbV9oZWFkKQotewotCXVpbnQzMl90IHJldF92YWwgPSBUUkFO U1BPUlRfVFlQRV9OT1RfSVA7Ci0JdWludDE2X3QgZXRoZXJfdHlwZSA9IDA7Ci0JaW50IGV0aGVy X2xlbiA9IDA7Ci0Jc3RydWN0IGV0aGVyX3ZsYW5faGVhZGVyICplaDsKLSNpZmRlZiBJTkVUCi0J c3RydWN0IGlwICppcGg7Ci0jZW5kaWYKLSNpZmRlZiBJTkVUNgotCXN0cnVjdCBpcDZfaGRyICpp cDY7Ci0jZW5kaWYKLQotCWVoID0gbXRvZChtX2hlYWQsIHN0cnVjdCBldGhlcl92bGFuX2hlYWRl ciopOwotCWlmIChlaC0+ZXZsX2VuY2FwX3Byb3RvID09IGh0b25zKEVUSEVSVFlQRV9WTEFOKSkg ewotCQlldGhlcl9sZW4gPSBFVEhFUl9IRFJfTEVOICsgRVRIRVJfVkxBTl9FTkNBUF9MRU47Ci0J CWV0aGVyX3R5cGUgPSBlaC0+ZXZsX3Byb3RvOwotCX0gZWxzZSB7Ci0JCWV0aGVyX2xlbiA9IEVU SEVSX0hEUl9MRU47Ci0JCWV0aGVyX3R5cGUgPSBlaC0+ZXZsX2VuY2FwX3Byb3RvOwotCX0KLQot CXN3aXRjaCAobnRvaHMoZXRoZXJfdHlwZSkpIHsKLSNpZmRlZiBJTkVUNgotCWNhc2UgRVRIRVJU WVBFX0lQVjY6Ci0JCWlwNiA9IChzdHJ1Y3QgaXA2X2hkciAqKShtX2hlYWQtPm1fZGF0YSArIGV0 aGVyX2xlbik7Ci0KLQkJaWYgKElQUFJPVE9fVENQID09IGlwNi0+aXA2X254dCkgewotCQkJcmV0 X3ZhbCA9IFRSQU5TUE9SVF9UWVBFX0lQVjZfVENQOwotCQl9IGVsc2UgaWYgKElQUFJPVE9fVURQ ID09IGlwNi0+aXA2X254dCkgewotCQkJcmV0X3ZhbCA9IFRSQU5TUE9SVF9UWVBFX0lQVjZfVURQ OwotCQl9Ci0JCWJyZWFrOwotI2VuZGlmCi0jaWZkZWYgSU5FVAotCWNhc2UgRVRIRVJUWVBFX0lQ OgotCQlpcGggPSAoc3RydWN0IGlwICopKG1faGVhZC0+bV9kYXRhICsgZXRoZXJfbGVuKTsKLQot CQlpZiAoSVBQUk9UT19UQ1AgPT0gaXBoLT5pcF9wKSB7Ci0JCQlyZXRfdmFsID0gVFJBTlNQT1JU X1RZUEVfSVBWNF9UQ1A7Ci0JCX0gZWxzZSBpZiAoSVBQUk9UT19VRFAgPT0gaXBoLT5pcF9wKSB7 Ci0JCQlyZXRfdmFsID0gVFJBTlNQT1JUX1RZUEVfSVBWNF9VRFA7Ci0JCX0KLQkJYnJlYWs7Ci0j ZW5kaWYKLQlkZWZhdWx0OgotCQlyZXRfdmFsID0gVFJBTlNQT1JUX1RZUEVfTk9UX0lQOwotCQli cmVhazsKLQl9Ci0KLQlyZXR1cm4gKHJldF92YWwpOwotfQotCiBzdGF0aWMgaW50CiBobl9pZm1l ZGlhX3VwZChzdHJ1Y3QgaWZuZXQgKmlmcCBfX3VudXNlZCkKIHsKQEAgLTc4MywxNiArNzE3LDEz IEBACiAJaG5fc29mdGNfdCAqc2MgPSBpZnAtPmlmX3NvZnRjOwogCXN0cnVjdCBodl9kZXZpY2Ug KmRldmljZV9jdHggPSB2bWJ1c19nZXRfZGV2Y3R4KHNjLT5obl9kZXYpOwogCW5ldHZzY19kZXYg Km5ldF9kZXYgPSBzYy0+bmV0X2RldjsKLQlzdHJ1Y3QgZXRoZXJfdmxhbl9oZWFkZXIgKmVoOwog CXJuZGlzX21zZyAqcm5kaXNfbWVzZzsKIAlybmRpc19wYWNrZXQgKnJuZGlzX3BrdDsKIAlybmRp c19wZXJfcGFja2V0X2luZm8gKnJwcGk7CiAJbmRpc184MDIxcV9pbmZvICpycHBpX3ZsYW5faW5m bzsKIAlybmRpc190Y3BfaXBfY3N1bV9pbmZvICpjc3VtX2luZm87CiAJcm5kaXNfdGNwX3Rzb19p bmZvICp0c29faW5mbzsJCi0JaW50IGV0aGVyX2xlbjsKIAl1aW50MzJfdCBybmRpc19tc2dfc2l6 ZSA9IDA7Ci0JdWludDMyX3QgdHJhbnNfcHJvdG9fdHlwZTsKIAogCWlmICgoaWZwLT5pZl9kcnZf ZmxhZ3MgJiAoSUZGX0RSVl9SVU5OSU5HIHwgSUZGX0RSVl9PQUNUSVZFKSkgIT0KIAkgICAgSUZG X0RSVl9SVU5OSU5HKQpAQCAtODcyLDEwMSArODAzLDc4IEBACiAJCQkgICAgbV9oZWFkLT5tX3Br dGhkci5ldGhlcl92dGFnICYgMHhmZmY7CiAJCX0KIAotCQkvKiBPbmx5IGNoZWNrIHRoZSBmbGFn cyBmb3Igb3V0Ym91bmQgYW5kIGlnbm9yZSB0aGUgb25lcyBmb3IgaW5ib3VuZCAqLwotCQlpZiAo MCA9PSAobV9oZWFkLT5tX3BrdGhkci5jc3VtX2ZsYWdzICYgSFZfQ1NVTV9GT1JfT1VUQk9VTkQp KSB7Ci0JCQlnb3RvIHByZV9zZW5kOwotCQl9Ci0KLQkJZWggPSBtdG9kKG1faGVhZCwgc3RydWN0 IGV0aGVyX3ZsYW5faGVhZGVyKik7Ci0JCWlmIChlaC0+ZXZsX2VuY2FwX3Byb3RvID09IGh0b25z KEVUSEVSVFlQRV9WTEFOKSkgewotCQkJZXRoZXJfbGVuID0gRVRIRVJfSERSX0xFTiArIEVUSEVS X1ZMQU5fRU5DQVBfTEVOOwotCQl9IGVsc2UgewotCQkJZXRoZXJfbGVuID0gRVRIRVJfSERSX0xF TjsKLQkJfQotCi0JCXRyYW5zX3Byb3RvX3R5cGUgPSBnZXRfdHJhbnNwb3J0X3Byb3RvX3R5cGUo bV9oZWFkKTsKLQkJaWYgKFRSQU5TUE9SVF9UWVBFX05PVF9JUCA9PSB0cmFuc19wcm90b190eXBl KSB7Ci0JCQlnb3RvIHByZV9zZW5kOwotCQl9Ci0KLQkJLyoKLQkJICogVFNPIHBhY2tldCBuZWVk bGVzcyB0byBzZXR1cCB0aGUgc2VuZCBzaWRlIGNoZWNrc3VtCi0JCSAqIG9mZmxvYWQuCi0JCSAq LwogCQlpZiAobV9oZWFkLT5tX3BrdGhkci5jc3VtX2ZsYWdzICYgQ1NVTV9UU08pIHsKLQkJCWdv dG8gZG9fdHNvOwotCQl9Ci0KLQkJLyogc2V0dXAgY2hlY2tzdW0gb2ZmbG9hZCAqLwotCQlybmRp c19tc2dfc2l6ZSArPSBSTkRJU19DU1VNX1BQSV9TSVpFOwotCQlycHBpID0gaHZfc2V0X3JwcGlf ZGF0YShybmRpc19tZXNnLCBSTkRJU19DU1VNX1BQSV9TSVpFLAotCQkgICAgdGNwaXBfY2hrc3Vt X2luZm8pOwotCQljc3VtX2luZm8gPSAocm5kaXNfdGNwX2lwX2NzdW1faW5mbyAqKSgoY2hhciop cnBwaSArCi0JCSAgICBycHBpLT5wZXJfcGFja2V0X2luZm9fb2Zmc2V0KTsKLQotCQlpZiAodHJh bnNfcHJvdG9fdHlwZSAmIChUWVBFX0lQVjQgPDwgMTYpKSB7Ci0JCQljc3VtX2luZm8tPnhtaXQu aXNfaXB2NCA9IDE7Ci0JCX0gZWxzZSB7Ci0JCQljc3VtX2luZm8tPnhtaXQuaXNfaXB2NiA9IDE7 Ci0JCX0KKwkJCXN0cnVjdCBldGhlcl92bGFuX2hlYWRlciAqZWg7CisJCQlpbnQgZXRoZXJfbGVu OworCisJCQllaCA9IG10b2QobV9oZWFkLCBzdHJ1Y3QgZXRoZXJfdmxhbl9oZWFkZXIqKTsKKwkJ CWlmIChlaC0+ZXZsX2VuY2FwX3Byb3RvID09IGh0b25zKEVUSEVSVFlQRV9WTEFOKSkgeworCQkJ CWV0aGVyX2xlbiA9IEVUSEVSX0hEUl9MRU4gKworCQkJCSAgICBFVEhFUl9WTEFOX0VOQ0FQX0xF TjsKKwkJCX0gZWxzZSB7CisJCQkJZXRoZXJfbGVuID0gRVRIRVJfSERSX0xFTjsKKwkJCX0KIAot CQlpZiAodHJhbnNfcHJvdG9fdHlwZSAmIFRZUEVfVENQKSB7Ci0JCQljc3VtX2luZm8tPnhtaXQu dGNwX2NzdW0gPSAxOwotCQkJY3N1bV9pbmZvLT54bWl0LnRjcF9oZWFkZXJfb2Zmc2V0ID0gMDsK LQkJfSBlbHNlIGlmICh0cmFuc19wcm90b190eXBlICYgVFlQRV9VRFApIHsKLQkJCWNzdW1faW5m by0+eG1pdC51ZHBfY3N1bSA9IDE7Ci0JCX0KKwkJCXJuZGlzX21zZ19zaXplICs9IFJORElTX1RT T19QUElfU0laRTsKKwkJCXJwcGkgPSBodl9zZXRfcnBwaV9kYXRhKHJuZGlzX21lc2csIFJORElT X1RTT19QUElfU0laRSwKKwkJCSAgICB0Y3BfbGFyZ2Vfc2VuZF9pbmZvKTsKIAotCQlnb3RvIHBy ZV9zZW5kOworCQkJdHNvX2luZm8gPSAocm5kaXNfdGNwX3Rzb19pbmZvICopKChjaGFyICopcnBw aSArCisJCQkgICAgcnBwaS0+cGVyX3BhY2tldF9pbmZvX29mZnNldCk7CisJCQl0c29faW5mby0+ bHNvX3YyX3htaXQudHlwZSA9CisJCQkgICAgUk5ESVNfVENQX0xBUkdFX1NFTkRfT0ZGTE9BRF9W Ml9UWVBFOwogCi1kb190c286Ci0JCS8qIHNldHVwIFRDUCBzZWdtZW50YXRpb24gb2ZmbG9hZCAq LwotCQlybmRpc19tc2dfc2l6ZSArPSBSTkRJU19UU09fUFBJX1NJWkU7Ci0JCXJwcGkgPSBodl9z ZXRfcnBwaV9kYXRhKHJuZGlzX21lc2csIFJORElTX1RTT19QUElfU0laRSwKLQkJICAgIHRjcF9s YXJnZV9zZW5kX2luZm8pOwotCQkKLQkJdHNvX2luZm8gPSAocm5kaXNfdGNwX3Rzb19pbmZvICop KChjaGFyICopcnBwaSArCi0JCSAgICBycHBpLT5wZXJfcGFja2V0X2luZm9fb2Zmc2V0KTsKLQkJ dHNvX2luZm8tPmxzb192Ml94bWl0LnR5cGUgPQotCQkgICAgUk5ESVNfVENQX0xBUkdFX1NFTkRf T0ZGTE9BRF9WMl9UWVBFOwotCQkKICNpZmRlZiBJTkVUCi0JCWlmICh0cmFuc19wcm90b190eXBl ICYgKFRZUEVfSVBWNCA8PCAxNikpIHsKLQkJCXN0cnVjdCBpcCAqaXAgPQotCQkJICAgIChzdHJ1 Y3QgaXAgKikobV9oZWFkLT5tX2RhdGEgKyBldGhlcl9sZW4pOwotCQkJdW5zaWduZWQgbG9uZyBp cGhfbGVuID0gaXAtPmlwX2hsIDw8IDI7Ci0JCQlzdHJ1Y3QgdGNwaGRyICp0aCA9Ci0JCQkgICAg KHN0cnVjdCB0Y3BoZHIgKikoKGNhZGRyX3QpaXAgKyBpcGhfbGVuKTsKLQkJCi0JCQl0c29faW5m by0+bHNvX3YyX3htaXQuaXBfdmVyc2lvbiA9Ci0JCQkgICAgUk5ESVNfVENQX0xBUkdFX1NFTkRf T0ZGTE9BRF9JUFY0OwotCQkJaXAtPmlwX2xlbiA9IDA7Ci0JCQlpcC0+aXBfc3VtID0gMDsKLQkJ Ci0JCQl0aC0+dGhfc3VtID0gaW5fcHNldWRvKGlwLT5pcF9zcmMuc19hZGRyLAotCQkJICAgIGlw LT5pcF9kc3Quc19hZGRyLAotCQkJICAgIGh0b25zKElQUFJPVE9fVENQKSk7Ci0JCX0KKwkJCWlm IChtX2hlYWQtPm1fcGt0aGRyLmNzdW1fZmxhZ3MgJiBDU1VNX0lQX1RTTykgeworCQkJCXN0cnVj dCBpcCAqaXAgPQorCQkJCSAgICAoc3RydWN0IGlwICopKG1faGVhZC0+bV9kYXRhICsgZXRoZXJf bGVuKTsKKwkJCQl1bnNpZ25lZCBsb25nIGlwaF9sZW4gPSBpcC0+aXBfaGwgPDwgMjsKKwkJCQlz dHJ1Y3QgdGNwaGRyICp0aCA9CisJCQkJICAgIChzdHJ1Y3QgdGNwaGRyICopKChjYWRkcl90KWlw ICsgaXBoX2xlbik7CisJCQkKKwkJCQl0c29faW5mby0+bHNvX3YyX3htaXQuaXBfdmVyc2lvbiA9 CisJCQkJICAgIFJORElTX1RDUF9MQVJHRV9TRU5EX09GRkxPQURfSVBWNDsKKwkJCQlpcC0+aXBf bGVuID0gMDsKKwkJCQlpcC0+aXBfc3VtID0gMDsKKwkJCQorCQkJCXRoLT50aF9zdW0gPSBpbl9w c2V1ZG8oaXAtPmlwX3NyYy5zX2FkZHIsCisJCQkJICAgIGlwLT5pcF9kc3Quc19hZGRyLCBodG9u cyhJUFBST1RPX1RDUCkpOworCQkJfQogI2VuZGlmCiAjaWYgZGVmaW5lZChJTkVUNikgJiYgZGVm aW5lZChJTkVUKQotCQllbHNlCisJCQllbHNlCiAjZW5kaWYKICNpZmRlZiBJTkVUNgotCQl7Ci0J CQlzdHJ1Y3QgaXA2X2hkciAqaXA2ID0KLQkJCSAgICAoc3RydWN0IGlwNl9oZHIgKikobV9oZWFk LT5tX2RhdGEgKyBldGhlcl9sZW4pOwotCQkJc3RydWN0IHRjcGhkciAqdGggPSAoc3RydWN0IHRj cGhkciAqKShpcDYgKyAxKTsKLQotCQkJdHNvX2luZm8tPmxzb192Ml94bWl0LmlwX3ZlcnNpb24g PQotCQkJICAgIFJORElTX1RDUF9MQVJHRV9TRU5EX09GRkxPQURfSVBWNjsKLQkJCWlwNi0+aXA2 X3BsZW4gPSAwOwotCQkJdGgtPnRoX3N1bSA9IGluNl9ja3N1bV9wc2V1ZG8oaXA2LCAwLCBJUFBS T1RPX1RDUCwgMCk7Ci0JCX0KKwkJCXsKKwkJCQlzdHJ1Y3QgaXA2X2hkciAqaXA2ID0gKHN0cnVj dCBpcDZfaGRyICopCisJCQkJICAgIChtX2hlYWQtPm1fZGF0YSArIGV0aGVyX2xlbik7CisJCQkJ c3RydWN0IHRjcGhkciAqdGggPSAoc3RydWN0IHRjcGhkciAqKShpcDYgKyAxKTsKKworCQkJCXRz b19pbmZvLT5sc29fdjJfeG1pdC5pcF92ZXJzaW9uID0KKwkJCQkgICAgUk5ESVNfVENQX0xBUkdF X1NFTkRfT0ZGTE9BRF9JUFY2OworCQkJCWlwNi0+aXA2X3BsZW4gPSAwOworCQkJCXRoLT50aF9z dW0gPQorCQkJCSAgICBpbjZfY2tzdW1fcHNldWRvKGlwNiwgMCwgSVBQUk9UT19UQ1AsIDApOwor CQkJfQogI2VuZGlmCi0JCXRzb19pbmZvLT5sc29fdjJfeG1pdC50Y3BfaGVhZGVyX29mZnNldCA9 IDA7Ci0JCXRzb19pbmZvLT5sc29fdjJfeG1pdC5tc3MgPSBtX2hlYWQtPm1fcGt0aGRyLnRzb19z ZWdzejsKKwkJCXRzb19pbmZvLT5sc29fdjJfeG1pdC50Y3BfaGVhZGVyX29mZnNldCA9IDA7CisJ CQl0c29faW5mby0+bHNvX3YyX3htaXQubXNzID0gbV9oZWFkLT5tX3BrdGhkci50c29fc2Vnc3o7 CisJCX0gZWxzZSBpZiAobV9oZWFkLT5tX3BrdGhkci5jc3VtX2ZsYWdzICYgc2MtPmhuX2NzdW1f YXNzaXN0KSB7CisJCQlybmRpc19tc2dfc2l6ZSArPSBSTkRJU19DU1VNX1BQSV9TSVpFOworCQkJ cnBwaSA9IGh2X3NldF9ycHBpX2RhdGEocm5kaXNfbWVzZywgUk5ESVNfQ1NVTV9QUElfU0laRSwK KwkJCSAgICB0Y3BpcF9jaGtzdW1faW5mbyk7CisJCQljc3VtX2luZm8gPSAocm5kaXNfdGNwX2lw X2NzdW1faW5mbyAqKSgoY2hhciopcnBwaSArCisJCQkgICAgcnBwaS0+cGVyX3BhY2tldF9pbmZv X29mZnNldCk7CisKKwkJCWNzdW1faW5mby0+eG1pdC5pc19pcHY0ID0gMTsKKwkJCWlmIChtX2hl YWQtPm1fcGt0aGRyLmNzdW1fZmxhZ3MgJiBDU1VNX1RDUCkgeworCQkJCWNzdW1faW5mby0+eG1p dC50Y3BfY3N1bSA9IDE7CisJCQkJY3N1bV9pbmZvLT54bWl0LnRjcF9oZWFkZXJfb2Zmc2V0ID0g MDsKKwkJCX0gZWxzZSBpZiAobV9oZWFkLT5tX3BrdGhkci5jc3VtX2ZsYWdzICYgQ1NVTV9VRFAp IHsKKwkJCQljc3VtX2luZm8tPnhtaXQudWRwX2NzdW0gPSAxOworCQkJfQorCQl9CiAKLXByZV9z ZW5kOgogCQlybmRpc19tZXNnLT5tc2dfbGVuID0gcGFja2V0LT50b3RfZGF0YV9idWZfbGVuICsg cm5kaXNfbXNnX3NpemU7CiAJCXBhY2tldC0+dG90X2RhdGFfYnVmX2xlbiA9IHJuZGlzX21lc2ct Pm1zZ19sZW47CiAKZGlmZiAtLWdpdCBhL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNj LmggYi9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5oCi0tLSBhL3N5cy9kZXYvaHlw ZXJ2L25ldHZzYy9odl9uZXRfdnNjLmgKKysrIGIvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25l dF92c2MuaApAQCAtMTAxNSw2ICsxMDE1LDcgQEAKIAlidXNfZG1hX3RhZ190CWhuX3R4X3JuZGlz X2R0YWc7CiAJaW50CQlobl90eF9jaGltbmV5X3NpemU7CiAJaW50CQlobl90eF9jaGltbmV5X21h eDsKKwl1aW50NjRfdAlobl9jc3VtX2Fzc2lzdDsKIAogCXN0cnVjdCBtdHgJaG5fdHhsaXN0X3Nw aW47CiAJc3RydWN0IGhuX3R4ZGVzY19saXN0IGhuX3R4bGlzdDsKQEAgLTEwNDMsOCArMTA0NCw2 IEBACiAJdV9sb25nCQlobl90eGRtYV9mYWlsZWQ7CiAJdV9sb25nCQlobl90eF9jb2xsYXBzZWQ7 CiAJdV9sb25nCQlobl90eF9jaGltbmV5OwotCi0JdWludDY0X3QJaG5fY3N1bV9hc3Npc3Q7CiB9 IGhuX3NvZnRjX3Q7CiAKIAoK --b1_2090b449f5d8745f07ed904ab1fd66c1--