From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) by sourceware.org (Postfix) with ESMTPS id 87AFB3858D20 for ; Mon, 22 Jan 2024 19:45:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 87AFB3858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 87AFB3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42c ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705952723; cv=none; b=ss+Bgb2kpPBRW18wTof2qjxI2/R0bkvjIf4Jz+fDdQNFHzVPvnBeljjhw8mkbedEJv/CA3Jzo3h3gPgTKK8SCaP+pRmCq6yTMCj+UsCqxBDd/YP4AaxDIiB6VJl75deix06DkzbqVC7igcuA88KBDfz5+Q8GBHKSpfJNKpKuC9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705952723; c=relaxed/simple; bh=02seW9s/x9OITCAChZrS++PsxvBQt0d+yGpAUoyfy8M=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=p3k2egoOchT20C5Jm+VmESs681bVy508qIAnKyJJ73rXCQ70r1ynGLN1Rrbx/gFyPB1fnATuVvaBSQazcbLYRShpAQF1qM5x+D0PixOUqMOsglNuw9i3pczBUeDgRi36vUog7aDwZTSpU9/IYO2Ea5gb3Gj3WuW/ku1MDXdHVo4= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-33929364bdaso1854607f8f.2 for ; Mon, 22 Jan 2024 11:45:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1705952719; x=1706557519; darn=gcc.gnu.org; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=9tAXGywyGZw8XK9p4JW4O/0TB22Deq9IPmidTvzU6dw=; b=Rvd5JMTEBG9az1nze4eMhjptf1LYBQJ+wb+DlLT8KXWBEEeHXHqaxZcWO2H+8jqaA3 cVKnDTQHqD9pDtkK3UiODYJfLTbUITnJUKkdFj61hcfY5YN+kMAn6kBk78r/v9gpB1Hr 8MiL4ogdngHCr+SwGtk2wLSnI1v8nS8hUPay5PVo4ifhj77BVf5pIyUsX5in8/FpPwAK ZwG3sKLuUzt04d3yqTCIOgI00w77DYB/c4Qb+p2//ZTQp0QzFHPOa4bRys5sQ5MH5tZ2 e3pQLiDi0i8AbskF9lZgVF9I5yz06Wqgret11QT1iogPMoLE+0T/F0ZIFXaNbsQDZwXk PyMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705952719; x=1706557519; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=9tAXGywyGZw8XK9p4JW4O/0TB22Deq9IPmidTvzU6dw=; b=UryqaRyOZ5d7ZfOSJ2/DiXv4em3g1LPLQUQfxUGsmT4Q/qq+qbHUMjoNrCgS/Zc4eN z3R0hCCZeAQpXWj00nFZBWRaahidlLgsp20oPRZZ+s9W+I3Pcj9I9Lmd7Ku3Td/qoZtu mybw6f08cGKn8jWdF5e3e2Cuwk1QiPmitUsDGBTvdrpwSVG6p2GVYeAh7tWBO37INq2t m/iRC4lfjt40VFK4i24ROzGtS/JiWfpD1LmpJhBIQzh2Aaet6HPxCIqtxLYuFwN+PicT jSeN9RpM33MmRrSQkbNqEudk3v3bvUxX6QNZGJGy/fwlYKy4yF/sju0O517X3ElOvaPt 8xjg== X-Gm-Message-State: AOJu0Yyn10ZFyIHulH7D9RUTh0XvkYvdymbSim6xhc/6qMe3k6KAin8y ML58IeWGrbSEs8I+FxTs/gk/Ud30scRAa1BqgB4nMOWZ7kr2G608yyYWa9vDijgszwkfu6LF73x SJJw= X-Google-Smtp-Source: AGHT+IF/ohihsAFuYl08weQEBQqtMkoyN475tFMOzGGJyeF2xU/iUIM9EF+ZJbugAAPu6cWL/AmF/A== X-Received: by 2002:adf:ea0f:0:b0:337:ccd5:d0bc with SMTP id q15-20020adfea0f000000b00337ccd5d0bcmr2929719wrm.33.1705952719164; Mon, 22 Jan 2024 11:45:19 -0800 (PST) Received: from ?IPV6:2001:16b8:2ad4:b000:be03:58ff:fe31:f74? (200116b82ad4b000be0358fffe310f74.dip.versatel-1u1.de. [2001:16b8:2ad4:b000:be03:58ff:fe31:f74]) by smtp.gmail.com with ESMTPSA id w6-20020adfee46000000b00337cf4a20c6sm11915589wro.31.2024.01.22.11.45.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 22 Jan 2024 11:45:18 -0800 (PST) Content-Type: multipart/mixed; boundary="------------s9g0byVJlfRM1FKo5zWtgFS0" Message-ID: <30b08783-4f6d-4ae1-9459-9391fc8e6262@baylibre.com> Date: Mon, 22 Jan 2024 20:45:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gcc-patches , Thomas Schwinge , Jakub Jelinek From: Tobias Burnus Subject: [patch] plugin/plugin-nvptx.c: Fix fini_device call when already shutdown [PR113513] X-Spam-Status: No, score=-13.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------s9g0byVJlfRM1FKo5zWtgFS0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Testing showed that the libgomp.c/target-52.c failed with: libgomp: cuCtxGetDevice error: unknown cuda error libgomp: device finalization failed This testcase uses OMP_DISPLAY_ENV=true and OMP_TARGET_OFFLOAD=mandatory, and those env vars matter, i.e. it only fails if dg-set-target-env-var is honored. If both env vars are set, the device initialization occurs earlier as OMP_DEFAULT_DEVICE is shown due to the display-env env var and its value (when target-offload-var is 'mandatory') might be either 'omp_invalid_device' or '0'. It turned out that this had an effect on device finalization, which caused CUDA to stop earlier than expected. This patch now handles this case gracefully. For details, see the commit log message in the attached patch and/or the PR. Comments, remarks, suggestions? Does this look sensible? (I would like to see some acknowledgement by someone who feels more comfortable with CUDA than me.) Tobias --------------s9g0byVJlfRM1FKo5zWtgFS0 Content-Type: text/x-patch; charset=UTF-8; name="fix-nvptx-shutdown.diff" Content-Disposition: attachment; filename="fix-nvptx-shutdown.diff" Content-Transfer-Encoding: base64 cGx1Z2luL3BsdWdpbi1udnB0eC5jOiBGaXggZmluaV9kZXZpY2UgY2FsbCB3aGVuIGFscmVh ZHkgc2h1dGRvd24gW1BSMTEzNTEzXQoKVGhlIGZvbGxvd2luZyBpc3N1ZSB3YXMgZm91bmQg d2hlbiBydW5uaW5nIGxpYmdvbXAuYy90YXJnZXQtNTIuYyB3aXRoCm52cHR4IG9mZmxvYWRp bmcgd2hlbiB0aGUgZGctc2V0LXRhcmdldC1lbnYtdmFyIHdhcyBob25vcmVkLiBUaGUgaXNz dWUKb2NjdXJyZWQgZm9yIGJvdGggLWZvZmZsb2FkPWRpc2FibGUgYW5kIHdpdGggb2ZmbG9h ZGluZyBjb25maWd1cmVkIHdoZW4KYW4gbnZpZGlhIGRldmljZSBpcyBhdmFpbGFibGUuCgpB dCB0aGUgZW5kIG9mIHRoZSBwcm9ncmFtLCB0aGUgb2ZmbG9hZGluZyBwYXJ0cyBhcmUgc2h1 dGRvd24gdmlhIHR3byBtZWFuczoKVGhlIGNhbGxiYWNrIHJlZ2lzdGVyZWQgdmlhICdhdGV4 aXQgKGdvbXBfdGFyZ2V0X2ZpbmkpJyBhbmQgLSB2aWEgY29kZQpnZW5lcmF0ZWQgaW4gbWtv ZmZsb2FkLCB0aGUgJ19fYXR0cmlidXRlX18oKGRlc3RydWN0b3IpKSBmaW5pJyBmdW5jdGlv bgp0aGF0IGNhbGxzIEdPTVBfb2ZmbG9hZF91bnJlZ2lzdGVyX3Zlci4KCkluIG5vcm1hbCBw cm9jZXNzaW5nLCBmaXJzdCBnb21wX3RhcmdldF9maW5pIGlzIGNhbGxlZCAtIHdoaWNoIHRo ZW4gc2V0cwpHT01QX0RFVklDRV9GSU5BTElaRUQgZm9yIHRoZSBkZXZpY2UgLSBhbmQgbGF0 ZXIgR09NUF9vZmZsb2FkX3VucmVnaXN0ZXJfdmVyLApidXQgdGhhdCdzIHRoZW4gYmVjYXVz ZSB0aGUgc3RhdGUgaXMgR09NUF9ERVZJQ0VfRklOQUxJWkVELgpJZiBib3RoIE9NUF9ESVNQ TEFZX0VOVj10cnVlIGFuZCBPTVBfVEFSR0VUX09GRkxPQUQ9Im1hbmRhdG9yeSIgYXJlIHNl dCwKdGhlIGNhbGwgb21wX2Rpc3BsYXlfZW52IGFscmVhZHkgaW52b2tlcyBnb21wX2luaXRf dGFyZ2V0c19vbmNlLCBpLmUuIGl0Cm9jY3VycyBlYXJsaWVyIHRoYW4gdXN1YWwgYW5kIGlz IGludm9rZWQgdmlhIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkKaW5pdGlhbGl6ZV9l bnYuCgpGb3Igc29tZSB1bmtub3duIHJlYXNvbnMsIHdoaWxlIHRoaXMgZG9lcyBub3QgaGF2 ZSBhbiBlZmZlY3Qgb24gdGhlCm9yZGVyIG9mIHRoZSBjYWxsZWQgcGx1Z2luIGZ1bmN0aW9u cyBmb3IgaW5pdGlhbGl6YXRpb24sIGl0IGNoYW5nZXMgdGhlCm9yZGVyIG9mIGZ1bmN0aW9u IGNhbGxzIGZvciBzaHV0dGluZyBkb3duLiBOYW1lbHksIHdoZW4gdGhlIHR3byBlbnZpcm9u bWVudAp2YXJpYWJsZXMgYXJlIHNldCwgR09NUF9vZmZsb2FkX3VucmVnaXN0ZXJfdmVyIGlz IGNhbGxlZCBub3cgYmVmb3JlCmdvbXBfdGFyZ2V0X2ZpbmkuIC0gQW5kIGl0IHNlZW1zIGFz IGlmIENVREEgcmVnYXJkcyBhIGNhbGwgdG8gY3VNb2R1bGVVbmxvYWQKKG9yIHVubG9hZGlu ZyB0aGUgbGFzdCBtb2R1bGU/KSBhcyBpbmRpY2F0aW9uIHRoYXQgdGhlIGRldmljZSBjb250 ZXh0IHNob3VsZApiZSBkZXN0cm95ZWQgLSBvciwgYXQgbGVhc3QsIGFmdGVyd2FyZHMgY2Fs bGluZyBjdUN0eEdldERldmljZSB3aWxsIHJldHVybgpDVURBX0VSUk9SX0RFSU5JVElBTEla RUQuCgpBcyB0aGUgcHJldmlvdXMgY29kZSBpbiBudnB0eF9hdHRhY2hfaG9zdF90aHJlYWRf dG9fZGV2aWNlIHdhc24ndCBleHBlY3RpbmcKdGhhdCByZXN1bHQsIGl0IGNhbGxlZAogIEdP TVBfUExVR0lOX2Vycm9yICgiY3VDdHhHZXREZXZpY2UgZXJyb3I6ICVzIiwgY3VkYV9lcnJv ciAocikpOwpjYXVzaW5nIGEgZmF0YWwgZXJyb3Igb2YgdGhlIHByb2dyYW0uCgpUaGlzIGNv bW1pdCBoYW5kbGVzIG5vdyBDVURBX0VSUk9SX0RFSU5JVElBTElaRUQgaW4gYSBzcGVjaWFs IHdheSBzdWNoCnRoYXQgR09NUF9PRkZMT0FEX2ZpbmlfZGV2aWNlIGp1c3Qgd29ya3MuCgpX aGVuIHJlYWRpbmcgdGhlIGNvZGUsIHRoZSBmb2xsb3dpbmcgd2FzIG9ic2VydmVkIGluIGFk ZGl0aW9uOgpXaGVuIGdvbXBfZmluaV9kZXZpY2UgaXMgY2FsbGVkLCBpdCBpbnZva2VzIGdv YWNjX2ZpbmlfYXN5bmNxdWV1ZXMKdG8gZW5zdXJlIHRoYXQgdGhlIHF1ZXVlIGlzIGVtcHRp ZWQuICBJdCBzZWVtcyB0byBtYWtlIHNlbnNlIHRvIGRvCmxpa2V3aXNlIGZvciBHT01QX29m ZmxvYWRfdW5yZWdpc3Rlcl92ZXIsIHdoaWNoIHRoaXMgY29tbWl0IGRvZXMgaW4KYWRkaXRp b24uCgpsaWJnb21wL0NoYW5nZUxvZzoKCglQUiBsaWJnb21wLzExMzUxMwoJKiB0YXJnZXQu YyAoR09NUF9vZmZsb2FkX3VucmVnaXN0ZXJfdmVyKTogQ2FsbCBnb2FjY19maW5pX2FzeW5j cXVldWVzCgliZWZvcmUgaW52b2tpbmcgR09NUF9vZmZsb2FkX3VucmVnaXN0ZXJfdmVyLgoJ KiBwbHVnaW4vcGx1Z2luLW52cHR4LmMgKG52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19k ZXZpY2UpOiBDaGFuZ2UKCXJldHVybiB0eXBlIHRvIGludCBhbmQgcmV0dXJuIC0xIGZvciBD VURBX0VSUk9SX0RFSU5JVElBTElaRUQuCgkoR09NUF9PRkZMT0FEX2ZpbmlfZGV2aWNlKTog SGFuZGxlIHRoZSBsYXR0ZXIgZ3JhY2VmdWxseS4KCShudnB0eF9pbml0LCBHT01QX09GRkxP QURfbG9hZF9pbWFnZSwgR09NUF9PRkZMT0FEX2FsbG9jLAoJR09NUF9PRkZMT0FEX2hvc3Qy ZGV2LCBHT01QX09GRkxPQURfZGV2Mmhvc3QsIEdPTVBfT0ZGTE9BRF9tZW1jcHkyZCwKCUdP TVBfT0ZGTE9BRF9tZW1jcHkzZCwgR09NUF9PRkZMT0FEX29wZW5hY2NfYXN5bmNfaG9zdDJk ZXYsCglHT01QX09GRkxPQURfb3BlbmFjY19hc3luY19kZXYyaG9zdCk6IFVwZGF0ZSBmb3Ig cmV0dXJuLXR5cGUgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogVG9iaWFzIEJ1cm51cyA8dGJ1 cm51c0BiYXlsaWJyZS5jb20+CgogbGliZ29tcC9wbHVnaW4vcGx1Z2luLW52cHR4LmMgfCA0 MSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogbGliZ29tcC90 YXJnZXQuYyAgICAgICAgICAgICAgfCAgNyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDMw IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmdvbXAv cGx1Z2luL3BsdWdpbi1udnB0eC5jIGIvbGliZ29tcC9wbHVnaW4vcGx1Z2luLW52cHR4LmMK aW5kZXggYzA0YzNhY2Q2NzkuLmRjY2JhZTQ0YWJkIDEwMDY0NAotLS0gYS9saWJnb21wL3Bs dWdpbi9wbHVnaW4tbnZwdHguYworKysgYi9saWJnb21wL3BsdWdpbi9wbHVnaW4tbnZwdHgu YwpAQCAtMzgyLDkgKzM4MiwxMSBAQCBudnB0eF9pbml0ICh2b2lkKQogfQogCiAvKiBTZWxl Y3QgdGhlIE4ndGggUFRYIGRldmljZSBmb3IgdGhlIGN1cnJlbnQgaG9zdCB0aHJlYWQuICBU aGUgZGV2aWNlIG11c3QKLSAgIGhhdmUgYmVlbiBwcmV2aW91c2x5IG9wZW5lZCBiZWZvcmUg Y2FsbGluZyB0aGlzIGZ1bmN0aW9uLiAgKi8KKyAgIGhhdmUgYmVlbiBwcmV2aW91c2x5IG9w ZW5lZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICAgUmV0dXJucyAxIGlmIHN1 Y2Nlc3NmdWwsIDAgaWYgYW4gZXJyb3Igb2NjdXJyZWQsIGFuZCAtMSBmb3IKKyAgIENVREFf RVJST1JfREVJTklUSUFMSVpFRC4gICovCiAKLXN0YXRpYyBib29sCitzdGF0aWMgaW50CiBu dnB0eF9hdHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChpbnQgbikKIHsKICAgQ1VkZXZp Y2UgZGV2OwpAQCAtMzkzLDE1ICszOTUsMTcgQEAgbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFk X3RvX2RldmljZSAoaW50IG4pCiAgIENVY29udGV4dCB0aGRfY3R4OwogCiAgIHIgPSBDVURB X0NBTExfTk9DSEVDSyAoY3VDdHhHZXREZXZpY2UsICZkZXYpOworICBpZiAociA9PSBDVURB X0VSUk9SX0RFSU5JVElBTElaRUQpCisgICAgcmV0dXJuIC0xOwogICBpZiAociA9PSBDVURB X0VSUk9SX05PVF9QRVJNSVRURUQpCiAgICAgewogICAgICAgLyogQXNzdW1lIHdlJ3JlIGlu IGEgQ1VEQSBjYWxsYmFjaywganVzdCByZXR1cm4gdHJ1ZS4gICovCi0gICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgIHJldHVybiAxOwogICAgIH0KICAgaWYgKHIgIT0gQ1VEQV9TVUNDRVNT ICYmIHIgIT0gQ1VEQV9FUlJPUl9JTlZBTElEX0NPTlRFWFQpCiAgICAgewogICAgICAgR09N UF9QTFVHSU5fZXJyb3IgKCJjdUN0eEdldERldmljZSBlcnJvcjogJXMiLCBjdWRhX2Vycm9y IChyKSk7Ci0gICAgICByZXR1cm4gZmFsc2U7CisgICAgICByZXR1cm4gMDsKICAgICB9CiAK ICAgaWYgKHIgIT0gQ1VEQV9FUlJPUl9JTlZBTElEX0NPTlRFWFQgJiYgZGV2ID09IG4pCkBA IC00MTQsNyArNDE4LDcgQEAgbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAo aW50IG4pCiAgICAgICBpZiAoIXB0eF9kZXYpCiAJewogCSAgR09NUF9QTFVHSU5fZXJyb3Ig KCJkZXZpY2UgJWQgbm90IGZvdW5kIiwgbik7Ci0JICByZXR1cm4gZmFsc2U7CisJICByZXR1 cm4gMDsKIAl9CiAKICAgICAgIENVREFfQ0FMTCAoY3VDdHhHZXRDdXJyZW50LCAmdGhkX2N0 eCk7CkBAIC00MjYsNyArNDMwLDcgQEAgbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2Rl dmljZSAoaW50IG4pCiAKICAgICAgIENVREFfQ0FMTCAoY3VDdHhQdXNoQ3VycmVudCwgcHR4 X2Rldi0+Y3R4KTsKICAgICB9Ci0gIHJldHVybiB0cnVlOworICByZXR1cm4gMTsKIH0KIAog c3RhdGljIHN0cnVjdCBwdHhfZGV2aWNlICoKQEAgLTEyNTIsOCArMTI1NiwxMSBAQCBHT01Q X09GRkxPQURfZmluaV9kZXZpY2UgKGludCBuKQogCiAgIGlmIChwdHhfZGV2aWNlc1tuXSAh PSBOVUxMKQogICAgIHsKLSAgICAgIGlmICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3Rv X2RldmljZSAobikKLQkgIHx8ICFudnB0eF9jbG9zZV9kZXZpY2UgKHB0eF9kZXZpY2VzW25d KSkKKyAgICAgIC8qIFJldHVybnMgMSBpZiBzdWNjZXNzZnVsLCAwIGlmIGFuIGVycm9yIG9j Y3VycmVkLCBhbmQgLTEgZm9yCisJIENVREFfRVJST1JfREVJTklUSUFMSVpFRC4gICovCisg ICAgICBpbnQgciA9IG52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2UgKG4pOwor ICAgICAgaWYgKHIgPT0gMAorCSAgfHwgKHIgPT0gMSAmJiAhbnZwdHhfY2xvc2VfZGV2aWNl IChwdHhfZGV2aWNlc1tuXSkpKQogCXsKIAkgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrICgmcHR4 X2Rldl9sb2NrKTsKIAkgIHJldHVybiBmYWxzZTsKQEAgLTEzMjksNyArMTMzNiw3IEBAIEdP TVBfT0ZGTE9BRF9sb2FkX2ltYWdlIChpbnQgb3JkLCB1bnNpZ25lZCB2ZXJzaW9uLCBjb25z dCB2b2lkICp0YXJnZXRfZGF0YSwKICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgaWYg KCFudnB0eF9hdHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChvcmQpCisgIGlmIChudnB0 eF9hdHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChvcmQpICE9IDEKICAgICAgIHx8ICFs aW5rX3B0eCAoJm1vZHVsZSwgaW1nX2hlYWRlci0+cHR4X29ianMsIGltZ19oZWFkZXItPnB0 eF9udW0pKQogICAgIHJldHVybiAtMTsKIApAQCAtMTU2OCw3ICsxNTc1LDcgQEAgR09NUF9P RkZMT0FEX3VubG9hZF9pbWFnZSAoaW50IG9yZCwgdW5zaWduZWQgdmVyc2lvbiwgY29uc3Qg dm9pZCAqdGFyZ2V0X2RhdGEpCiB2b2lkICoKIEdPTVBfT0ZGTE9BRF9hbGxvYyAoaW50IG9y ZCwgc2l6ZV90IHNpemUpCiB7Ci0gIGlmICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3Rv X2RldmljZSAob3JkKSkKKyAgaWYgKG52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZp Y2UgKG9yZCkgIT0gMSkKICAgICByZXR1cm4gTlVMTDsKIAogICBzdHJ1Y3QgcHR4X2Rldmlj ZSAqcHR4X2RldiA9IHB0eF9kZXZpY2VzW29yZF07CkBAIC0xODM3LDcgKzE4NDQsNyBAQCBj dWRhX21lbWNweV9zYW5pdHlfY2hlY2sgKGNvbnN0IHZvaWQgKmgsIGNvbnN0IHZvaWQgKmQs IHNpemVfdCBzKQogYm9vbAogR09NUF9PRkZMT0FEX2hvc3QyZGV2IChpbnQgb3JkLCB2b2lk ICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IG4pCiB7Ci0gIGlmICghbnZwdHhfYXR0 YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAob3JkKQorICBpZiAobnZwdHhfYXR0YWNoX2hv c3RfdGhyZWFkX3RvX2RldmljZSAob3JkKSAhPSAxCiAgICAgICB8fCAhY3VkYV9tZW1jcHlf c2FuaXR5X2NoZWNrIChzcmMsIGRzdCwgbikpCiAgICAgcmV0dXJuIGZhbHNlOwogICBDVURB X0NBTEwgKGN1TWVtY3B5SHRvRCwgKENVZGV2aWNlcHRyKSBkc3QsIHNyYywgbik7CkBAIC0x ODQ3LDcgKzE4NTQsNyBAQCBHT01QX09GRkxPQURfaG9zdDJkZXYgKGludCBvcmQsIHZvaWQg KmRzdCwgY29uc3Qgdm9pZCAqc3JjLCBzaXplX3QgbikKIGJvb2wKIEdPTVBfT0ZGTE9BRF9k ZXYyaG9zdCAoaW50IG9yZCwgdm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBu KQogewotICBpZiAoIW52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2UgKG9yZCkK KyAgaWYgKG52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2UgKG9yZCkgIT0gMQog ICAgICAgfHwgIWN1ZGFfbWVtY3B5X3Nhbml0eV9jaGVjayAoZHN0LCBzcmMsIG4pKQogICAg IHJldHVybiBmYWxzZTsKICAgQ1VEQV9DQUxMIChjdU1lbWNweUR0b0gsIGRzdCwgKENVZGV2 aWNlcHRyKSBzcmMsIG4pOwpAQCAtMTg2OCw3ICsxODc1LDggQEAgR09NUF9PRkZMT0FEX21l bWNweTJkIChpbnQgZHN0X29yZCwgaW50IHNyY19vcmQsIHNpemVfdCBkaW0xX3NpemUsCiAJ CSAgICAgICBjb25zdCB2b2lkICpzcmMsIHNpemVfdCBzcmNfb2Zmc2V0MV9zaXplLAogCQkg ICAgICAgc2l6ZV90IHNyY19vZmZzZXQwX2xlbiwgc2l6ZV90IHNyY19kaW0xX3NpemUpCiB7 Ci0gIGlmICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAoc3JjX29yZCAh PSAtMSA/IHNyY19vcmQgOiBkc3Rfb3JkKSkKKyAgaWYgKG52cHR4X2F0dGFjaF9ob3N0X3Ro cmVhZF90b19kZXZpY2UgKHNyY19vcmQgIT0gLTEgPyBzcmNfb3JkIDogZHN0X29yZCkKKyAg ICAgICE9IDEpCiAgICAgcmV0dXJuIGZhbHNlOwogCiAgIC8qIFRPRE86IENvbnNpZGVyIHVz aW5nIENVX01FTU9SWVRZUEVfVU5JRklFRCBpZiBzdXBwb3J0ZWQuICAqLwpAQCAtMTk2MCw3 ICsxOTY4LDggQEAgR09NUF9PRkZMT0FEX21lbWNweTNkIChpbnQgZHN0X29yZCwgaW50IHNy Y19vcmQsIHNpemVfdCBkaW0yX3NpemUsCiAJCSAgICAgICBzaXplX3Qgc3JjX29mZnNldDBf bGVuLCBzaXplX3Qgc3JjX2RpbTJfc2l6ZSwKIAkJICAgICAgIHNpemVfdCBzcmNfZGltMV9s ZW4pCiB7Ci0gIGlmICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAoc3Jj X29yZCAhPSAtMSA/IHNyY19vcmQgOiBkc3Rfb3JkKSkKKyAgaWYgKG52cHR4X2F0dGFjaF9o b3N0X3RocmVhZF90b19kZXZpY2UgKHNyY19vcmQgIT0gLTEgPyBzcmNfb3JkIDogZHN0X29y ZCkKKyAgICAgICE9IDEpCiAgICAgcmV0dXJuIGZhbHNlOwogCiAgIC8qIFRPRE86IENvbnNp ZGVyIHVzaW5nIENVX01FTU9SWVRZUEVfVU5JRklFRCBpZiBzdXBwb3J0ZWQuICAqLwpAQCAt MjA1MCw3ICsyMDU5LDcgQEAgYm9vbAogR09NUF9PRkZMT0FEX29wZW5hY2NfYXN5bmNfaG9z dDJkZXYgKGludCBvcmQsIHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLAogCQkJCSAgICAg c2l6ZV90IG4sIHN0cnVjdCBnb2FjY19hc3luY3F1ZXVlICphcSkKIHsKLSAgaWYgKCFudnB0 eF9hdHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChvcmQpCisgIGlmIChudnB0eF9hdHRh Y2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChvcmQpICE9IDEKICAgICAgIHx8ICFjdWRhX21l bWNweV9zYW5pdHlfY2hlY2sgKHNyYywgZHN0LCBuKSkKICAgICByZXR1cm4gZmFsc2U7CiAg IENVREFfQ0FMTCAoY3VNZW1jcHlIdG9EQXN5bmMsIChDVWRldmljZXB0cikgZHN0LCBzcmMs IG4sIGFxLT5jdWRhX3N0cmVhbSk7CkBAIC0yMDYxLDcgKzIwNzAsNyBAQCBib29sCiBHT01Q X09GRkxPQURfb3BlbmFjY19hc3luY19kZXYyaG9zdCAoaW50IG9yZCwgdm9pZCAqZHN0LCBj b25zdCB2b2lkICpzcmMsCiAJCQkJICAgICBzaXplX3Qgbiwgc3RydWN0IGdvYWNjX2FzeW5j cXVldWUgKmFxKQogewotICBpZiAoIW52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZp Y2UgKG9yZCkKKyAgaWYgKG52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2UgKG9y ZCkgIT0gMQogICAgICAgfHwgIWN1ZGFfbWVtY3B5X3Nhbml0eV9jaGVjayAoZHN0LCBzcmMs IG4pKQogICAgIHJldHVybiBmYWxzZTsKICAgQ1VEQV9DQUxMIChjdU1lbWNweUR0b0hBc3lu YywgZHN0LCAoQ1VkZXZpY2VwdHIpIHNyYywgbiwgYXEtPmN1ZGFfc3RyZWFtKTsKZGlmZiAt LWdpdCBhL2xpYmdvbXAvdGFyZ2V0LmMgYi9saWJnb21wL3RhcmdldC5jCmluZGV4IDEzNjdl OWNjZTZjLi44ZDA1ODc3ZGViNyAxMDA2NDQKLS0tIGEvbGliZ29tcC90YXJnZXQuYworKysg Yi9saWJnb21wL3RhcmdldC5jCkBAIC0yNzA2LDggKzI3MDYsMTEgQEAgR09NUF9vZmZsb2Fk X3VucmVnaXN0ZXJfdmVyICh1bnNpZ25lZCB2ZXJzaW9uLCBjb25zdCB2b2lkICpob3N0X3Rh YmxlLAogICAgICAgZ29tcF9tdXRleF9sb2NrICgmZGV2aWNlcC0+bG9jayk7CiAgICAgICBp ZiAoZGV2aWNlcC0+dHlwZSA9PSB0YXJnZXRfdHlwZQogCSAgJiYgZGV2aWNlcC0+c3RhdGUg PT0gR09NUF9ERVZJQ0VfSU5JVElBTElaRUQpCi0JZ29tcF91bmxvYWRfaW1hZ2VfZnJvbV9k ZXZpY2UgKGRldmljZXAsIHZlcnNpb24sCi0JCQkJICAgICAgIGhvc3RfdGFibGUsIHRhcmdl dF9kYXRhKTsKKwl7CisJICBnb2FjY19maW5pX2FzeW5jcXVldWVzIChkZXZpY2VwKTsKKwkg IGdvbXBfdW5sb2FkX2ltYWdlX2Zyb21fZGV2aWNlIChkZXZpY2VwLCB2ZXJzaW9uLAorCQkJ CQkgaG9zdF90YWJsZSwgdGFyZ2V0X2RhdGEpOworCX0KICAgICAgIGdvbXBfbXV0ZXhfdW5s b2NrICgmZGV2aWNlcC0+bG9jayk7CiAgICAgfQogCg== --------------s9g0byVJlfRM1FKo5zWtgFS0--