From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1VjXOZ-0008Ip-3a for kexec@lists.infradead.org; Thu, 21 Nov 2013 16:46:24 +0000 Date: Thu, 21 Nov 2013 08:45:54 -0800 From: Greg KH Subject: Re: [patch 9/9 v3] x86: export x86 boot_params to sysfs Message-ID: <20131121164554.GB15083@kroah.com> References: <20131121061704.363730447@dhcp-16-126.nay.redhat.com> <20131121061757.030007746@dhcp-16-126.nay.redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20131121061757.030007746@dhcp-16-126.nay.redhat.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=twosheds.infradead.org@lists.infradead.org To: dyoung@redhat.com Cc: mjg59@srcf.ucam.org, linux-efi@vger.kernel.org, toshi.kani@hp.com, matt@console-pimps.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, James.Bottomley@HansenPartnership.com, horms@verge.net.au, bp@alien8.de, ebiederm@xmission.com, hpa@zytor.com, vgoyal@redhat.com T24gVGh1LCBOb3YgMjEsIDIwMTMgYXQgMDI6MTc6MTNQTSArMDgwMCwgZHlvdW5nQHJlZGhhdC5j b20gd3JvdGU6Cj4ga2V4ZWMtdG9vbHMgdXNlIGJvb3RfcGFyYW1zIGZvciBnZXR0aW5nIHRoZSAx c3Qga2VybmVsIGhhcmR3YXJlX3N1YmFyY2gsCj4gdGhlIGtleGVjIGtlcm5lbCBlZmkgcnVudGlt ZSBzdXBwb3J0IGFsc28gbmVlZCByZWFkIHRoZSBvbGQgZWZpX2luZm8gZnJvbQo+IGJvb3RfcGFy YW1zLiBDdXJyZW50bHkgaXQgZXhpc3RzIGluIGRlYnVnZnMgd2hpY2ggaXMgbm90IGEgZ29vZCBw bGFjZSBmb3IKPiBzdWNoIGluZm9tYXRpb24uIFBlciBIUEEsIHdlIHNob3VsZCBhdm9pZCBvZiAi c3Bsb2l0IGRlYnVnZnMiLgo+IAo+IEluIHRoaXMgcGF0Y2ggL3N5cy9rZXJuZWwvYm9vdF9wYXJh bXMgYXJlIGV4cG9ydGVkLCBhbHNvIHRoZSBzZXR1cF9kYXRhCj4gaXMgZXhwb3J0ZWQgYXMgYSBz dWJkaXJlY3RvcnkuIEZvciBvcmlnaW5hbCBkZWJ1Z2ZzIHNpbmNlIGl0J3MgYWxyZWFkeQo+IHRo ZXJlIGZvciBsb25nIHRpbWUgYW5kIGtleGVjLXRvb2xzIGlzIHVzaW5nIGl0IGZvciBoYXJkd2Fy ZV9zdWJhcmNoIHNvCj4gbGV0J3MgZG8gbm90IHJlbW92ZSB0aGVtIGZvciBub3cuCj4gCj4gU3Ry dWN0dXJlIGFyZSBsaWtlIGJlbG93Ogo+IAo+IC9zeXMva2VybmVsL2Jvb3RfcGFyYW1zCj4g4pSc 4pSA4pSAIGRhdGEJCS8qIGJpbmFyeSBkYXRhIGZvciBib290X3BhcmFtcyAqLwo+IOKUnOKUgOKU gCBzZXR1cF9kYXRhICAJLyogc3ViZGlyZWN0b3J5IGZvciBzZXR1cF9kYXRhIGlmIHRoZXJlJ3Mg YW55ICovCj4g4pSCwqDCoCDilJzilIDilIAgMAkJLyogdGhlIGZpcnN0IHNldHVwX2RhdGEgbm9k ZSAqLwo+IOKUgsKgwqAg4pSCwqDCoCDilJzilIDilIAgZGF0YQkvKiBiaW5hcnkgZGF0YSBmb3Ig c2V0dXBfZGF0YSBub2RlIDAgKi8KPiDilILCoMKgIOKUgsKgwqAg4pSU4pSA4pSAIHR5cGUJLyog c2V0dXBfZGF0YSB0eXBlIG9mIHNldHVwX2RhdGEgbm9kZSAwLCBoZXggc3RyaW5nICovCj4gfCAg IFtzbmlwXQkJLyogb3RoZXIgc2V0dXBfZGF0YSBub2RlcyAuLi4gKi8KPiDilJTilIDilIAgdmVy c2lvbgkJLyogaGV4IHN0cmluZyBmb3IgYm9vdCBwcm90b2NhbCB2ZXJzaW9uICovCj4gCj4gU2ln bmVkLW9mZi1ieTogRGF2ZSBZb3VuZyA8ZHlvdW5nQHJlZGhhdC5jb20+Cj4gLS0tCj4gIERvY3Vt ZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMta2VybmVsLWJvb3RfcGFyYW1zIHwgICA0MCArKwo+ ICBhcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDIgCj4gIGFyY2gveDg2L2tlcm5lbC9rc3lzZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDMyNiArKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAzNjcgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IC0tLSAvZGV2L251bGwKPiArKysgZWZpL0Rv Y3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMta2VybmVsLWJvb3RfcGFyYW1zCj4gQEAgLTAs MCArMSw0MCBAQAo+ICtXaGF0OgkJL3N5cy9rZXJuZWwvYm9vdF9wYXJhbXMKPiArRGF0ZToJCU5v dmVtYmVyIDIwMTMKPiArQ29udGFjdDoJRGF2ZSBZb3VuZyA8ZHlvdW5nQHJlZGhhdC5jb20+Cj4g K0Rlc2NyaXB0aW9uOgo+ICsJCVRoZSAvc3lzL2tlcm5lbC9ib290X3BhcmFtcyBkaXJlY3Rvcnkg Y29udGFpbnMgdHdvCj4gKwkJZmlsZXM6ICJkYXRhIiBhbmQgInZlcnNpb24iIGFuZCBvbmUgc3Vi ZGlyZWN0b3J5ICJzZXR1cF9kYXRhIi4KPiArCQlJdCBpcyB1c2VkIHRvIGV4cG9ydCB0aGUga2Vy bmVsIGJvb3QgcGFyYW1ldGVycyBvZiB4ODYKPiArCQlwbGF0Zm9ybSB0byB1c2VyIHNwYWNlIGZv ciBrZXhlYyBhbmQgZGVidWdnaW5nIHB1cnBvc2UuCj4gKwo+ICsJCUlmIHRoZXJlJ3Mgbm8gc2V0 dXBfZGF0YSBpbiBib290X3BhcmFtcyB0aGUgc3ViZGlyZWN0b3J5IHdpbGwKPiArCQlub3QgYmUg Y3JlYXRlZC4KPiArCj4gKwkJImRhdGEiIGZpbGUgaXMgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlv biBvZiBzdHJ1Y3QgYm9vdF9wYXJhbXMuCj4gKwo+ICsJCSJ2ZXJzaW9uIiBmaWxlIGlzIHRoZSBz dHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYm9vdAo+ICsJCXByb3RvY29sIHZlcnNpb24uCj4gKwo+ ICsJCSJzZXR1cF9kYXRhIiBzdWJkaXJlY3RvcnkgY29udGFpbnMgdGhlIHNldHVwX2RhdGEgZGF0 YQo+ICsJCXN0cnVjdHVyZSBpbiBib290X3BhcmFtcy4gc2V0dXBfZGF0YSBpcyBtYWludGFpbmVk IGluIGtlcm5lbAo+ICsJCWFzIGEgbGluayBsaXN0LiBJbiAic2V0dXBfZGF0YSIgc3ViZGlyZWN0 b3J5IHRoZXJlJ3Mgb25lCj4gKwkJc3ViZGlyZWN0b3J5IGZvciBlYWNoIGxpbmsgbGlzdCBub2Rl IG5hbWVkIHdpdGggdGhlIG51bWJlcgo+ICsJCW9mIHRoZSBsaXN0IG5vZGVzLiBUaGUgbGlzdCBu b2RlIHN1YmRpcmVjdG9yeSBjb250YWlucyB0d28KPiArCQlmaWxlcyAidHlwZSIgYW5kICJkYXRh Ii4gInR5cGUiIGZpbGUgaXMgdGhlIHN0cmluZwo+ICsJCXJlcHJlc2VudGF0aW9uIG9mIHNldHVw X2RhdGEgdHlwZS4gImRhdGEiIGZpbGUgaXMgdGhlIGJpbmFyeQo+ICsJCXJlcHJlc2VudGF0aW9u IG9mIHNldHVwX2RhdGEgcGF5bG9hZC4KPiArCj4gKwkJVGhlIHdob2xlIGJvb3RfcGFyYW1zIGRp cmVjdG9yeSBzdHJ1Y3R1cmUgaXMgbGlrZSBiZWxvdzoKPiArCQkvc3lzL2tlcm5lbC9ib290X3Bh cmFtcwo+ICsJCeKUnOKUgOKUgCBkYXRhCj4gKwkJ4pSc4pSA4pSAIHNldHVwX2RhdGEKPiArCQni lILCoMKgIOKUnOKUgOKUgCAwCj4gKwkJ4pSCwqDCoCDilILCoMKgIOKUnOKUgOKUgCBkYXRhCj4g KwkJ4pSCwqDCoCDilILCoMKgIOKUlOKUgOKUgCB0eXBlCj4gKwkJ4pSCwqDCoCDilJTilIDilIAg MQo+ICsJCeKUgsKgwqAgICAgIOKUnOKUgOKUgCBkYXRhCj4gKwkJ4pSCwqDCoCAgICAg4pSU4pSA 4pSAIHR5cGUKPiArCQnilJTilIDilIAgdmVyc2lvbgo+ICsKPiArVXNlcnM6Cj4gKwkJS2V4ZWMg TWFpbGluZyBMaXN0IDxrZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnPgo+IC0tLSBlZmkub3JpZy9h cmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUKPiArKysgZWZpL2FyY2gveDg2L2tlcm5lbC9NYWtlZmls ZQo+IEBAIC0zNSw3ICszNSw3IEBAIG9iai15CQkJKz0gYWx0ZXJuYXRpdmUubyBpODI1My5vIHBj aS1ub20KPiAgb2JqLXkJCQkrPSB0c2MubyBpb19kZWxheS5vIHJ0Yy5vCj4gIG9iai15CQkJKz0g cGNpLWlvbW11X3RhYmxlLm8KPiAgb2JqLXkJCQkrPSByZXNvdXJjZS5vCj4gLQo+ICtvYmotJChD T05GSUdfU1lTRlMpCSs9IGtzeXNmcy5vCj4gIG9iai15CQkJCSs9IHByb2Nlc3Mubwo+ICBvYmot eQkJCQkrPSBpMzg3Lm8geHNhdmUubwo+ICBvYmoteQkJCQkrPSBwdHJhY2Uubwo+IC0tLSAvZGV2 L251bGwKPiArKysgZWZpL2FyY2gveDg2L2tlcm5lbC9rc3lzZnMuYwo+IEBAIC0wLDAgKzEsMzI2 IEBACj4gKy8qCj4gKyAqIEFyY2hpdGVjdHVyZSBzcGVjaWZpYyBzeXNmcyBhdHRyaWJ1dGVzIGlu IC9zeXMva2VybmVsCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoQykgMjAwNywgSW50ZWwgQ29ycC4K PiArICogICAgICBIdWFuZyBZaW5nIDx5aW5nLmh1YW5nQGludGVsLmNvbT4KPiArICogQ29weXJp Z2h0IChDKSAyMDEzLCAyMDEzIFJlZCBIYXQsIEluYy4KPiArICogICAgICBEYXZlIFlvdW5nIDxk eW91bmdAcmVkaGF0LmNvbT4KPiArICoKPiArICogVGhpcyBmaWxlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBHUEx2Mgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9rb2JqZWN0Lmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9zbGFiLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tbS5oPgo+ICsKPiArI2luY2x1 ZGUgPGFzbS9zZXR1cC5oPgo+ICsKPiArc3RhdGljIHNzaXplX3QgYm9vdF9wYXJhbXNfdmVyc2lv bl9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAo+ICsJCQkJCXN0cnVjdCBrb2JqX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQo+ICt7Cj4gKwlyZXR1cm4gc3ByaW50ZihidWYsICIweCUwNHhc biIsIGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uKTsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBr b2JqX2F0dHJpYnV0ZSBib290X3BhcmFtc192ZXJzaW9uX2F0dHIgPQo+ICsJX19BVFRSKHZlcnNp b24sIFNfSVJVR08sIGJvb3RfcGFyYW1zX3ZlcnNpb25fc2hvdywgTlVMTCk7CgpfX0FUVFJfUk8o KSBwbGVhc2UuCgo+ICtzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHR5cGVfYXR0ciA9Cj4g KwkJX19BVFRSKHR5cGUsIFNfSVJVR08sIHNldHVwX2RhdGFfdHlwZV9zaG93LCBOVUxMKTsKCl9f QVRUUl9STygpIGhlcmUgdG9vLgoKCj4gK3N0YXRpYyBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSBkYXRh X2F0dHIgPSB7Cj4gKwkuYXR0ciA9IHsKPiArCQkubmFtZSA9ICJkYXRhIiwKPiArCQkubW9kZSA9 IFNfSVJVR08sCj4gKwl9LAo+ICsJLnJlYWQgPSBzZXR1cF9kYXRhX2RhdGFfcmVhZCwKPiArfTsK PiArCj4gK3N0YXRpYyBpbnQgX19pbml0IGNyZWF0ZV9zZXR1cF9kYXRhX25vZGUoc3RydWN0IGtv YmplY3QgKnBhcmVudCwKPiArCQkJCQlzdHJ1Y3Qga29iamVjdCAqKmtvYmpwLCBpbnQgbnIpCj4g K3sKPiArCWludCByZXQgPSAwOwo+ICsJc2l6ZV90IHNpemU7Cj4gKwlzdHJ1Y3Qga29iamVjdCAq a29iajsKPiArCWNoYXIgbmFtZVsxNl07IC8qIHNob3VsZCBiZSBlbm91Z2ggZm9yIHNldHVwX2Rh dGEgbm9kZXMgbnVtYmVycyAqLwo+ICsJc25wcmludGYobmFtZSwgMTYsICIlZCIsIG5yKTsKPiAr Cj4gKwlrb2JqID0ga29iamVjdF9jcmVhdGVfYW5kX2FkZChuYW1lLCBwYXJlbnQpOwo+ICsJaWYg KCFrb2JqKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXJldCA9IHN5c2ZzX2NyZWF0ZV9m aWxlKGtvYmosICZ0eXBlX2F0dHIuYXR0cik7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gb3V0X2tv Ymo7Cj4gKwo+ICsJcmV0ID0gZ2V0X3NldHVwX2RhdGFfc2l6ZShuciwgJnNpemUpOwo+ICsJaWYg KHJldCkKPiArCQlnb3RvIG91dF9rb2JqOwo+ICsKPiArCWRhdGFfYXR0ci5zaXplID0gc2l6ZTsK PiArCXJldCA9IHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZShrb2JqLCAmZGF0YV9hdHRyKTsKPiArCWlm IChyZXQpCj4gKwkJZ290byBvdXRfZmlsZTsKPiArCSprb2JqcCA9IGtvYmo7CgpZb3UganVzdCBy YWNlZCB3aXRoIHVzZXJzcGFjZSAoY3JlYXRpbmcgYW5kIGFubm91bmNpbmcgdGhlIGtvYmplY3Qg YW5kCnRoZW4sIGFmdGVyd2FyZCwgYXQgc29tZSBsYXRlciBwb2ludCBpbiB0aW1lLCBjcmVhdGVk IHRoZSBzeXNmcyBmaWxlcy4KUGxlYXNlIHVzZSB0aGUgZ3JvdXBzIG9wdGlvbiB0byBjcmVhdGUg dGhlIGZpbGVzIHByb3Blcmx5IGJlZm9yZQphbm5vdW5jaW5nIHRoZSBrb2JqZWN0IHRvIHVzZXJz cGFjZS4KCj4gK3N0YXRpYyBpbnQgX19pbml0IGJvb3RfcGFyYW1zX2tzeXNmc19pbml0KHZvaWQp Cj4gK3sKPiArCWludCByZXQ7Cj4gKwlzdHJ1Y3Qga29iamVjdCAqYm9vdF9wYXJhbXNfa29iajsK PiArCj4gKwlib290X3BhcmFtc19rb2JqID0ga29iamVjdF9jcmVhdGVfYW5kX2FkZCgiYm9vdF9w YXJhbXMiLAo+ICsJCQkJCQkgICAgICAga2VybmVsX2tvYmopOwo+ICsJaWYgKCFib290X3BhcmFt c19rb2JqKSB7Cj4gKwkJcmV0ID0gLUVOT01FTTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCXJl dCA9IHN5c2ZzX2NyZWF0ZV9maWxlKGJvb3RfcGFyYW1zX2tvYmosCj4gKwkJCQkmYm9vdF9wYXJh bXNfdmVyc2lvbl9hdHRyLmF0dHIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIG91dF9ib290X3Bh cmFtc19rb2JqOwo+ICsJcmV0ID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKGJvb3RfcGFyYW1zX2tv YmosCj4gKwkJCQkgICAgICAmYm9vdF9wYXJhbXNfZGF0YV9hdHRyKTsKPiArCWlmIChyZXQpCj4g KwkJZ290byBvdXRfY3JlYXRlX2ZpbGU7Cj4gKwo+ICsJcmV0ID0gY3JlYXRlX3NldHVwX2RhdGFf bm9kZXMoYm9vdF9wYXJhbXNfa29iaik7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gb3V0X2NyZWF0 ZV9iaW47Cj4gKwo+ICsJcmV0dXJuIDA7CgpTYW1lIHJhY2UgY29uZGl0aW9uIGhlcmUgYXMgd2Vs bC4gIFVzZSBhIGdyb3VwcyBzdHJ1Y3R1cmUgcGxlYXNlLgoKdGhhbmtzLAoKZ3JlZyBrLWgKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxp bmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg KH Subject: Re: [patch 9/9 v3] x86: export x86 boot_params to sysfs Date: Thu, 21 Nov 2013 08:45:54 -0800 Message-ID: <20131121164554.GB15083@kroah.com> References: <20131121061704.363730447@dhcp-16-126.nay.redhat.com> <20131121061757.030007746@dhcp-16-126.nay.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20131121061757.030007746-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "kexec" Errors-To: kexec-bounces+glkk-kexec=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, toshi.kani-VXdhtT5mjnY@public.gmane.org, matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org, horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org, bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org, ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org, hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org, vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org List-Id: linux-efi@vger.kernel.org T24gVGh1LCBOb3YgMjEsIDIwMTMgYXQgMDI6MTc6MTNQTSArMDgwMCwgZHlvdW5nQHJlZGhhdC5j b20gd3JvdGU6Cj4ga2V4ZWMtdG9vbHMgdXNlIGJvb3RfcGFyYW1zIGZvciBnZXR0aW5nIHRoZSAx c3Qga2VybmVsIGhhcmR3YXJlX3N1YmFyY2gsCj4gdGhlIGtleGVjIGtlcm5lbCBlZmkgcnVudGlt ZSBzdXBwb3J0IGFsc28gbmVlZCByZWFkIHRoZSBvbGQgZWZpX2luZm8gZnJvbQo+IGJvb3RfcGFy YW1zLiBDdXJyZW50bHkgaXQgZXhpc3RzIGluIGRlYnVnZnMgd2hpY2ggaXMgbm90IGEgZ29vZCBw bGFjZSBmb3IKPiBzdWNoIGluZm9tYXRpb24uIFBlciBIUEEsIHdlIHNob3VsZCBhdm9pZCBvZiAi c3Bsb2l0IGRlYnVnZnMiLgo+IAo+IEluIHRoaXMgcGF0Y2ggL3N5cy9rZXJuZWwvYm9vdF9wYXJh bXMgYXJlIGV4cG9ydGVkLCBhbHNvIHRoZSBzZXR1cF9kYXRhCj4gaXMgZXhwb3J0ZWQgYXMgYSBz dWJkaXJlY3RvcnkuIEZvciBvcmlnaW5hbCBkZWJ1Z2ZzIHNpbmNlIGl0J3MgYWxyZWFkeQo+IHRo ZXJlIGZvciBsb25nIHRpbWUgYW5kIGtleGVjLXRvb2xzIGlzIHVzaW5nIGl0IGZvciBoYXJkd2Fy ZV9zdWJhcmNoIHNvCj4gbGV0J3MgZG8gbm90IHJlbW92ZSB0aGVtIGZvciBub3cuCj4gCj4gU3Ry dWN0dXJlIGFyZSBsaWtlIGJlbG93Ogo+IAo+IC9zeXMva2VybmVsL2Jvb3RfcGFyYW1zCj4g4pSc 4pSA4pSAIGRhdGEJCS8qIGJpbmFyeSBkYXRhIGZvciBib290X3BhcmFtcyAqLwo+IOKUnOKUgOKU gCBzZXR1cF9kYXRhICAJLyogc3ViZGlyZWN0b3J5IGZvciBzZXR1cF9kYXRhIGlmIHRoZXJlJ3Mg YW55ICovCj4g4pSCwqDCoCDilJzilIDilIAgMAkJLyogdGhlIGZpcnN0IHNldHVwX2RhdGEgbm9k ZSAqLwo+IOKUgsKgwqAg4pSCwqDCoCDilJzilIDilIAgZGF0YQkvKiBiaW5hcnkgZGF0YSBmb3Ig c2V0dXBfZGF0YSBub2RlIDAgKi8KPiDilILCoMKgIOKUgsKgwqAg4pSU4pSA4pSAIHR5cGUJLyog c2V0dXBfZGF0YSB0eXBlIG9mIHNldHVwX2RhdGEgbm9kZSAwLCBoZXggc3RyaW5nICovCj4gfCAg IFtzbmlwXQkJLyogb3RoZXIgc2V0dXBfZGF0YSBub2RlcyAuLi4gKi8KPiDilJTilIDilIAgdmVy c2lvbgkJLyogaGV4IHN0cmluZyBmb3IgYm9vdCBwcm90b2NhbCB2ZXJzaW9uICovCj4gCj4gU2ln bmVkLW9mZi1ieTogRGF2ZSBZb3VuZyA8ZHlvdW5nQHJlZGhhdC5jb20+Cj4gLS0tCj4gIERvY3Vt ZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMta2VybmVsLWJvb3RfcGFyYW1zIHwgICA0MCArKwo+ ICBhcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDIgCj4gIGFyY2gveDg2L2tlcm5lbC9rc3lzZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDMyNiArKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAzNjcgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IC0tLSAvZGV2L251bGwKPiArKysgZWZpL0Rv Y3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMta2VybmVsLWJvb3RfcGFyYW1zCj4gQEAgLTAs MCArMSw0MCBAQAo+ICtXaGF0OgkJL3N5cy9rZXJuZWwvYm9vdF9wYXJhbXMKPiArRGF0ZToJCU5v dmVtYmVyIDIwMTMKPiArQ29udGFjdDoJRGF2ZSBZb3VuZyA8ZHlvdW5nQHJlZGhhdC5jb20+Cj4g K0Rlc2NyaXB0aW9uOgo+ICsJCVRoZSAvc3lzL2tlcm5lbC9ib290X3BhcmFtcyBkaXJlY3Rvcnkg Y29udGFpbnMgdHdvCj4gKwkJZmlsZXM6ICJkYXRhIiBhbmQgInZlcnNpb24iIGFuZCBvbmUgc3Vi ZGlyZWN0b3J5ICJzZXR1cF9kYXRhIi4KPiArCQlJdCBpcyB1c2VkIHRvIGV4cG9ydCB0aGUga2Vy bmVsIGJvb3QgcGFyYW1ldGVycyBvZiB4ODYKPiArCQlwbGF0Zm9ybSB0byB1c2VyIHNwYWNlIGZv ciBrZXhlYyBhbmQgZGVidWdnaW5nIHB1cnBvc2UuCj4gKwo+ICsJCUlmIHRoZXJlJ3Mgbm8gc2V0 dXBfZGF0YSBpbiBib290X3BhcmFtcyB0aGUgc3ViZGlyZWN0b3J5IHdpbGwKPiArCQlub3QgYmUg Y3JlYXRlZC4KPiArCj4gKwkJImRhdGEiIGZpbGUgaXMgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlv biBvZiBzdHJ1Y3QgYm9vdF9wYXJhbXMuCj4gKwo+ICsJCSJ2ZXJzaW9uIiBmaWxlIGlzIHRoZSBz dHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYm9vdAo+ICsJCXByb3RvY29sIHZlcnNpb24uCj4gKwo+ ICsJCSJzZXR1cF9kYXRhIiBzdWJkaXJlY3RvcnkgY29udGFpbnMgdGhlIHNldHVwX2RhdGEgZGF0 YQo+ICsJCXN0cnVjdHVyZSBpbiBib290X3BhcmFtcy4gc2V0dXBfZGF0YSBpcyBtYWludGFpbmVk IGluIGtlcm5lbAo+ICsJCWFzIGEgbGluayBsaXN0LiBJbiAic2V0dXBfZGF0YSIgc3ViZGlyZWN0 b3J5IHRoZXJlJ3Mgb25lCj4gKwkJc3ViZGlyZWN0b3J5IGZvciBlYWNoIGxpbmsgbGlzdCBub2Rl IG5hbWVkIHdpdGggdGhlIG51bWJlcgo+ICsJCW9mIHRoZSBsaXN0IG5vZGVzLiBUaGUgbGlzdCBu b2RlIHN1YmRpcmVjdG9yeSBjb250YWlucyB0d28KPiArCQlmaWxlcyAidHlwZSIgYW5kICJkYXRh Ii4gInR5cGUiIGZpbGUgaXMgdGhlIHN0cmluZwo+ICsJCXJlcHJlc2VudGF0aW9uIG9mIHNldHVw X2RhdGEgdHlwZS4gImRhdGEiIGZpbGUgaXMgdGhlIGJpbmFyeQo+ICsJCXJlcHJlc2VudGF0aW9u IG9mIHNldHVwX2RhdGEgcGF5bG9hZC4KPiArCj4gKwkJVGhlIHdob2xlIGJvb3RfcGFyYW1zIGRp cmVjdG9yeSBzdHJ1Y3R1cmUgaXMgbGlrZSBiZWxvdzoKPiArCQkvc3lzL2tlcm5lbC9ib290X3Bh cmFtcwo+ICsJCeKUnOKUgOKUgCBkYXRhCj4gKwkJ4pSc4pSA4pSAIHNldHVwX2RhdGEKPiArCQni lILCoMKgIOKUnOKUgOKUgCAwCj4gKwkJ4pSCwqDCoCDilILCoMKgIOKUnOKUgOKUgCBkYXRhCj4g KwkJ4pSCwqDCoCDilILCoMKgIOKUlOKUgOKUgCB0eXBlCj4gKwkJ4pSCwqDCoCDilJTilIDilIAg MQo+ICsJCeKUgsKgwqAgICAgIOKUnOKUgOKUgCBkYXRhCj4gKwkJ4pSCwqDCoCAgICAg4pSU4pSA 4pSAIHR5cGUKPiArCQnilJTilIDilIAgdmVyc2lvbgo+ICsKPiArVXNlcnM6Cj4gKwkJS2V4ZWMg TWFpbGluZyBMaXN0IDxrZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnPgo+IC0tLSBlZmkub3JpZy9h cmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUKPiArKysgZWZpL2FyY2gveDg2L2tlcm5lbC9NYWtlZmls ZQo+IEBAIC0zNSw3ICszNSw3IEBAIG9iai15CQkJKz0gYWx0ZXJuYXRpdmUubyBpODI1My5vIHBj aS1ub20KPiAgb2JqLXkJCQkrPSB0c2MubyBpb19kZWxheS5vIHJ0Yy5vCj4gIG9iai15CQkJKz0g cGNpLWlvbW11X3RhYmxlLm8KPiAgb2JqLXkJCQkrPSByZXNvdXJjZS5vCj4gLQo+ICtvYmotJChD T05GSUdfU1lTRlMpCSs9IGtzeXNmcy5vCj4gIG9iai15CQkJCSs9IHByb2Nlc3Mubwo+ICBvYmot eQkJCQkrPSBpMzg3Lm8geHNhdmUubwo+ICBvYmoteQkJCQkrPSBwdHJhY2Uubwo+IC0tLSAvZGV2 L251bGwKPiArKysgZWZpL2FyY2gveDg2L2tlcm5lbC9rc3lzZnMuYwo+IEBAIC0wLDAgKzEsMzI2 IEBACj4gKy8qCj4gKyAqIEFyY2hpdGVjdHVyZSBzcGVjaWZpYyBzeXNmcyBhdHRyaWJ1dGVzIGlu IC9zeXMva2VybmVsCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoQykgMjAwNywgSW50ZWwgQ29ycC4K PiArICogICAgICBIdWFuZyBZaW5nIDx5aW5nLmh1YW5nQGludGVsLmNvbT4KPiArICogQ29weXJp Z2h0IChDKSAyMDEzLCAyMDEzIFJlZCBIYXQsIEluYy4KPiArICogICAgICBEYXZlIFlvdW5nIDxk eW91bmdAcmVkaGF0LmNvbT4KPiArICoKPiArICogVGhpcyBmaWxlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBHUEx2Mgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9rb2JqZWN0Lmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9zbGFiLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tbS5oPgo+ICsKPiArI2luY2x1 ZGUgPGFzbS9zZXR1cC5oPgo+ICsKPiArc3RhdGljIHNzaXplX3QgYm9vdF9wYXJhbXNfdmVyc2lv bl9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAo+ICsJCQkJCXN0cnVjdCBrb2JqX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQo+ICt7Cj4gKwlyZXR1cm4gc3ByaW50ZihidWYsICIweCUwNHhc biIsIGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uKTsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBr b2JqX2F0dHJpYnV0ZSBib290X3BhcmFtc192ZXJzaW9uX2F0dHIgPQo+ICsJX19BVFRSKHZlcnNp b24sIFNfSVJVR08sIGJvb3RfcGFyYW1zX3ZlcnNpb25fc2hvdywgTlVMTCk7CgpfX0FUVFJfUk8o KSBwbGVhc2UuCgo+ICtzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHR5cGVfYXR0ciA9Cj4g KwkJX19BVFRSKHR5cGUsIFNfSVJVR08sIHNldHVwX2RhdGFfdHlwZV9zaG93LCBOVUxMKTsKCl9f QVRUUl9STygpIGhlcmUgdG9vLgoKCj4gK3N0YXRpYyBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSBkYXRh X2F0dHIgPSB7Cj4gKwkuYXR0ciA9IHsKPiArCQkubmFtZSA9ICJkYXRhIiwKPiArCQkubW9kZSA9 IFNfSVJVR08sCj4gKwl9LAo+ICsJLnJlYWQgPSBzZXR1cF9kYXRhX2RhdGFfcmVhZCwKPiArfTsK PiArCj4gK3N0YXRpYyBpbnQgX19pbml0IGNyZWF0ZV9zZXR1cF9kYXRhX25vZGUoc3RydWN0IGtv YmplY3QgKnBhcmVudCwKPiArCQkJCQlzdHJ1Y3Qga29iamVjdCAqKmtvYmpwLCBpbnQgbnIpCj4g K3sKPiArCWludCByZXQgPSAwOwo+ICsJc2l6ZV90IHNpemU7Cj4gKwlzdHJ1Y3Qga29iamVjdCAq a29iajsKPiArCWNoYXIgbmFtZVsxNl07IC8qIHNob3VsZCBiZSBlbm91Z2ggZm9yIHNldHVwX2Rh dGEgbm9kZXMgbnVtYmVycyAqLwo+ICsJc25wcmludGYobmFtZSwgMTYsICIlZCIsIG5yKTsKPiAr Cj4gKwlrb2JqID0ga29iamVjdF9jcmVhdGVfYW5kX2FkZChuYW1lLCBwYXJlbnQpOwo+ICsJaWYg KCFrb2JqKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXJldCA9IHN5c2ZzX2NyZWF0ZV9m aWxlKGtvYmosICZ0eXBlX2F0dHIuYXR0cik7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gb3V0X2tv Ymo7Cj4gKwo+ICsJcmV0ID0gZ2V0X3NldHVwX2RhdGFfc2l6ZShuciwgJnNpemUpOwo+ICsJaWYg KHJldCkKPiArCQlnb3RvIG91dF9rb2JqOwo+ICsKPiArCWRhdGFfYXR0ci5zaXplID0gc2l6ZTsK PiArCXJldCA9IHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZShrb2JqLCAmZGF0YV9hdHRyKTsKPiArCWlm IChyZXQpCj4gKwkJZ290byBvdXRfZmlsZTsKPiArCSprb2JqcCA9IGtvYmo7CgpZb3UganVzdCBy YWNlZCB3aXRoIHVzZXJzcGFjZSAoY3JlYXRpbmcgYW5kIGFubm91bmNpbmcgdGhlIGtvYmplY3Qg YW5kCnRoZW4sIGFmdGVyd2FyZCwgYXQgc29tZSBsYXRlciBwb2ludCBpbiB0aW1lLCBjcmVhdGVk IHRoZSBzeXNmcyBmaWxlcy4KUGxlYXNlIHVzZSB0aGUgZ3JvdXBzIG9wdGlvbiB0byBjcmVhdGUg dGhlIGZpbGVzIHByb3Blcmx5IGJlZm9yZQphbm5vdW5jaW5nIHRoZSBrb2JqZWN0IHRvIHVzZXJz cGFjZS4KCj4gK3N0YXRpYyBpbnQgX19pbml0IGJvb3RfcGFyYW1zX2tzeXNmc19pbml0KHZvaWQp Cj4gK3sKPiArCWludCByZXQ7Cj4gKwlzdHJ1Y3Qga29iamVjdCAqYm9vdF9wYXJhbXNfa29iajsK PiArCj4gKwlib290X3BhcmFtc19rb2JqID0ga29iamVjdF9jcmVhdGVfYW5kX2FkZCgiYm9vdF9w YXJhbXMiLAo+ICsJCQkJCQkgICAgICAga2VybmVsX2tvYmopOwo+ICsJaWYgKCFib290X3BhcmFt c19rb2JqKSB7Cj4gKwkJcmV0ID0gLUVOT01FTTsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCXJl dCA9IHN5c2ZzX2NyZWF0ZV9maWxlKGJvb3RfcGFyYW1zX2tvYmosCj4gKwkJCQkmYm9vdF9wYXJh bXNfdmVyc2lvbl9hdHRyLmF0dHIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIG91dF9ib290X3Bh cmFtc19rb2JqOwo+ICsJcmV0ID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKGJvb3RfcGFyYW1zX2tv YmosCj4gKwkJCQkgICAgICAmYm9vdF9wYXJhbXNfZGF0YV9hdHRyKTsKPiArCWlmIChyZXQpCj4g KwkJZ290byBvdXRfY3JlYXRlX2ZpbGU7Cj4gKwo+ICsJcmV0ID0gY3JlYXRlX3NldHVwX2RhdGFf bm9kZXMoYm9vdF9wYXJhbXNfa29iaik7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gb3V0X2NyZWF0 ZV9iaW47Cj4gKwo+ICsJcmV0dXJuIDA7CgpTYW1lIHJhY2UgY29uZGl0aW9uIGhlcmUgYXMgd2Vs bC4gIFVzZSBhIGdyb3VwcyBzdHJ1Y3R1cmUgcGxlYXNlLgoKdGhhbmtzLAoKZ3JlZyBrLWgKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxp bmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754788Ab3KUQyJ (ORCPT ); Thu, 21 Nov 2013 11:54:09 -0500 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:36464 "EHLO out5-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752189Ab3KUQyH (ORCPT ); Thu, 21 Nov 2013 11:54:07 -0500 X-Greylist: delayed 488 seconds by postgrey-1.27 at vger.kernel.org; Thu, 21 Nov 2013 11:54:07 EST X-Sasl-enc: o7jaRM2+u9hr8VxYJm/v/S74/0+pLH+UY3ODddh0WvLC 1385052356 Date: Thu, 21 Nov 2013 08:45:54 -0800 From: Greg KH To: dyoung@redhat.com Cc: linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, x86@kernel.org, mjg59@srcf.ucam.org, hpa@zytor.com, James.Bottomley@HansenPartnership.com, vgoyal@redhat.com, ebiederm@xmission.com, horms@verge.net.au, kexec@lists.infradead.org, bp@alien8.de, matt@console-pimps.org, toshi.kani@hp.com Subject: Re: [patch 9/9 v3] x86: export x86 boot_params to sysfs Message-ID: <20131121164554.GB15083@kroah.com> References: <20131121061704.363730447@dhcp-16-126.nay.redhat.com> <20131121061757.030007746@dhcp-16-126.nay.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20131121061757.030007746@dhcp-16-126.nay.redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Nov 21, 2013 at 02:17:13PM +0800, dyoung@redhat.com wrote: > kexec-tools use boot_params for getting the 1st kernel hardware_subarch, > the kexec kernel efi runtime support also need read the old efi_info from > boot_params. Currently it exists in debugfs which is not a good place for > such infomation. Per HPA, we should avoid of "sploit debugfs". > > In this patch /sys/kernel/boot_params are exported, also the setup_data > is exported as a subdirectory. For original debugfs since it's already > there for long time and kexec-tools is using it for hardware_subarch so > let's do not remove them for now. > > Structure are like below: > > /sys/kernel/boot_params > ├── data /* binary data for boot_params */ > ├── setup_data /* subdirectory for setup_data if there's any */ > │   ├── 0 /* the first setup_data node */ > │   │   ├── data /* binary data for setup_data node 0 */ > │   │   └── type /* setup_data type of setup_data node 0, hex string */ > | [snip] /* other setup_data nodes ... */ > └── version /* hex string for boot protocal version */ > > Signed-off-by: Dave Young > --- > Documentation/ABI/testing/sysfs-kernel-boot_params | 40 ++ > arch/x86/kernel/Makefile | 2 > arch/x86/kernel/ksysfs.c | 326 +++++++++++++++++++++ > 3 files changed, 367 insertions(+), 1 deletion(-) > > --- /dev/null > +++ efi/Documentation/ABI/testing/sysfs-kernel-boot_params > @@ -0,0 +1,40 @@ > +What: /sys/kernel/boot_params > +Date: November 2013 > +Contact: Dave Young > +Description: > + The /sys/kernel/boot_params directory contains two > + files: "data" and "version" and one subdirectory "setup_data". > + It is used to export the kernel boot parameters of x86 > + platform to user space for kexec and debugging purpose. > + > + If there's no setup_data in boot_params the subdirectory will > + not be created. > + > + "data" file is the binary representation of struct boot_params. > + > + "version" file is the string representation of boot > + protocol version. > + > + "setup_data" subdirectory contains the setup_data data > + structure in boot_params. setup_data is maintained in kernel > + as a link list. In "setup_data" subdirectory there's one > + subdirectory for each link list node named with the number > + of the list nodes. The list node subdirectory contains two > + files "type" and "data". "type" file is the string > + representation of setup_data type. "data" file is the binary > + representation of setup_data payload. > + > + The whole boot_params directory structure is like below: > + /sys/kernel/boot_params > + ├── data > + ├── setup_data > + │   ├── 0 > + │   │   ├── data > + │   │   └── type > + │   └── 1 > + │   ├── data > + │   └── type > + └── version > + > +Users: > + Kexec Mailing List > --- efi.orig/arch/x86/kernel/Makefile > +++ efi/arch/x86/kernel/Makefile > @@ -35,7 +35,7 @@ obj-y += alternative.o i8253.o pci-nom > obj-y += tsc.o io_delay.o rtc.o > obj-y += pci-iommu_table.o > obj-y += resource.o > - > +obj-$(CONFIG_SYSFS) += ksysfs.o > obj-y += process.o > obj-y += i387.o xsave.o > obj-y += ptrace.o > --- /dev/null > +++ efi/arch/x86/kernel/ksysfs.c > @@ -0,0 +1,326 @@ > +/* > + * Architecture specific sysfs attributes in /sys/kernel > + * > + * Copyright (C) 2007, Intel Corp. > + * Huang Ying > + * Copyright (C) 2013, 2013 Red Hat, Inc. > + * Dave Young > + * > + * This file is released under the GPLv2 > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > + > +static ssize_t boot_params_version_show(struct kobject *kobj, > + struct kobj_attribute *attr, char *buf) > +{ > + return sprintf(buf, "0x%04x\n", boot_params.hdr.version); > +} > + > +static struct kobj_attribute boot_params_version_attr = > + __ATTR(version, S_IRUGO, boot_params_version_show, NULL); __ATTR_RO() please. > +static struct kobj_attribute type_attr = > + __ATTR(type, S_IRUGO, setup_data_type_show, NULL); __ATTR_RO() here too. > +static struct bin_attribute data_attr = { > + .attr = { > + .name = "data", > + .mode = S_IRUGO, > + }, > + .read = setup_data_data_read, > +}; > + > +static int __init create_setup_data_node(struct kobject *parent, > + struct kobject **kobjp, int nr) > +{ > + int ret = 0; > + size_t size; > + struct kobject *kobj; > + char name[16]; /* should be enough for setup_data nodes numbers */ > + snprintf(name, 16, "%d", nr); > + > + kobj = kobject_create_and_add(name, parent); > + if (!kobj) > + return -ENOMEM; > + > + ret = sysfs_create_file(kobj, &type_attr.attr); > + if (ret) > + goto out_kobj; > + > + ret = get_setup_data_size(nr, &size); > + if (ret) > + goto out_kobj; > + > + data_attr.size = size; > + ret = sysfs_create_bin_file(kobj, &data_attr); > + if (ret) > + goto out_file; > + *kobjp = kobj; You just raced with userspace (creating and announcing the kobject and then, afterward, at some later point in time, created the sysfs files. Please use the groups option to create the files properly before announcing the kobject to userspace. > +static int __init boot_params_ksysfs_init(void) > +{ > + int ret; > + struct kobject *boot_params_kobj; > + > + boot_params_kobj = kobject_create_and_add("boot_params", > + kernel_kobj); > + if (!boot_params_kobj) { > + ret = -ENOMEM; > + goto out; > + } > + ret = sysfs_create_file(boot_params_kobj, > + &boot_params_version_attr.attr); > + if (ret) > + goto out_boot_params_kobj; > + ret = sysfs_create_bin_file(boot_params_kobj, > + &boot_params_data_attr); > + if (ret) > + goto out_create_file; > + > + ret = create_setup_data_nodes(boot_params_kobj); > + if (ret) > + goto out_create_bin; > + > + return 0; Same race condition here as well. Use a groups structure please. thanks, greg k-h