From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from azure-sdnproxy.icoremail.net (azure-sdnproxy.icoremail.net [52.187.6.220]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C7E8B5695; Sat, 22 Aug 2026 03:42:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=52.187.6.220 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787370164; cv=none; b=RFiUAK4fXjjRKLG9v0RMmv/dyFaArT2XidN7/BKRfopPvCbPifNqKdmh3f79mK4D3vP70LpbZcKiEk13MvpOwIFAIrUAkE2iuhT5z4BJf8JBqpUYVnPQElAetj1+emBOyBeL9DnkEHAOeinmtLbYLVpYGqrMZ3JTw0uWSGy7aK8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787370164; c=relaxed/simple; bh=yNWUvRhVM74P/BBYCEInGvKw0BQ9u85O7uSPlxg6Xhg=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=lOAf88diDBBtsbEmEEnVo6zwsOVI1LIqCrhMDF5SPQrimVaw+NOJbcXuLpj+QAqracbuUDGu1Ev7sFQCrgPjiEVuwN9Y8AExPphXNCZEe+OLm89ZbD6RZrXV/85VYoOTKcd2xJn6D+BDLB8uJOHfRC2556RkCfpIZgKMjuiKWE0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zju.edu.cn; spf=pass smtp.mailfrom=zju.edu.cn; arc=none smtp.client-ip=52.187.6.220 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zju.edu.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zju.edu.cn Received: from zju.edu.cn (unknown [10.190.161.59]) by mtasvr (Coremail) with SMTP id _____wBHAzatGolqTke0AA--.18298S3; Sat, 22 Aug 2026 11:42:37 +0800 (CST) Received: from stitch$zju.edu.cn ( [10.190.161.59] ) by ajax-webmail-mail-app3 (Coremail) ; Sat, 22 Aug 2026 11:42:37 +0800 (GMT+08:00) Date: Sat, 22 Aug 2026 11:42:37 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: "Jiacheng Xu" To: wqu@suse.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] btrfs: sysfs: factor out mounted fsid attribute X-Priority: 3 X-Mailer: Coremail Webmail Server Version 2025.3-cmXT6 build 20260617(6f868824) Copyright (c) 2002-2026 www.mailtech.cn zju.edu.cn In-Reply-To: <698e5039.16b92.1a0278ef67b.Coremail.stitch@zju.edu.cn> References: <20b09e24.16b27.1a01f23ee08.Coremail.stitch@zju.edu.cn> <698e5039.16b92.1a0278ef67b.Coremail.stitch@zju.edu.cn> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 Precedence: bulk X-Mailing-List: linux-btrfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <2f9846bb.16b97.1a027903498.Coremail.stitch@zju.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID:zS_KCgBngHKtGolqHpaUBA--.20553W X-CM-SenderInfo: qtrxiiaqttimo62m3hxhgxhubq/1tbiAwULC2qJAhcBLQACse X-CM-DELIVERINFO: =?B?6IJg7gXKKxbFmtjJiESix3B1w3tMoM3snk/k5SVzZVydjEqe1eefKHnLf95EnB4iem egW1kKDTffj9RZcKrT0I+755sYiG5vbrfqfRE8il7acou5fqUuWUK9C2iaWOoJ8C0g3YNR +LQK/ezviA7VgEN1gl4ahRlqZpdBHnO8CIQaoSFlf2n5ZXGwAZH77hngzzpiIg== X-Coremail-Antispam: 1Uk129KBj9fXoW3KFWrCry5CFW3XF1kuFyfAFc_yoW8Jw1UAo W0gr17X3yrtr10yr4kCFs7Gw4Du348Ka1ktr4F93s3u3Wkt3Z8Zry5KFsrGF1UX3WrKF4x Ga4UGr1qqr4IyFWxl-sFpf9Il3svdjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8wcxFpf 9Il3svdxBIdaVrn0xqx4xG64xvF2IEw4CE5I8CrVC2j2Jv73VFW2AGmfu7bjvjm3AaLaJ3 UjIYCTnIWjp_UUUOO7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI 8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xG Y2AK021l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14 v26rxl6s0DM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v2 6rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx1l5I 8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r106r15McIj6I8E87Iv67AK xVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lF7xvr2IYc2Ij64 vIr40E4x8a64kEw24lFcxC0VAYjxAxZF0Ew4CEw7xC0wACY4xI67k04243AVC20s07MxAI w28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr 4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUXVWUAwCIc40Y0x0EwIxG rwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8Jw CI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2 z280aVCY1x0267AKxVWUJVW8JwCE64xvF2IEb7IF0Fy7YxBIdaVFxhVjvjDU0xZFpf9x07 jbMa5UUUUU= VGhlIGF0dHJpYnV0ZXMgYXR0YWNoZWQgZGlyZWN0bHkgdG8gdGhlIG1vdW50ZWQgZmlsZXN5c3Rl bSBmc2lkIGtvYmplY3QKYXJlIGN1cnJlbnRseSBjcmVhdGVkIGFuZCByZW1vdmVkIGFzIHBhcnQg b2YgdGhlIGJyb2FkZXIgbW91bnRlZCBzeXNmcwpzZXR1cC4KCkZhY3RvciB0aGUgbWFpbiBmaWxl c3lzdGVtIGF0dHJpYnV0ZXMsIHRoZSBmZWF0dXJlIGdyb3VwIGFuZCBkeW5hbWljYWxseQpnZW5l cmF0ZWQgdW5rbm93biBmZWF0dXJlIGF0dHJpYnV0ZXMgaW50byBkZWRpY2F0ZWQgaGVscGVycy4g S2VlcCB0aGUKaGVscGVycyBjYWxsZWQgZnJvbSB0aGUgZXhpc3RpbmcgbW91bnRlZCBzeXNmcyBz ZXR1cCBhbmQgdGVhcmRvd24gcGF0aHMgZm9yCm5vdy4gVGhpcyBwcmVwYXJlcyBmb3IgYWRqdXN0 aW5nIHRoZWlyIGxpZmV0aW1lIHNlcGFyYXRlbHkgZnJvbSB0aGUKcmVxdWlyZWQgc3ViZGlyZWN0 b3JpZXMuCgpTaWduZWQtb2ZmLWJ5OiBKaWFjaGVuZyBYdSA8c3RpdGNoQHpqdS5lZHUuY24+Ci0t LQogZnMvYnRyZnMvc3lzZnMuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tCiBmcy9idHJmcy9zeXNmcy5oIHwgIDIgKysKIDIgZmlsZXMgY2hhbmdl ZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvYnRy ZnMvc3lzZnMuYyBiL2ZzL2J0cmZzL3N5c2ZzLmMKaW5kZXggMGQxNDU3MC4uYTg5ZTVhZSAxMDA2 NDQKLS0tIGEvZnMvYnRyZnMvc3lzZnMuYworKysgYi9mcy9idHJmcy9zeXNmcy5jCkBAIC0xNzA3 LDYgKzE3MDcsMTUgQEAgc3RhdGljIHZvaWQgYnRyZnNfc3lzZnNfcmVtb3ZlX2ZzX2RldmljZXMo c3RydWN0IGJ0cmZzX2ZzX2RldmljZXMgKmZzX2RldmljZXMpCiAgICAgICAgfQogfQogCit2b2lk IGJ0cmZzX3N5c2ZzX3JlbW92ZV9tb3VudGVkX2F0dHJzKHN0cnVjdCBidHJmc19mc19pbmZvICpm c19pbmZvKQoreworICAgICAgIHN0cnVjdCBrb2JqZWN0ICpmc2lkX2tvYmogPSAmZnNfaW5mby0+ ZnNfZGV2aWNlcy0+ZnNpZF9rb2JqOworCisgICAgICAgYWRkcm1fdW5rbm93bl9mZWF0dXJlX2F0 dHJzKGZzX2luZm8sIGZhbHNlKTsKKyAgICAgICBzeXNmc19yZW1vdmVfZ3JvdXAoZnNpZF9rb2Jq LCAmYnRyZnNfZmVhdHVyZV9hdHRyX2dyb3VwKTsKKyAgICAgICBzeXNmc19yZW1vdmVfZmlsZXMo ZnNpZF9rb2JqLCBidHJmc19hdHRycyk7Cit9CisKIHZvaWQgYnRyZnNfc3lzZnNfcmVtb3ZlX21v dW50ZWQoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8pCiB7CiAgICAgICAgc3RydWN0IGtv YmplY3QgKmZzaWRfa29iaiA9ICZmc19pbmZvLT5mc19kZXZpY2VzLT5mc2lkX2tvYmo7CkBAIC0x NzMwLDkgKzE3MzksNyBAQCB2b2lkIGJ0cmZzX3N5c2ZzX3JlbW92ZV9tb3VudGVkKHN0cnVjdCBi dHJmc19mc19pbmZvICpmc19pbmZvKQogICAgICAgICAgICAgICAga29iamVjdF9wdXQoZnNfaW5m by0+ZGVidWdfa29iaik7CiAgICAgICAgfQogI2VuZGlmCi0gICAgICAgYWRkcm1fdW5rbm93bl9m ZWF0dXJlX2F0dHJzKGZzX2luZm8sIGZhbHNlKTsKLSAgICAgICBzeXNmc19yZW1vdmVfZ3JvdXAo ZnNpZF9rb2JqLCAmYnRyZnNfZmVhdHVyZV9hdHRyX2dyb3VwKTsKLSAgICAgICBzeXNmc19yZW1v dmVfZmlsZXMoZnNpZF9rb2JqLCBidHJmc19hdHRycyk7CisgICAgICAgYnRyZnNfc3lzZnNfcmVt b3ZlX21vdW50ZWRfYXR0cnMoZnNfaW5mbyk7CiAgICAgICAgYnRyZnNfc3lzZnNfcmVtb3ZlX2Zz X2RldmljZXMoZnNfaW5mby0+ZnNfZGV2aWNlcyk7CiB9CiAKQEAgLTIyODQsNiArMjI5MSwzMCBA QCBpbnQgYnRyZnNfc3lzZnNfYWRkX2ZzaWQoc3RydWN0IGJ0cmZzX2ZzX2RldmljZXMgKmZzX2Rl dnMpCiAgICAgICAgcmV0dXJuIDA7CiB9CiAKK2ludCBidHJmc19zeXNmc19hZGRfbW91bnRlZF9h dHRycyhzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbykKK3sKKyAgICAgICBzdHJ1Y3Qga29i amVjdCAqZnNpZF9rb2JqID0gJmZzX2luZm8tPmZzX2RldmljZXMtPmZzaWRfa29iajsKKyAgICAg ICBpbnQgcmV0OworCisgICAgICAgcmV0ID0gc3lzZnNfY3JlYXRlX2ZpbGVzKGZzaWRfa29iaiwg YnRyZnNfYXR0cnMpOworICAgICAgIGlmIChyZXQpCisgICAgICAgICAgICAgICByZXR1cm4gcmV0 OworCisgICAgICAgcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGZzaWRfa29iaiwgJmJ0cmZzX2Zl YXR1cmVfYXR0cl9ncm91cCk7CisgICAgICAgaWYgKHJldCkKKyAgICAgICAgICAgICAgIGdvdG8g ZmFpbHVyZTsKKworICAgICAgIHJldCA9IGFkZHJtX3Vua25vd25fZmVhdHVyZV9hdHRycyhmc19p bmZvLCB0cnVlKTsKKyAgICAgICBpZiAocmV0KQorICAgICAgICAgICAgICAgZ290byBmYWlsdXJl OworCisgICAgICAgcmV0dXJuIDA7CisKK2ZhaWx1cmU6CisgICAgICAgYnRyZnNfc3lzZnNfcmVt b3ZlX21vdW50ZWRfYXR0cnMoZnNfaW5mbyk7CisgICAgICAgcmV0dXJuIHJldDsKK30KKwogaW50 IGJ0cmZzX3N5c2ZzX2FkZF9tb3VudGVkKHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvKQog ewogICAgICAgIGludCByZXQ7CkBAIC0yMjk0LDE2ICsyMzI1LDEyIEBAIGludCBidHJmc19zeXNm c19hZGRfbW91bnRlZChzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbykKICAgICAgICBpZiAo cmV0KQogICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKIAotICAgICAgIHJldCA9IHN5c2ZzX2Ny ZWF0ZV9maWxlcyhmc2lkX2tvYmosIGJ0cmZzX2F0dHJzKTsKKyAgICAgICByZXQgPSBidHJmc19z eXNmc19hZGRfbW91bnRlZF9hdHRycyhmc19pbmZvKTsKICAgICAgICBpZiAocmV0KSB7CiAgICAg ICAgICAgICAgICBidHJmc19zeXNmc19yZW1vdmVfZnNfZGV2aWNlcyhmc19kZXZzKTsKICAgICAg ICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQogCi0gICAgICAgcmV0ID0gc3lzZnNfY3Jl YXRlX2dyb3VwKGZzaWRfa29iaiwgJmJ0cmZzX2ZlYXR1cmVfYXR0cl9ncm91cCk7Ci0gICAgICAg aWYgKHJldCkKLSAgICAgICAgICAgICAgIGdvdG8gZmFpbHVyZTsKLQogI2lmZGVmIENPTkZJR19C VFJGU19ERUJVRwogICAgICAgIGZzX2luZm8tPmRlYnVnX2tvYmogPSBrb2JqZWN0X2NyZWF0ZV9h bmRfYWRkKCJkZWJ1ZyIsIGZzaWRfa29iaik7CiAgICAgICAgaWYgKCFmc19pbmZvLT5kZWJ1Z19r b2JqKSB7CkBAIC0yMzI3LDEwICsyMzU0LDYgQEAgaW50IGJ0cmZzX3N5c2ZzX2FkZF9tb3VudGVk KHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvKQogICAgICAgIGlmIChyZXQpCiAgICAgICAg ICAgICAgICBnb3RvIGZhaWx1cmU7CiAKLSAgICAgICByZXQgPSBhZGRybV91bmtub3duX2ZlYXR1 cmVfYXR0cnMoZnNfaW5mbywgdHJ1ZSk7Ci0gICAgICAgaWYgKHJldCkKLSAgICAgICAgICAgICAg IGdvdG8gZmFpbHVyZTsKLQogICAgICAgIHJldCA9IHN5c2ZzX2NyZWF0ZV9saW5rKGZzaWRfa29i aiwgJmZzX2luZm8tPnNiLT5zX2JkaS0+ZGV2LT5rb2JqLCAiYmRpIik7CiAgICAgICAgaWYgKHJl dCkKICAgICAgICAgICAgICAgIGdvdG8gZmFpbHVyZTsKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL3N5 c2ZzLmggYi9mcy9idHJmcy9zeXNmcy5oCmluZGV4IDA1NDk4ZTUuLmQ3MTQzOGYgMTAwNjQ0Ci0t LSBhL2ZzL2J0cmZzL3N5c2ZzLmgKKysrIGIvZnMvYnRyZnMvc3lzZnMuaApAQCAtMzUsNiArMzUs OCBAQCB2b2lkIGJ0cmZzX2tvYmplY3RfdWV2ZW50KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYs IGVudW0ga29iamVjdF9hY3Rpb24gYWN0aW9uKQogaW50IF9faW5pdCBidHJmc19pbml0X3N5c2Zz KHZvaWQpOwogdm9pZCBfX2NvbGQgYnRyZnNfZXhpdF9zeXNmcyh2b2lkKTsKIGludCBidHJmc19z eXNmc19hZGRfbW91bnRlZChzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbyk7CitpbnQgYnRy ZnNfc3lzZnNfYWRkX21vdW50ZWRfYXR0cnMoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8p Owordm9pZCBidHJmc19zeXNmc19yZW1vdmVfbW91bnRlZF9hdHRycyhzdHJ1Y3QgYnRyZnNfZnNf aW5mbyAqZnNfaW5mbyk7CiB2b2lkIGJ0cmZzX3N5c2ZzX3JlbW92ZV9tb3VudGVkKHN0cnVjdCBi dHJmc19mc19pbmZvICpmc19pbmZvKTsKIHZvaWQgYnRyZnNfc3lzZnNfYWRkX2Jsb2NrX2dyb3Vw X3R5cGUoc3RydWN0IGJ0cmZzX2Jsb2NrX2dyb3VwICpjYWNoZSk7CiBpbnQgYnRyZnNfc3lzZnNf YWRkX3NwYWNlX2luZm9fdHlwZShzdHJ1Y3QgYnRyZnNfc3BhY2VfaW5mbyAqc3BhY2VfaW5mbyk7 Ci0tIAoyLjI1LjEKCgo+IC0tLS0t5Y6f5aeL6YKu5Lu2LS0tLS0KPiDlj5Hku7bkuro6ICJKaWFj aGVuZyBYdSIgPHN0aXRjaEB6anUuZWR1LmNuPgo+IOWPkemAgeaXtumXtDoyMDI2LTA4LTIyIDEx OjQxOjE1ICjmmJ/mnJ/lha0pCj4g5pS25Lu25Lq6OiB3cXVAc3VzZS5jb20KPiDmioTpgIE6IGxp bnV4LWJ0cmZzQHZnZXIua2VybmVsLm9yZywgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+ IOS4u+mimDogW1BBVENIIHYyIDAvMl0gYnRyZnM6IGRlbGF5IG1vdW50ZWQgc3lzZnMgYXR0cmli dXRlcyB1bnRpbCBtb3VudCBpcyByZWFkeQo+IAo+IEhlcmUgaXMgYSBwb3RlbnRpYWwgZml4IGZv bGxvd2luZyBXZW5ydW8ncyBpZGVhLgo+IAo+IGJ0cmZzX3N5c2ZzX2FkZF9tb3VudGVkKCkgY3Vy cmVudGx5IHB1Ymxpc2hlcyB0aGUgd3JpdGFibGUgbGFiZWwgYW5kCj4gZmVhdHVyZSBhdHRyaWJ1 dGVzIGJlZm9yZSB0aGUgdHJhbnNhY3Rpb24ga3RocmVhZCBpcyBjcmVhdGVkLiBBIGNvbmN1cnJl bnQKPiBzeXNmcyB3cml0ZSBjYW4gdGhlcmVmb3JlIGRlcmVmZXJlbmNlIGEgTlVMTCB0cmFuc2Fj dGlvbl9rdGhyZWFkIGluCj4gd2FrZV91cF9wcm9jZXNzKCkuCj4gCj4gVGhpcyBzZXJpZXMgZm9s bG93cyB0aGUgc3VnZ2VzdGVkIGxpZmVjeWNsZTogY3JlYXRlIG9ubHkgdGhlIHJlcXVpcmVkCj4g c3ViZGlyZWN0b3JpZXMgZHVyaW5nIGVhcmx5IG1vdW50LCBwdWJsaXNoIHRoZSBmc2lkIGF0dHJp YnV0ZXMgYWZ0ZXIgbW91bnQKPiBpbml0aWFsaXphdGlvbiwgYW5kIHJlbW92ZSB0aGVtIGJlZm9y ZSB0aGUga3RocmVhZHMgYXJlIHN0b3BwZWQuIFRoZQo+IGZlYXR1cmUgYXR0cmlidXRlcyBhcmUg aW5jbHVkZWQgYmVjYXVzZSB0aGVpciBzdG9yZSBjYWxsYmFjayBoYXMgdGhlIHNhbWUKPiB0cmFu c2FjdGlvbl9rdGhyZWFkIGRlcGVuZGVuY3kgYXMgdGhlIGxhYmVsIGNhbGxiYWNrLgo+IAo+IFBh dGNoIDEgZmFjdG9ycyB0aGUgZnNpZCBhdHRyaWJ1dGUgaGFuZGxpbmcgaW50byBkZWRpY2F0ZWQg aGVscGVycy4gUGF0Y2ggMgo+IG1vdmVzIHRoZWlyIHB1YmxpY2F0aW9uIGFuZCByZW1vdmFsIHRv IHRoZSBzYWZlIG1vdW50IGFuZCB1bm1vdW50IHN0YWdlcy4KPiBPbiB1bm1vdW50IHRoZSBjbGVh bmVyIGlzIHBhcmtlZCBiZWZvcmUgYXR0cmlidXRlIHJlbW92YWwgc28gaXQgY2Fubm90Cj4gcmVj cmVhdGUgdGhlIGZlYXR1cmUgZ3JvdXAgdGhyb3VnaCBzeXNmc191cGRhdGVfZ3JvdXAoKS4gQm90 aCBwYXRjaGVzIGFyZQo+IHJlcXVpcmVkIGZvciBzdGFibGUgYmFja3BvcnRzLgo+IAo+IFRoZSBy ZXN1bHRpbmcgZnMvYnRyZnMvc3lzZnMubyBhbmQgZnMvYnRyZnMvZGlzay1pby5vIHdlcmUgYnVp bGQtdGVzdGVkLgo+IAo+IENoYW5nZXMgaW4gdjI6Cj4gLSBEZWxheSBjcmVhdGlvbiBvZiBib3Ro IHRoZSByb290IGFuZCBmZWF0dXJlIGF0dHJpYnV0ZXMgdW50aWwgbW91bnQgc2V0dXAKPiAgIGlz IGNvbXBsZXRlLgo+IC0gUmVtb3ZlIHRob3NlIGF0dHJpYnV0ZXMgd2hpbGUgdGhlaXIga3RocmVh ZCBkZXBlbmRlbmNpZXMgYXJlIHN0aWxsCj4gICB2YWxpZC4KPiAtIFNwbGl0IGhlbHBlciBleHRy YWN0aW9uIGZyb20gdGhlIGxpZmVjeWNsZSBmaXggZm9yIHN0YWJsZSBiYWNrcG9ydHMuCj4gCj4g SmlhY2hlbmcgWHUgKDIpOgo+ICAgYnRyZnM6IHN5c2ZzOiBmYWN0b3Igb3V0IG1vdW50ZWQgZnNp ZCBhdHRyaWJ1dGUgaGVscGVycwo+ICAgYnRyZnM6IGRlbGF5IG1vdW50ZWQgZnNpZCBhdHRyaWJ1 dGVzIHVudGlsIHRoZSBmcyBpcyByZWFkeQo+IAo+ICBmcy9idHJmcy9kaXNrLWlvLmMgfCAxOCAr KysrKysrKysrKysrKysrLQo+ICBmcy9idHJmcy9zeXNmcy5jICAgfCA1MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIGZzL2J0cmZzL3N5c2ZzLmggICB8 ICAyICsrCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25z KC0pCj4gCj4gYmFzZS1jb21taXQ6IDBmMjNkNTZmMTdmZGZjN2RiNjlkNTFmNjRjOGI5MWJiYWI5 NDdhYTkKPiAtLSAKPiAyLjI1LjEKPiAKPiAKPiA+IC0tLS0t5Y6f5aeL6YKu5Lu2LS0tLS0KPiA+ IOWPkeS7tuS6ujogIkppYWNoZW5nIFh1IiA8c3RpdGNoQHpqdS5lZHUuY24+Cj4gPiDlj5HpgIHm l7bpl7Q6MjAyNi0wOC0yMCAyMDoyNzoyMyAo5pif5pyf5ZubKQo+ID4g5pS25Lu25Lq6OiAiQ2hy aXMgTWFzb24iIDxjbG1AZmIuY29tPgo+ID4g5oqE6YCBOiAiRGF2aWQgU3RlcmJhIiA8ZHN0ZXJi YUBzdXNlLmNvbT4sIGxpbnV4LWJ0cmZzQHZnZXIua2VybmVsLm9yZywgbGludXgta2VybmVsQHZn ZXIua2VybmVsLm9yZwo+ID4g5Li76aKYOiBbUEFUQ0hdIGJ0cmZzOiBkcmFpbiBzeXNmcyBjYWxs YmFja3MgYmVmb3JlIHN0b3BwaW5nIHRyYW5zYWN0aW9uIGt0aHJlYWQKPiA+IAo+ID4gYnRyZnNf bGFiZWxfc3RvcmUoKSBhbmQgYnRyZnNfZmVhdHVyZV9hdHRyX3N0b3JlKCkgd2FrZSB1cCB0aGUK PiA+IHRyYW5zYWN0aW9uIGt0aHJlYWQgdGhyb3VnaCBmc19pbmZvLT50cmFuc2FjdGlvbl9rdGhy ZWFkLgo+ID4gCj4gPiBEdXJpbmcgZmlsZXN5c3RlbSB0ZWFyZG93biwgY2xvc2VfY3RyZWUoKSBz dG9wcyB0aGUgdHJhbnNhY3Rpb24ga3RocmVhZAo+ID4gYmVmb3JlIHJlbW92aW5nIHRoZSBtb3Vu dGVkIGZpbGVzeXN0ZW0ncyBzeXNmcyBhdHRyaWJ1dGVzLiBBIGNvbmN1cnJlbnQKPiA+IHN5c2Zz IHdyaXRlIGNhbiB0aGVyZWZvcmUgZW50ZXIgb25lIG9mIHRoZXNlIGNhbGxiYWNrcyBhZnRlciB0 aGUga3RocmVhZAo+ID4gaGFzIGJlZW4gc3RvcHBlZCBhbmQgcGFzcyBhbiBpbnZhbGlkIHRhc2sg cG9pbnRlciB0byB3YWtlX3VwX3Byb2Nlc3MoKS4KPiA+IAo+ID4gVGhpcyByZXN1bHRzIGluIGEg Y29uY3VycmVudCBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4KPiA+IHRyeV90b193YWtlX3Vw KCkuIFRoZSBzY2hlZHVsZXIgaXMgbm90IHRoZSByb290IGNhdXNlOyB0aGUgaW52YWxpZAo+ID4g dHJhbnNhY3Rpb24ga3RocmVhZCBwb2ludGVyIGlzIHVzZWQgYnkgYSBCdHJmcyBzeXNmcyBjYWxs YmFjayBkdXJpbmcKPiA+IHRlYXJkb3duLgo+ID4gCj4gPiBTcGxpdCBtb3VudGVkIHN5c2ZzIGNs ZWFudXAgaW50byB0d28gc3RhZ2VzLiBSZW1vdmUgYXR0cmlidXRlcyB3aGljaCBtYXkKPiA+IGhh dmUgc3RvcmUgY2FsbGJhY2tzIGJlZm9yZSBzdG9wcGluZyB0aGUgdHJhbnNhY3Rpb24ga3RocmVh ZC4gVGhlCj4gPiByZW1haW5pbmcgc3lzZnMga29iamVjdHMgYXJlIHJlbW92ZWQgYXQgdGhlIG9y aWdpbmFsIHRlYXJkb3duIHBvaW50LAo+ID4gYWZ0ZXIgdGhlIGt0aHJlYWQgaGFzIGJlZW4gc3Rv cHBlZC4KPiA+IAo+ID4gQXBwbHkgdGhlIHNhbWUgb3JkZXJpbmcgdG8gdGhlIG9wZW5fY3RyZWUo KSBmYWlsdXJlIHBhdGggd2hlbiB0aGUKPiA+IHRyYW5zYWN0aW9uIGt0aHJlYWQgaGFzIGFscmVh ZHkgYmVlbiBjcmVhdGVkLgo+ID4gCj4gPiBUZXN0ZWQtYnk6IEppYWNoZW5nIFh1IDxzdGl0Y2hA emp1LmVkdS5jbj4KPiA+IFNpZ25lZC1vZmYtYnk6IEppYWNoZW5nIFh1IDxzdGl0Y2hAemp1LmVk dS5jbj4KPiA+IC0tLQo+ID4gZnMvYnRyZnMvZGlzay1pby5jIHwgMTYgKysrKysrKysrKysrKyst LQo+ID4gZnMvYnRyZnMvc3lzZnMuYyAgIHwgMjYgKysrKysrKysrKysrKysrKysrKysrLS0tLS0K PiA+IGZzL2J0cmZzL3N5c2ZzLmggICB8ICAzICsrKwo+ID4gMyBmaWxlcyBjaGFuZ2VkLCAzOCBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZnMvYnRy ZnMvZGlzay1pby5jIGIvZnMvYnRyZnMvZGlzay1pby5jCj4gPiBpbmRleCAyZjE2NjZkOTU0NGUu LjRmNWJjYzU3NmRjNiAxMDA2NDQKPiA+IC0tLSBhL2ZzL2J0cmZzL2Rpc2staW8uYwo+ID4gKysr IGIvZnMvYnRyZnMvZGlzay1pby5jCj4gPiBAQCAtMzM2Myw2ICszMzYzLDcgQEAgaW50IF9fY29s ZCBvcGVuX2N0cmVlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBidHJmc19mc19kZXZp Y2VzICpmc19kZXZpY2UKPiA+ICAgICAgIHN0cnVjdCBidHJmc19yb290ICp0cmVlX3Jvb3Q7Cj4g PiAgICAgICBzdHJ1Y3QgYnRyZnNfcm9vdCAqY2h1bmtfcm9vdDsKPiA+ICAgICAgIHN0cnVjdCBi dHJmc19yb290ICpyZW1hcF9yb290Owo+ID4gKyAgICAgYm9vbCBzeXNmc19hdHRyc19yZW1vdmVk ID0gZmFsc2U7Cj4gPiAgICAgICBpbnQgcmV0Owo+ID4gICAgICAgaW50IGxldmVsOwo+ID4gCj4g PiBAQCAtMzc4MCw2ICszNzgxLDkgQEAgaW50IF9fY29sZCBvcGVuX2N0cmVlKHN0cnVjdCBzdXBl cl9ibG9jayAqc2IsIHN0cnVjdCBidHJmc19mc19kZXZpY2VzICpmc19kZXZpY2UKPiA+IGZhaWxf cWdyb3VwOgo+ID4gICAgICAgYnRyZnNfZnJlZV9xZ3JvdXBfY29uZmlnKGZzX2luZm8pOwo+ID4g ZmFpbF90cmFuc19rdGhyZWFkOgo+ID4gKyAgICAgYnRyZnNfc3lzZnNfcmVtb3ZlX21vdW50ZWRf YXR0cnMoZnNfaW5mbyk7Cj4gPiArICAgICBzeXNmc19hdHRyc19yZW1vdmVkID0gdHJ1ZTsKPiA+ ICsKPiA+ICAgICAgIGt0aHJlYWRfc3RvcChmc19pbmZvLT50cmFuc2FjdGlvbl9rdGhyZWFkKTsK PiA+ICAgICAgIGJ0cmZzX2NsZWFudXBfdHJhbnNhY3Rpb24oZnNfaW5mbyk7Cj4gPiAgICAgICBi dHJmc19mcmVlX2ZzX3Jvb3RzKGZzX2luZm8pOwo+ID4gQEAgLTM3OTMsNyArMzc5Nyw5IEBAIGlu dCBfX2NvbGQgb3Blbl9jdHJlZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgYnRyZnNf ZnNfZGV2aWNlcyAqZnNfZGV2aWNlCj4gPiAgICAgICBmaWxlbWFwX3dyaXRlX2FuZF93YWl0KGZz X2luZm8tPmJ0cmVlX2lub2RlLT5pX21hcHBpbmcpOwo+ID4gCj4gPiBmYWlsX3N5c2ZzOgo+ID4g LSAgICAgYnRyZnNfc3lzZnNfcmVtb3ZlX21vdW50ZWQoZnNfaW5mbyk7Cj4gPiArICAgICBpZiAo IXN5c2ZzX2F0dHJzX3JlbW92ZWQpCj4gPiArICAgICAgICAgICAgIGJ0cmZzX3N5c2ZzX3JlbW92 ZV9tb3VudGVkX2F0dHJzKGZzX2luZm8pOwo+ID4gKyAgICAgYnRyZnNfc3lzZnNfcmVtb3ZlX21v dW50ZWRfa29iamVjdHMoZnNfaW5mbyk7Cj4gPiAKPiA+IGZhaWxfZnNkZXZfc3lzZnM6Cj4gPiAg ICAgICBidHJmc19zeXNmc19yZW1vdmVfZnNpZChmc19pbmZvLT5mc19kZXZpY2VzKTsKPiA+IEBA IC00MzE4LDYgKzQzMjQsOSBAQCB2b2lkIF9fY29sZCBjbG9zZV9jdHJlZShzdHJ1Y3QgYnRyZnNf ZnNfaW5mbyAqZnNfaW5mbykKPiA+IAo+ID4gICAgICAgc2V0X2JpdChCVFJGU19GU19DTE9TSU5H X1NUQVJULCAmZnNfaW5mby0+ZmxhZ3MpOwo+ID4gCj4gPiArICAgICAvKiBEcmFpbiBzeXNmcyBj YWxsYmFja3MgYmVmb3JlIHN0b3BwaW5nIHRoZSB0cmFuc2FjdGlvbiBrdGhyZWFkLiAqLwo+ID4g KyAgICAgYnRyZnNfc3lzZnNfcmVtb3ZlX21vdW50ZWRfYXR0cnMoZnNfaW5mbyk7Cj4gPiArCj4g PiAgICAgICAvKgo+ID4gICAgICAgKiBJZiB3ZSBoYWQgVU5GSU5JU0hFRF9EUk9QUyB3ZSBjb3Vs ZCBzdGlsbCBiZSBwcm9jZXNzaW5nIHRoZW0sIHNvCj4gPiAgICAgICAqIGNsZWFyIHRoYXQgYml0 IGFuZCB3YWtlIHVwIHJlbG9jYXRpb24gc28gaXQgY2FuIHN0b3AuCj4gPiBAQCAtNDUzOCw3ICs0 NTQ3LDcgQEAgdm9pZCBfX2NvbGQgY2xvc2VfY3RyZWUoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZz X2luZm8pCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjcHVfY291bnRlcl9zdW0oJmZz X2luZm8tPm9yZGVyZWRfYnl0ZXMpKTsKPiA+IAo+ID4gLSAgICAgYnRyZnNfc3lzZnNfcmVtb3Zl X21vdW50ZWQoZnNfaW5mbyk7Cj4gPiArICAgICBidHJmc19zeXNmc19yZW1vdmVfbW91bnRlZF9r b2JqZWN0cyhmc19pbmZvKTsKPiA+ICAgICAgIGJ0cmZzX3N5c2ZzX3JlbW92ZV9mc2lkKGZzX2lu Zm8tPmZzX2RldmljZXMpOwo+ID4gCj4gPiAgICAgICBidHJmc19wdXRfYmxvY2tfZ3JvdXBfY2Fj aGUoZnNfaW5mbyk7Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9mcy9idHJmcy9zeXNmcy5jIGIvZnMv YnRyZnMvc3lzZnMuYwo+ID4gaW5kZXggMGQxNDU3MGM4YmMyLi5kOTBkNzZhMTUyZTkgMTAwNjQ0 Cj4gPiAtLS0gYS9mcy9idHJmcy9zeXNmcy5jCj4gPiArKysgYi9mcy9idHJmcy9zeXNmcy5jCj4g PiBAQCAtMTcwNywxMSArMTcwNywyMyBAQCBzdGF0aWMgdm9pZCBidHJmc19zeXNmc19yZW1vdmVf ZnNfZGV2aWNlcyhzdHJ1Y3QgYnRyZnNfZnNfZGV2aWNlcyAqZnNfZGV2aWNlcykKPiA+ICAgICAg IH0KPiA+IH0KPiA+IAo+ID4gLXZvaWQgYnRyZnNfc3lzZnNfcmVtb3ZlX21vdW50ZWQoc3RydWN0 IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8pCj4gPiArLyoKPiA+ICsgKiBSZW1vdmUgYXR0cmlidXRl cyB3aGljaCBtYXkgaGF2ZSBzdG9yZSBjYWxsYmFja3MuIGtlcm5mcyB3YWl0cyBmb3IgYWN0aXZl Cj4gPiArICogY2FsbGJhY2tzIGR1cmluZyByZW1vdmFsLCBzbyB0aGlzIG11c3QgYmUgZG9uZSBi ZWZvcmUgc3RvcHBpbmcgYW55IGt0aHJlYWQKPiA+ICsgKiB3aGljaCBjYW4gYmUgd29rZW4gdXAg YnkgdGhvc2UgY2FsbGJhY2tzLgo+ID4gKyAqLwo+ID4gK3ZvaWQgYnRyZnNfc3lzZnNfcmVtb3Zl X21vdW50ZWRfYXR0cnMoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8pCj4gPiB7Cj4gPiAg ICAgICBzdHJ1Y3Qga29iamVjdCAqZnNpZF9rb2JqID0gJmZzX2luZm8tPmZzX2RldmljZXMtPmZz aWRfa29iajsKPiA+IAo+ID4gLSAgICAgc3lzZnNfcmVtb3ZlX2xpbmsoZnNpZF9rb2JqLCAiYmRp Iik7Cj4gPiArICAgICBhZGRybV91bmtub3duX2ZlYXR1cmVfYXR0cnMoZnNfaW5mbywgZmFsc2Up Owo+ID4gKyAgICAgc3lzZnNfcmVtb3ZlX2dyb3VwKGZzaWRfa29iaiwgJmJ0cmZzX2ZlYXR1cmVf YXR0cl9ncm91cCk7Cj4gPiArICAgICBzeXNmc19yZW1vdmVfZmlsZXMoZnNpZF9rb2JqLCBidHJm c19hdHRycyk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGJ0cmZzX3N5c2ZzX3JlbW92 ZV9tb3VudGVkX2RpcnMoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8pCj4gPiArewo+ID4g KyAgICAgc3lzZnNfcmVtb3ZlX2xpbmsoJmZzX2luZm8tPmZzX2RldmljZXMtPmZzaWRfa29iaiwg ImJkaSIpOwo+ID4gCj4gPiAgICAgICBpZiAoZnNfaW5mby0+c3BhY2VfaW5mb19rb2JqKSB7Cj4g PiAgICAgICAgICAgICBzeXNmc19yZW1vdmVfZmlsZXMoZnNfaW5mby0+c3BhY2VfaW5mb19rb2Jq LCBhbGxvY2F0aW9uX2F0dHJzKTsKPiA+IEBAIC0xNzMwLDkgKzE3NDIsMTggQEAgdm9pZCBidHJm c19zeXNmc19yZW1vdmVfbW91bnRlZChzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbykKPiA+ ICAgICAgICAgICAgIGtvYmplY3RfcHV0KGZzX2luZm8tPmRlYnVnX2tvYmopOwo+ID4gICAgICAg fQo+ID4gI2VuZGlmCj4gPiAtICAgICBhZGRybV91bmtub3duX2ZlYXR1cmVfYXR0cnMoZnNfaW5m bywgZmFsc2UpOwo+ID4gLSAgICAgc3lzZnNfcmVtb3ZlX2dyb3VwKGZzaWRfa29iaiwgJmJ0cmZz X2ZlYXR1cmVfYXR0cl9ncm91cCk7Cj4gPiAtICAgICBzeXNmc19yZW1vdmVfZmlsZXMoZnNpZF9r b2JqLCBidHJmc19hdHRycyk7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgYnRyZnNfc3lzZnNfcmVt b3ZlX21vdW50ZWRfa29iamVjdHMoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8pCj4gPiAr ewo+ID4gKyAgICAgYnRyZnNfc3lzZnNfcmVtb3ZlX21vdW50ZWRfZGlycyhmc19pbmZvKTsKPiA+ ICsgICAgIGJ0cmZzX3N5c2ZzX3JlbW92ZV9mc19kZXZpY2VzKGZzX2luZm8tPmZzX2RldmljZXMp Owo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIGJ0cmZzX3N5c2ZzX3JlbW92ZV9tb3VudGVkKHN0cnVj dCBidHJmc19mc19pbmZvICpmc19pbmZvKQo+ID4gK3sKPiA+ICsgICAgIGJ0cmZzX3N5c2ZzX3Jl bW92ZV9tb3VudGVkX2RpcnMoZnNfaW5mbyk7Cj4gPiArICAgICBidHJmc19zeXNmc19yZW1vdmVf bW91bnRlZF9hdHRycyhmc19pbmZvKTsKPiA+ICAgICAgIGJ0cmZzX3N5c2ZzX3JlbW92ZV9mc19k ZXZpY2VzKGZzX2luZm8tPmZzX2RldmljZXMpOwo+ID4gfQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEv ZnMvYnRyZnMvc3lzZnMuaCBiL2ZzL2J0cmZzL3N5c2ZzLmgKPiA+IGluZGV4IDA1NDk4ZTUzNDZj My4uMGQwMDhmYzhmMWI4IDEwMDY0NAo+ID4gLS0tIGEvZnMvYnRyZnMvc3lzZnMuaAo+ID4gKysr IGIvZnMvYnRyZnMvc3lzZnMuaAo+ID4gQEAgLTM1LDYgKzM1LDkgQEAgdm9pZCBidHJmc19rb2Jq ZWN0X3VldmVudChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBlbnVtIGtvYmplY3RfYWN0aW9u IGFjdGlvbikKPiA+IGludCBfX2luaXQgYnRyZnNfaW5pdF9zeXNmcyh2b2lkKTsKPiA+IHZvaWQg X19jb2xkIGJ0cmZzX2V4aXRfc3lzZnModm9pZCk7Cj4gPiBpbnQgYnRyZnNfc3lzZnNfYWRkX21v dW50ZWQoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8pOwo+ID4gK3ZvaWQgYnRyZnNfc3lz ZnNfcmVtb3ZlX21vdW50ZWRfYXR0cnMoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8pOwo+ ID4gK3ZvaWQgYnRyZnNfc3lzZnNfcmVtb3ZlX21vdW50ZWRfa29iamVjdHMoc3RydWN0IGJ0cmZz X2ZzX2luZm8gKmZzX2luZm8pOwo+ID4gdm9pZCBidHJmc19zeXNmc19yZW1vdmVfbW91bnRlZChz dHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbyk7Cj4gPiB2b2lkIGJ0cmZzX3N5c2ZzX2FkZF9i bG9ja19ncm91cF90eXBlKHN0cnVjdCBidHJmc19ibG9ja19ncm91cCAqY2FjaGUpOwo+ID4gaW50 IGJ0cmZzX3N5c2ZzX2FkZF9zcGFjZV9pbmZvX3R5cGUoc3RydWN0IGJ0cmZzX3NwYWNlX2luZm8g KnNwYWNlX2luZm8pOwo=