From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) by sourceware.org (Postfix) with ESMTPS id 0F0173858C50 for ; Tue, 23 Jan 2024 09:55:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0F0173858C50 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 0F0173858C50 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::334 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706003723; cv=none; b=PETwhOYLcn0afJZocluW2yVuMTrRm5PhrbhC1wguZu0mgez89hO8ZhOjZlmIU/VGwSnTnQLDz7ccuU5OjiEQQi7Y1bnPzjB/5Id7/eKIs8J6IasM5WAIo1JmwQCCTtlviUy9kjT7k3evf6f19fiTf/+lm/1cegDAFNYm2p05GsY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706003723; c=relaxed/simple; bh=8muCmBNpMJNvNPUDCJnVX/MF2SSA75tGALG5HJq9ByU=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=cREhhUCVma0PLI/1s59JNuWjZs93gDGP0vDSNQFD575jTlFaN3zESJpRIXDOUhGiwXiQOQLq7+iPtKnFWXv2noqPW9LG6HARgFc+qH9pVnMcn01ssq0jReg8yRTbsxuIQiYefpX+hcBOf7Hg/AOIk9epe+wcn/ARETxrpSBkxMc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-40e60e135a7so40410255e9.0 for ; Tue, 23 Jan 2024 01:55:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1706003718; x=1706608518; darn=gcc.gnu.org; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=fUQ+1tLAyj4rTU0XHnya0ScNLD4S+9FwQJZWdPpwiYI=; b=yjt5yzixbYGgYCA47g0qZS1pWaLoVAjyTJFXWYHcYTWkUvp44eyndaQCJoqN3qFXvt TNpmStrojQevmG0uEGfijnPhNfKOkZfXhhBCQmmzV6tItEz/pdM+mwGUpYfjHgbJ4V9T thQ6LwybYzKKa5opA5r2ikVpm2PbDnnD1tXNgqP07/rlXfqjxpmS6VyDiYOPV27IILvs pa4FNHm5hX9bqV7oHw+b7agx8uLj38/h6T2w8M3p72W/Mdlr9/KM9lNHQ+m7VNtyJelX 8pSvjR7k/tTZ3wOBADhwKunTfdE5UQFdyc0Nkwcsz/6btndoUve3JPxKtbFWsDe/Izw7 jnjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706003718; x=1706608518; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=fUQ+1tLAyj4rTU0XHnya0ScNLD4S+9FwQJZWdPpwiYI=; b=vV+kczz2hfHqYnCpzWS6bD97eoDi0EgBCYGv5NryrNHZcztoq9UYZyneEjCsf8zIC0 e7K5/gUnM1m5jgot8dCSSuVdpy2iNWLz+HD4dq/eGkJ9+wheVGf595xEUr0374uGx4ie 7lR3pdRiNHCn2N7cSyoQmeKrWBhxGwDtDMBOd+9TTsMPCaSY1Bl951ySfZnhC1vsgFbm UXg5lOT7nRO13Xx2JMgOa0QyU0NVhiFsO35FikvY1Cezqun05KTUF4XYMWgT5w016OUN +xGkE5JmiJ6vmY+S59IExra7B+SH0jYIkfS5iTbP9Ievf/5N/eYnfjo0RQlEkBVmaP2A 6O3g== X-Gm-Message-State: AOJu0YyHi2kGYe4eJXVGb4l9sSue+JVApf0RcABs69CO2dPl2KPq1hw0 axbl3ugy3zQ/5LFhQqFsrroaNOAjLtMDdreV4Waka7GqX7rnutYDYXt/0UdTVIpdfwg4gltId5L 5jBY= X-Google-Smtp-Source: AGHT+IEcKUz0OuByrcIQg4hVpYVXbIJ0H9u8V2fs8s4/j5ryyvnYVtQ42OoFZ4zYv3egyGZM8mMK4g== X-Received: by 2002:a05:600c:2ed3:b0:40e:42ca:94f6 with SMTP id q19-20020a05600c2ed300b0040e42ca94f6mr365711wmn.101.1706003718534; Tue, 23 Jan 2024 01:55:18 -0800 (PST) Received: from ?IPV6:2001:16b8:3f0c:aa00:be03:58ff:fe31:f74? ([2001:16b8:3f0c:aa00:be03:58ff:fe31:f74]) by smtp.gmail.com with ESMTPSA id m35-20020a05600c3b2300b0040e541ddcb1sm42033783wms.33.2024.01.23.01.55.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 23 Jan 2024 01:55:18 -0800 (PST) Content-Type: multipart/mixed; boundary="------------nOEdLm2f0GJFhdXyn5CUZkK6" Message-ID: <53a3c4e3-452c-4445-8d4a-be66dccc9e45@baylibre.com> Date: Tue, 23 Jan 2024 10:55:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [v2][patch] plugin/plugin-nvptx.c: Fix fini_device call when already shutdown [PR113513] Content-Language: en-US From: Tobias Burnus To: gcc-patches , Thomas Schwinge , Jakub Jelinek References: <30b08783-4f6d-4ae1-9459-9391fc8e6262@baylibre.com> In-Reply-To: <30b08783-4f6d-4ae1-9459-9391fc8e6262@baylibre.com> X-Spam-Status: No, score=-13.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,HTML_MESSAGE,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. --------------nOEdLm2f0GJFhdXyn5CUZkK6 Content-Type: multipart/alternative; boundary="------------MavoUsdmNzAxdUBprCM5Loxw" --------------MavoUsdmNzAxdUBprCM5Loxw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Slightly changed patch: nvptx_attach_host_thread_to_device now fails again with an error for CUDA_ERROR_DEINITIALIZED, except for GOMP_OFFLOAD_fini_device. I think it makes more sense that way. Tobias Burnus wrote: > 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 --------------MavoUsdmNzAxdUBprCM5Loxw-- --------------nOEdLm2f0GJFhdXyn5CUZkK6 Content-Type: text/x-patch; charset=UTF-8; name="fix-nvptx-shutdown-v2.diff" Content-Disposition: attachment; filename="fix-nvptx-shutdown-v2.diff" Content-Transfer-Encoding: base64 cGx1Z2luL3BsdWdpbi1udnB0eC5jOiBGaXggZmluaV9kZXZpY2UgY2FsbCB3 aGVuIGFscmVhZHkgc2h1dGRvd24gW1BSMTEzNTEzXQoKVGhlIGZvbGxvd2lu ZyBpc3N1ZSB3YXMgZm91bmQgd2hlbiBydW5uaW5nIGxpYmdvbXAuYy90YXJn ZXQtNTIuYyB3aXRoCm52cHR4IG9mZmxvYWRpbmcgd2hlbiB0aGUgZGctc2V0 LXRhcmdldC1lbnYtdmFyIHdhcyBob25vcmVkLiBUaGUgaXNzdWUKb2NjdXJy ZWQgZm9yIGJvdGggLWZvZmZsb2FkPWRpc2FibGUgYW5kIHdpdGggb2ZmbG9h ZGluZyBjb25maWd1cmVkIHdoZW4KYW4gbnZpZGlhIGRldmljZSBpcyBhdmFp bGFibGUuCgpBdCB0aGUgZW5kIG9mIHRoZSBwcm9ncmFtLCB0aGUgb2ZmbG9h ZGluZyBwYXJ0cyBhcmUgc2h1dGRvd24gdmlhIHR3byBtZWFuczoKVGhlIGNh bGxiYWNrIHJlZ2lzdGVyZWQgdmlhICdhdGV4aXQgKGdvbXBfdGFyZ2V0X2Zp bmkpJyBhbmQgLSB2aWEgY29kZQpnZW5lcmF0ZWQgaW4gbWtvZmZsb2FkLCB0 aGUgJ19fYXR0cmlidXRlX18oKGRlc3RydWN0b3IpKSBmaW5pJyBmdW5jdGlv bgp0aGF0IGNhbGxzIEdPTVBfb2ZmbG9hZF91bnJlZ2lzdGVyX3Zlci4KCklu IG5vcm1hbCBwcm9jZXNzaW5nLCBmaXJzdCBnb21wX3RhcmdldF9maW5pIGlz IGNhbGxlZCAtIHdoaWNoIHRoZW4gc2V0cwpHT01QX0RFVklDRV9GSU5BTEla RUQgZm9yIHRoZSBkZXZpY2UgLSBhbmQgbGF0ZXIgR09NUF9vZmZsb2FkX3Vu cmVnaXN0ZXJfdmVyLApidXQgdGhhdCdzIHRoZW4gYmVjYXVzZSB0aGUgc3Rh dGUgaXMgR09NUF9ERVZJQ0VfRklOQUxJWkVELgpJZiBib3RoIE9NUF9ESVNQ TEFZX0VOVj10cnVlIGFuZCBPTVBfVEFSR0VUX09GRkxPQUQ9Im1hbmRhdG9y eSIgYXJlIHNldCwKdGhlIGNhbGwgb21wX2Rpc3BsYXlfZW52IGFscmVhZHkg aW52b2tlcyBnb21wX2luaXRfdGFyZ2V0c19vbmNlLCBpLmUuIGl0Cm9jY3Vy cyBlYXJsaWVyIHRoYW4gdXN1YWwgYW5kIGlzIGludm9rZWQgdmlhIF9fYXR0 cmlidXRlX18oKGNvbnN0cnVjdG9yKSkKaW5pdGlhbGl6ZV9lbnYuCgpGb3Ig c29tZSB1bmtub3duIHJlYXNvbnMsIHdoaWxlIHRoaXMgZG9lcyBub3QgaGF2 ZSBhbiBlZmZlY3Qgb24gdGhlCm9yZGVyIG9mIHRoZSBjYWxsZWQgcGx1Z2lu IGZ1bmN0aW9ucyBmb3IgaW5pdGlhbGl6YXRpb24sIGl0IGNoYW5nZXMgdGhl Cm9yZGVyIG9mIGZ1bmN0aW9uIGNhbGxzIGZvciBzaHV0dGluZyBkb3duLiBO YW1lbHksIHdoZW4gdGhlIHR3byBlbnZpcm9ubWVudAp2YXJpYWJsZXMgYXJl IHNldCwgR09NUF9vZmZsb2FkX3VucmVnaXN0ZXJfdmVyIGlzIGNhbGxlZCBu b3cgYmVmb3JlCmdvbXBfdGFyZ2V0X2ZpbmkuIC0gQW5kIGl0IHNlZW1zIGFz IGlmIENVREEgcmVnYXJkcyBhIGNhbGwgdG8gY3VNb2R1bGVVbmxvYWQKKG9y IHVubG9hZGluZyB0aGUgbGFzdCBtb2R1bGU/KSBhcyBpbmRpY2F0aW9uIHRo YXQgdGhlIGRldmljZSBjb250ZXh0IHNob3VsZApiZSBkZXN0cm95ZWQgLSBv ciwgYXQgbGVhc3QsIGFmdGVyd2FyZHMgY2FsbGluZyBjdUN0eEdldERldmlj ZSB3aWxsIHJldHVybgpDVURBX0VSUk9SX0RFSU5JVElBTElaRUQuCgpBcyB0 aGUgcHJldmlvdXMgY29kZSBpbiBudnB0eF9hdHRhY2hfaG9zdF90aHJlYWRf dG9fZGV2aWNlIHdhc24ndCBleHBlY3RpbmcKdGhhdCByZXN1bHQsIGl0IGNh bGxlZAogIEdPTVBfUExVR0lOX2Vycm9yICgiY3VDdHhHZXREZXZpY2UgZXJy b3I6ICVzIiwgY3VkYV9lcnJvciAocikpOwpjYXVzaW5nIGEgZmF0YWwgZXJy b3Igb2YgdGhlIHByb2dyYW0uCgpUaGlzIGNvbW1pdCBoYW5kbGVzIG5vdyBD VURBX0VSUk9SX0RFSU5JVElBTElaRUQgaW4gYSBzcGVjaWFsIHdheSBzdWNo CnRoYXQgR09NUF9PRkZMT0FEX2ZpbmlfZGV2aWNlIGp1c3Qgd29ya3MuCgpX aGVuIHJlYWRpbmcgdGhlIGNvZGUsIHRoZSBmb2xsb3dpbmcgd2FzIG9ic2Vy dmVkIGluIGFkZGl0aW9uOgpXaGVuIGdvbXBfZmluaV9kZXZpY2UgaXMgY2Fs bGVkLCBpdCBpbnZva2VzIGdvYWNjX2ZpbmlfYXN5bmNxdWV1ZXMKdG8gZW5z dXJlIHRoYXQgdGhlIHF1ZXVlIGlzIGVtcHRpZWQuICBJdCBzZWVtcyB0byBt YWtlIHNlbnNlIHRvIGRvCmxpa2V3aXNlIGZvciBHT01QX29mZmxvYWRfdW5y ZWdpc3Rlcl92ZXIsIHdoaWNoIHRoaXMgY29tbWl0IGRvZXMgaW4KYWRkaXRp b24uCgpsaWJnb21wL0NoYW5nZUxvZzoKCglQUiBsaWJnb21wLzExMzUxMwoJ KiB0YXJnZXQuYyAoR09NUF9vZmZsb2FkX3VucmVnaXN0ZXJfdmVyKTogQ2Fs bCBnb2FjY19maW5pX2FzeW5jcXVldWVzCgliZWZvcmUgaW52b2tpbmcgR09N UF9vZmZsb2FkX3VucmVnaXN0ZXJfdmVyLgoJKiBwbHVnaW4vcGx1Z2luLW52 cHR4LmMgKG52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2UpOiBD aGFuZ2UKCXJldHVybiB0eXBlIHRvIGludCBhbmQgbmV3IGJvb2wgYXJnLCBp dCB0cnVlLCByZXR1cm4gLTEgZm9yCglDVURBX0VSUk9SX0RFSU5JVElBTEla RUQuCgkoR09NUF9PRkZMT0FEX2ZpbmlfZGV2aWNlKTogSGFuZGxlIHRoZSBk ZWluaXRpYWxpemVkIGdyYWNlZnVsbHkuCgkobnZwdHhfaW5pdCwgR09NUF9P RkZMT0FEX2xvYWRfaW1hZ2UsIEdPTVBfT0ZGTE9BRF9hbGxvYywKCUdPTVBf T0ZGTE9BRF9ob3N0MmRldiwgR09NUF9PRkZMT0FEX2RldjJob3N0LCBHT01Q X09GRkxPQURfbWVtY3B5MmQsCglHT01QX09GRkxPQURfbWVtY3B5M2QsIEdP TVBfT0ZGTE9BRF9vcGVuYWNjX2FzeW5jX2hvc3QyZGV2LAoJR09NUF9PRkZM T0FEX29wZW5hY2NfYXN5bmNfZGV2Mmhvc3QpOiBVcGRhdGUgY2FsbHMKClNp Z25lZC1vZmYtYnk6IFRvYmlhcyBCdXJudXMgPHRidXJudXNAYmF5bGlicmUu Y29tPgoKIGxpYmdvbXAvcGx1Z2luL3BsdWdpbi1udnB0eC5jIHwgNDYgKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogbGli Z29tcC90YXJnZXQuYyAgICAgICAgICAgICAgfCAgNyArKysrKy0tCiAyIGZp bGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpYmdvbXAvcGx1Z2luL3BsdWdpbi1udnB0eC5j IGIvbGliZ29tcC9wbHVnaW4vcGx1Z2luLW52cHR4LmMKaW5kZXggYzA0YzNh Y2Q2NzkuLjMxOGQzZDJhY2E2IDEwMDY0NAotLS0gYS9saWJnb21wL3BsdWdp bi9wbHVnaW4tbnZwdHguYworKysgYi9saWJnb21wL3BsdWdpbi9wbHVnaW4t bnZwdHguYwpAQCAtMzgyLDEwICszODIsMTMgQEAgbnZwdHhfaW5pdCAodm9p ZCkKIH0KIAogLyogU2VsZWN0IHRoZSBOJ3RoIFBUWCBkZXZpY2UgZm9yIHRo ZSBjdXJyZW50IGhvc3QgdGhyZWFkLiAgVGhlIGRldmljZSBtdXN0Ci0gICBo YXZlIGJlZW4gcHJldmlvdXNseSBvcGVuZWQgYmVmb3JlIGNhbGxpbmcgdGhp cyBmdW5jdGlvbi4gICovCisgICBoYXZlIGJlZW4gcHJldmlvdXNseSBvcGVu ZWQgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAgIFJldHVybnMg MSBpZiBzdWNjZXNzZnVsLCAwIGlmIGFuIGVycm9yIG9jY3VycmVkIGFuZCBh IG1lc3NhZ2UgaGFzIGJlZW4KKyAgIGlzc3VlZDsgaWYgZmluaV9va2F5LCAt MSBpcyByZXR1cm5lZCBmb3IgQ1VEQV9FUlJPUl9ERUlOSVRJQUxJWkVEIGFu ZAorICAgbm8gZXJyb3IgbWVzc2FnZSBpcyBwcmludGVkIGluIHRoYXQgY2Fz ZS4gICovCiAKLXN0YXRpYyBib29sCi1udnB0eF9hdHRhY2hfaG9zdF90aHJl YWRfdG9fZGV2aWNlIChpbnQgbikKK3N0YXRpYyBpbnQKK252cHR4X2F0dGFj aF9ob3N0X3RocmVhZF90b19kZXZpY2UgKGludCBuLCBib29sIGZpbmlfb2th eSkKIHsKICAgQ1VkZXZpY2UgZGV2OwogICBDVXJlc3VsdCByOwpAQCAtMzkz LDE1ICszOTYsMTcgQEAgbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2Rl dmljZSAoaW50IG4pCiAgIENVY29udGV4dCB0aGRfY3R4OwogCiAgIHIgPSBD VURBX0NBTExfTk9DSEVDSyAoY3VDdHhHZXREZXZpY2UsICZkZXYpOworICBp ZiAoZmluaV9va2F5ICYmIHIgPT0gQ1VEQV9FUlJPUl9ERUlOSVRJQUxJWkVE KQorICAgIHJldHVybiAtMTsKICAgaWYgKHIgPT0gQ1VEQV9FUlJPUl9OT1Rf UEVSTUlUVEVEKQogICAgIHsKICAgICAgIC8qIEFzc3VtZSB3ZSdyZSBpbiBh IENVREEgY2FsbGJhY2ssIGp1c3QgcmV0dXJuIHRydWUuICAqLwotICAgICAg cmV0dXJuIHRydWU7CisgICAgICByZXR1cm4gMTsKICAgICB9CiAgIGlmIChy ICE9IENVREFfU1VDQ0VTUyAmJiByICE9IENVREFfRVJST1JfSU5WQUxJRF9D T05URVhUKQogICAgIHsKICAgICAgIEdPTVBfUExVR0lOX2Vycm9yICgiY3VD dHhHZXREZXZpY2UgZXJyb3I6ICVzIiwgY3VkYV9lcnJvciAocikpOwotICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAg IGlmIChyICE9IENVREFfRVJST1JfSU5WQUxJRF9DT05URVhUICYmIGRldiA9 PSBuKQpAQCAtNDE0LDcgKzQxOSw3IEBAIG52cHR4X2F0dGFjaF9ob3N0X3Ro cmVhZF90b19kZXZpY2UgKGludCBuKQogICAgICAgaWYgKCFwdHhfZGV2KQog CXsKIAkgIEdPTVBfUExVR0lOX2Vycm9yICgiZGV2aWNlICVkIG5vdCBmb3Vu ZCIsIG4pOwotCSAgcmV0dXJuIGZhbHNlOworCSAgcmV0dXJuIDA7CiAJfQog CiAgICAgICBDVURBX0NBTEwgKGN1Q3R4R2V0Q3VycmVudCwgJnRoZF9jdHgp OwpAQCAtNDI2LDcgKzQzMSw3IEBAIG52cHR4X2F0dGFjaF9ob3N0X3RocmVh ZF90b19kZXZpY2UgKGludCBuKQogCiAgICAgICBDVURBX0NBTEwgKGN1Q3R4 UHVzaEN1cnJlbnQsIHB0eF9kZXYtPmN0eCk7CiAgICAgfQotICByZXR1cm4g dHJ1ZTsKKyAgcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcHR4X2Rl dmljZSAqCkBAIC0xMjUyLDggKzEyNTcsMTEgQEAgR09NUF9PRkZMT0FEX2Zp bmlfZGV2aWNlIChpbnQgbikKIAogICBpZiAocHR4X2RldmljZXNbbl0gIT0g TlVMTCkKICAgICB7Ci0gICAgICBpZiAoIW52cHR4X2F0dGFjaF9ob3N0X3Ro cmVhZF90b19kZXZpY2UgKG4pCi0JICB8fCAhbnZwdHhfY2xvc2VfZGV2aWNl IChwdHhfZGV2aWNlc1tuXSkpCisgICAgICAvKiBSZXR1cm5zIDEgaWYgc3Vj Y2Vzc2Z1bCwgMCBpZiBhbiBlcnJvciBvY2N1cnJlZCwgYW5kIC0xIGZvcgor CSBDVURBX0VSUk9SX0RFSU5JVElBTElaRUQuICAqLworICAgICAgaW50IHIg PSBudnB0eF9hdHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChuLCB0cnVl KTsKKyAgICAgIGlmIChyID09IDAKKwkgIHx8IChyID09IDEgJiYgIW52cHR4 X2Nsb3NlX2RldmljZSAocHR4X2RldmljZXNbbl0pKSkKIAl7CiAJICBwdGhy ZWFkX211dGV4X3VubG9jayAoJnB0eF9kZXZfbG9jayk7CiAJICByZXR1cm4g ZmFsc2U7CkBAIC0xMzI5LDcgKzEzMzcsNyBAQCBHT01QX09GRkxPQURfbG9h ZF9pbWFnZSAoaW50IG9yZCwgdW5zaWduZWQgdmVyc2lvbiwgY29uc3Qgdm9p ZCAqdGFyZ2V0X2RhdGEsCiAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0g IGlmICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAob3Jk KQorICBpZiAoIW52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2Ug KG9yZCwgZmFsc2UpCiAgICAgICB8fCAhbGlua19wdHggKCZtb2R1bGUsIGlt Z19oZWFkZXItPnB0eF9vYmpzLCBpbWdfaGVhZGVyLT5wdHhfbnVtKSkKICAg ICByZXR1cm4gLTE7CiAKQEAgLTE1NjgsNyArMTU3Niw3IEBAIEdPTVBfT0ZG TE9BRF91bmxvYWRfaW1hZ2UgKGludCBvcmQsIHVuc2lnbmVkIHZlcnNpb24s IGNvbnN0IHZvaWQgKnRhcmdldF9kYXRhKQogdm9pZCAqCiBHT01QX09GRkxP QURfYWxsb2MgKGludCBvcmQsIHNpemVfdCBzaXplKQogewotICBpZiAoIW52 cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2UgKG9yZCkpCisgIGlm ICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAob3JkLCBm YWxzZSkpCiAgICAgcmV0dXJuIE5VTEw7CiAKICAgc3RydWN0IHB0eF9kZXZp Y2UgKnB0eF9kZXYgPSBwdHhfZGV2aWNlc1tvcmRdOwpAQCAtMTYwNCw3ICsx NjEyLDcgQEAgR09NUF9PRkZMT0FEX2FsbG9jIChpbnQgb3JkLCBzaXplX3Qg c2l6ZSkKIGJvb2wKIEdPTVBfT0ZGTE9BRF9mcmVlIChpbnQgb3JkLCB2b2lk ICpwdHIpCiB7Ci0gIHJldHVybiAobnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFk X3RvX2RldmljZSAob3JkKQorICByZXR1cm4gKG52cHR4X2F0dGFjaF9ob3N0 X3RocmVhZF90b19kZXZpY2UgKG9yZCwgZmFsc2UpCiAJICAmJiBudnB0eF9m cmVlIChwdHIsIHB0eF9kZXZpY2VzW29yZF0pKTsKIH0KIApAQCAtMTgzNyw3 ICsxODQ1LDcgQEAgY3VkYV9tZW1jcHlfc2FuaXR5X2NoZWNrIChjb25zdCB2 b2lkICpoLCBjb25zdCB2b2lkICpkLCBzaXplX3QgcykKIGJvb2wKIEdPTVBf T0ZGTE9BRF9ob3N0MmRldiAoaW50IG9yZCwgdm9pZCAqZHN0LCBjb25zdCB2 b2lkICpzcmMsIHNpemVfdCBuKQogewotICBpZiAoIW52cHR4X2F0dGFjaF9o b3N0X3RocmVhZF90b19kZXZpY2UgKG9yZCkKKyAgaWYgKCFudnB0eF9hdHRh Y2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChvcmQsIGZhbHNlKQogICAgICAg fHwgIWN1ZGFfbWVtY3B5X3Nhbml0eV9jaGVjayAoc3JjLCBkc3QsIG4pKQog ICAgIHJldHVybiBmYWxzZTsKICAgQ1VEQV9DQUxMIChjdU1lbWNweUh0b0Qs IChDVWRldmljZXB0cikgZHN0LCBzcmMsIG4pOwpAQCAtMTg0Nyw3ICsxODU1 LDcgQEAgR09NUF9PRkZMT0FEX2hvc3QyZGV2IChpbnQgb3JkLCB2b2lkICpk c3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IG4pCiBib29sCiBHT01QX09G RkxPQURfZGV2Mmhvc3QgKGludCBvcmQsIHZvaWQgKmRzdCwgY29uc3Qgdm9p ZCAqc3JjLCBzaXplX3QgbikKIHsKLSAgaWYgKCFudnB0eF9hdHRhY2hfaG9z dF90aHJlYWRfdG9fZGV2aWNlIChvcmQpCisgIGlmICghbnZwdHhfYXR0YWNo X2hvc3RfdGhyZWFkX3RvX2RldmljZSAob3JkLCBmYWxzZSkKICAgICAgIHx8 ICFjdWRhX21lbWNweV9zYW5pdHlfY2hlY2sgKGRzdCwgc3JjLCBuKSkKICAg ICByZXR1cm4gZmFsc2U7CiAgIENVREFfQ0FMTCAoY3VNZW1jcHlEdG9ILCBk c3QsIChDVWRldmljZXB0cikgc3JjLCBuKTsKQEAgLTE4NjgsNyArMTg3Niw4 IEBAIEdPTVBfT0ZGTE9BRF9tZW1jcHkyZCAoaW50IGRzdF9vcmQsIGludCBz cmNfb3JkLCBzaXplX3QgZGltMV9zaXplLAogCQkgICAgICAgY29uc3Qgdm9p ZCAqc3JjLCBzaXplX3Qgc3JjX29mZnNldDFfc2l6ZSwKIAkJICAgICAgIHNp emVfdCBzcmNfb2Zmc2V0MF9sZW4sIHNpemVfdCBzcmNfZGltMV9zaXplKQog ewotICBpZiAoIW52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19kZXZpY2Ug KHNyY19vcmQgIT0gLTEgPyBzcmNfb3JkIDogZHN0X29yZCkpCisgIGlmICgh bnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAoc3JjX29yZCAh PSAtMSA/IHNyY19vcmQgOiBkc3Rfb3JkLAorCQkJCQkgICBmYWxzZSkpCiAg ICAgcmV0dXJuIGZhbHNlOwogCiAgIC8qIFRPRE86IENvbnNpZGVyIHVzaW5n IENVX01FTU9SWVRZUEVfVU5JRklFRCBpZiBzdXBwb3J0ZWQuICAqLwpAQCAt MTk2MCw3ICsxOTY5LDggQEAgR09NUF9PRkZMT0FEX21lbWNweTNkIChpbnQg ZHN0X29yZCwgaW50IHNyY19vcmQsIHNpemVfdCBkaW0yX3NpemUsCiAJCSAg ICAgICBzaXplX3Qgc3JjX29mZnNldDBfbGVuLCBzaXplX3Qgc3JjX2RpbTJf c2l6ZSwKIAkJICAgICAgIHNpemVfdCBzcmNfZGltMV9sZW4pCiB7Ci0gIGlm ICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3RvX2RldmljZSAoc3JjX29y ZCAhPSAtMSA/IHNyY19vcmQgOiBkc3Rfb3JkKSkKKyAgaWYgKCFudnB0eF9h dHRhY2hfaG9zdF90aHJlYWRfdG9fZGV2aWNlIChzcmNfb3JkICE9IC0xID8g c3JjX29yZCA6IGRzdF9vcmQsCisJCQkJCSAgIGZhbHNlKSkKICAgICByZXR1 cm4gZmFsc2U7CiAKICAgLyogVE9ETzogQ29uc2lkZXIgdXNpbmcgQ1VfTUVN T1JZVFlQRV9VTklGSUVEIGlmIHN1cHBvcnRlZC4gICovCkBAIC0yMDUwLDcg KzIwNjAsNyBAQCBib29sCiBHT01QX09GRkxPQURfb3BlbmFjY19hc3luY19o b3N0MmRldiAoaW50IG9yZCwgdm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMs CiAJCQkJICAgICBzaXplX3Qgbiwgc3RydWN0IGdvYWNjX2FzeW5jcXVldWUg KmFxKQogewotICBpZiAoIW52cHR4X2F0dGFjaF9ob3N0X3RocmVhZF90b19k ZXZpY2UgKG9yZCkKKyAgaWYgKCFudnB0eF9hdHRhY2hfaG9zdF90aHJlYWRf dG9fZGV2aWNlIChvcmQsIGZhbHNlKQogICAgICAgfHwgIWN1ZGFfbWVtY3B5 X3Nhbml0eV9jaGVjayAoc3JjLCBkc3QsIG4pKQogICAgIHJldHVybiBmYWxz ZTsKICAgQ1VEQV9DQUxMIChjdU1lbWNweUh0b0RBc3luYywgKENVZGV2aWNl cHRyKSBkc3QsIHNyYywgbiwgYXEtPmN1ZGFfc3RyZWFtKTsKQEAgLTIwNjEs NyArMjA3MSw3IEBAIGJvb2wKIEdPTVBfT0ZGTE9BRF9vcGVuYWNjX2FzeW5j X2RldjJob3N0IChpbnQgb3JkLCB2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNy YywKIAkJCQkgICAgIHNpemVfdCBuLCBzdHJ1Y3QgZ29hY2NfYXN5bmNxdWV1 ZSAqYXEpCiB7Ci0gIGlmICghbnZwdHhfYXR0YWNoX2hvc3RfdGhyZWFkX3Rv X2RldmljZSAob3JkKQorICBpZiAoIW52cHR4X2F0dGFjaF9ob3N0X3RocmVh ZF90b19kZXZpY2UgKG9yZCwgZmFsc2UpCiAgICAgICB8fCAhY3VkYV9tZW1j cHlfc2FuaXR5X2NoZWNrIChkc3QsIHNyYywgbikpCiAgICAgcmV0dXJuIGZh bHNlOwogICBDVURBX0NBTEwgKGN1TWVtY3B5RHRvSEFzeW5jLCBkc3QsIChD VWRldmljZXB0cikgc3JjLCBuLCBhcS0+Y3VkYV9zdHJlYW0pOwpkaWZmIC0t Z2l0IGEvbGliZ29tcC90YXJnZXQuYyBiL2xpYmdvbXAvdGFyZ2V0LmMKaW5k ZXggMTM2N2U5Y2NlNmMuLjhkMDU4NzdkZWI3IDEwMDY0NAotLS0gYS9saWJn b21wL3RhcmdldC5jCisrKyBiL2xpYmdvbXAvdGFyZ2V0LmMKQEAgLTI3MDYs OCArMjcwNiwxMSBAQCBHT01QX29mZmxvYWRfdW5yZWdpc3Rlcl92ZXIgKHVu c2lnbmVkIHZlcnNpb24sIGNvbnN0IHZvaWQgKmhvc3RfdGFibGUsCiAgICAg ICBnb21wX211dGV4X2xvY2sgKCZkZXZpY2VwLT5sb2NrKTsKICAgICAgIGlm IChkZXZpY2VwLT50eXBlID09IHRhcmdldF90eXBlCiAJICAmJiBkZXZpY2Vw LT5zdGF0ZSA9PSBHT01QX0RFVklDRV9JTklUSUFMSVpFRCkKLQlnb21wX3Vu bG9hZF9pbWFnZV9mcm9tX2RldmljZSAoZGV2aWNlcCwgdmVyc2lvbiwKLQkJ CQkgICAgICAgaG9zdF90YWJsZSwgdGFyZ2V0X2RhdGEpOworCXsKKwkgIGdv YWNjX2ZpbmlfYXN5bmNxdWV1ZXMgKGRldmljZXApOworCSAgZ29tcF91bmxv YWRfaW1hZ2VfZnJvbV9kZXZpY2UgKGRldmljZXAsIHZlcnNpb24sCisJCQkJ CSBob3N0X3RhYmxlLCB0YXJnZXRfZGF0YSk7CisJfQogICAgICAgZ29tcF9t dXRleF91bmxvY2sgKCZkZXZpY2VwLT5sb2NrKTsKICAgICB9CiAK --------------nOEdLm2f0GJFhdXyn5CUZkK6--