diff for duplicates of <5516B953.2050203@roeck-us.net> diff --git a/a/1.txt b/N1/1.txt index 8a67b49..c7f2bb8 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,141 +1,237 @@ -T24gMDMvMjgvMjAxNSAwMzoyNCBBTSwgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gVGhpcyBwYXRjaCBz -cGxpdHMgQ09ORklHX0k4SyBjb21waWxlIG9wdGlvbiB0byBTRU5TT1JTX0RFTExfU01NIGFuZCBD -T05GSUdfSThLLgo+IE9wdGlvbiBTRU5TT1JTX0RFTExfU01NIGlzIG5vdyB1c2VkIHRvIGVuYWJs -ZSBjb21waWxhdGlvbiBvZiBkZWxsLXNtbS1od21vbgo+IGRyaXZlciBhbmQgb2xkIENPTkZJR19J -OEsgb3B0aW9uIHRvIGVuYWJsZSAvcHJvYy9pOGsgaW50ZXJmYWNlIGluIGRyaXZlci4KPgo+IFNv -IHRoaXMgY2hhbmdlIGFsbG93cyB0byBjb21waWxlIGRlbGwtc21tLWh3bW9uIGRyaXZlciB3aXRo -b3V0IGxlZ2FjeSAvcHJvYy9pOGsKPiBpbnRlcmZhY2Ugd2hpY2ggaXMgbmVlZGVkIG9ubHkgZm9y -IG9sZCBEZWxsIEluc3BpcmlvbiBtb2RlbHMgb3IgZm9yIHVzZXJzcGFjZQo+IGk4a3V0aWxzIHBh -Y2thZ2UuCj4KPiBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aGVuIENPTkZJR19JOEsgaXMg -ZW5hYmxlZCB0aGVuIGFsc28gU0VOU09SU19ERUxMX1NNTQo+IGlzIGVuYWJsZWQgYW5kIHNvIGRy -aXZlciBkZWxsLXNtbS1od21vbiAod2l0aCAvcHJvYy9pOGspIGlzIGNvbXBpbGVkLgo+Cj4gU2ln -bmVkLW9mZi1ieTogUGFsaSBSb2jDoXIgPHBhbGkucm9oYXJAZ21haWwuY29tPgo+IC0tLQo+ICAg -YXJjaC94ODYvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKystLS0tLS0tLS0t -LS0tLS0tCj4gICBkcml2ZXJzL2h3bW9uL0tjb25maWcgICAgICAgICAgfCAgIDExICsrKysrKysr -KysrCj4gICBkcml2ZXJzL2h3bW9uL01ha2VmaWxlICAgICAgICAgfCAgICAyICstCj4gICBkcml2 -ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9uLmMgfCAgIDIwICsrKysrKysrKysrKysrKystLS0tCj4g -ICA0IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+Cj4g -ZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCj4gaW5kZXgg -YjdkMzFjYS4uOGQwMjY2YiAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9LY29uZmlnCj4gKysrIGIv -YXJjaC94ODYvS2NvbmZpZwo+IEBAIC0xMDYzLDI0ICsxMDYzLDE3IEBAIGNvbmZpZyBUT1NISUJB -Cj4gICAJICBTYXkgTiBvdGhlcndpc2UuCj4KPiAgIGNvbmZpZyBJOEsKPiAtCXRyaXN0YXRlICJE -ZWxsIGxhcHRvcCBzdXBwb3J0Igo+IC0Jc2VsZWN0IEhXTU9OCj4gKwlib29sICJEZWxsIGk4ayBs -ZWdhY3kgbGFwdG9wIHN1cHBvcnQiCgp0cmlzdGF0ZSBhbmQgc3RpbGwgInNlbGVjdCBIV01PTiIu -Cgo+ICsJc2VsZWN0IFNFTlNPUlNfREVMTF9TTU0KPiAgIAktLS1oZWxwLS0tCj4gLQkgIFRoaXMg -YWRkcyBhIGRyaXZlciB0byBzYWZlbHkgYWNjZXNzIHRoZSBTeXN0ZW0gTWFuYWdlbWVudCBNb2Rl -Cj4gLQkgIG9mIHRoZSBDUFUgb24gdGhlIERlbGwgSW5zcGlyb24gODAwMC4gVGhlIFN5c3RlbSBN -YW5hZ2VtZW50IE1vZGUKPiAtCSAgaXMgdXNlZCB0byByZWFkIGNwdSB0ZW1wZXJhdHVyZSBhbmQg -Y29vbGluZyBmYW4gc3RhdHVzIGFuZCB0bwo+IC0JICBjb250cm9sIHRoZSBmYW5zIG9uIHRoZSBJ -OEsgcG9ydGFibGVzLgo+ICsJICBUaGlzIG9wdGlvbnMgZW5hYmxlcyBsZWdhY3kgL3Byb2MvaThr -IHVzZXJzcGFjZSBpbnRlcmZhY2UgaW4KPiArCSAgZGVsbC1zbW0taHdtb24gZHJpdmVyLiBDaGFy -YWN0ZXIgZmlsZSAvcHJvYy9pOGsgcmVwb3J0cyBwb3dlciBhbmQKPiArCSAgaG90a2V5IHN0YXR1 -cyBvbiBvbGQgRGVsbCBsYXB0b3BzIChsaWtlIERlbGwgSW5zcGlyb24gODAwMCkgdmlhCj4gKwkg -IFN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgcHJvdmlkZWQgYnkgRGVsbCBCSU9TLiBUaGlzIC9wcm9j -L2k4ayBpbnRlcmZhY2UKPiArCSAgaXMgYWxzbyB1c2VkIGJ5IHVzZXJzcGFjZSBwYWNrYWdlIGk4 -a3V0aWxzIHRvIGNvbnRyb2wgbGFwdG9wIGZhbnMuCj4KPiAtCSAgVGhpcyBkcml2ZXIgaGFzIGJl -ZW4gdGVzdGVkIG9ubHkgb24gdGhlIEluc3Bpcm9uIDgwMDAgYnV0IGl0IG1heQo+IC0JICBhbHNv -IHdvcmsgd2l0aCBvdGhlciBEZWxsIGxhcHRvcHMuIFlvdSBjYW4gZm9yY2UgbG9hZGluZyBvbiBv -dGhlcgo+IC0JICBtb2RlbHMgYnkgcGFzc2luZyB0aGUgcGFyYW1ldGVyIGBmb3JjZT0xJyB0byB0 -aGUgbW9kdWxlLiBVc2UgYXQKPiAtCSAgeW91ciBvd24gcmlzay4KPiAtCj4gLQkgIEZvciBpbmZv -cm1hdGlvbiBvbiB1dGlsaXRpZXMgdG8gbWFrZSB1c2Ugb2YgdGhpcyBkcml2ZXIgc2VlIHRoZQo+ -IC0JICBJOEsgTGludXggdXRpbGl0aWVzIHdlYiBzaXRlIGF0Ogo+IC0JICA8aHR0cDovL3Blb3Bs -ZS5kZWJpYW4ub3JnL35kei9pOGsvPgo+IC0KPiAtCSAgU2F5IFkgaWYgeW91IGludGVuZCB0byBy -dW4gdGhpcyBrZXJuZWwgb24gYSBEZWxsIEluc3Bpcm9uIDgwMDAuCj4gKwkgIFNheSBZIGlmIHlv -dSBpbnRlbmQgdG8gcnVuIHRoaXMga2VybmVsIG9uIG9sZCBEZWxsIGxhcHRvcHMgb3Igd2FudCB0 -bwo+ICsJICB1c2UgdXNlcnNwYWNlIHBhY2thZ2UgaThrdXRpbHMuCj4gICAJICBTYXkgTiBvdGhl -cndpc2UuCj4KPiAgIGNvbmZpZyBYODZfUkVCT09URklYVVBTCj4gZGlmZiAtLWdpdCBhL2RyaXZl -cnMvaHdtb24vS2NvbmZpZyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+IGluZGV4IDExMGZhZGUu -Ljg2ZWViN2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmlnCj4gKysrIGIvZHJp -dmVycy9od21vbi9LY29uZmlnCj4gQEAgLTE3MDMsNiArMTcwMywxNyBAQCBjb25maWcgU0VOU09S -U19VTFRSQTQ1Cj4gICAJICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgVWx0 -cmE0NSB3b3Jrc3RhdGlvbiBlbnZpcm9ubWVudGFsCj4gICAJICBzZW5zb3JzLgo+Cj4gK2NvbmZp -ZyBTRU5TT1JTX0RFTExfU01NCj4gKwl0cmlzdGF0ZSAiRGVsbCBsYXB0b3AgU01NIEJJT1MgaHdt -b24gZHJpdmVyIgo+ICsJZGVwZW5kcyBPTiBYODYKCldvbmRlcmluZyBhcyB3ZWxsIC4uIC5kaWQg -eW91IHRlc3QgdGhpcyA/Cgo+ICsJLS0taGVscC0tLQo+ICsJICBUaGlzIGh3bW9uIGRyaXZlciBh -ZGRzIHN1cHBvcnQgZm9yIHJlcG9ydGluZyB0ZW1wZXJhdHVyZSBvZiBkaWZmZXJlbnQKPiArCSAg -c2Vuc29ycyBhbmQgY29udHJvbHMgdGhlIGZhbnMgb24gRGVsbCBsYXB0b3BzIHZpYSBTeXN0ZW0g -TWFuYWdlbWVudAo+ICsJICBNb2RlIHByb3ZpZGVkIGJ5IERlbGwgQklPUy4KPiArCj4gKwkgIFdo -ZW4gb3B0aW9uIEk4SyBpcyBhbHNvIGVuYWJsZWQgdGhpcyBkcml2ZXIgcHJvdmlkZXMgbGVnYWN5 -IC9wcm9jL2k4awo+ICsJICB1c2Vyc3BhY2UgaW50ZXJmYWNlIGZvciBpOGt1dGlscyBwYWNrYWdl -Lgo+ICsKUGxlYXNlIGFkZCB0aGlzIGluIGFscGhhYmV0aWMgb3JkZXIuCgo+ICAgaWYgQUNQSQo+ -Cj4gICBjb21tZW50ICJBQ1BJIGRyaXZlcnMiCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24v -TWFrZWZpbGUgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gaW5kZXggMWMzZTQ1OC4uOWVlYzYx -NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9o -d21vbi9NYWtlZmlsZQo+IEBAIC0xNTUsNyArMTU1LDcgQEAgb2JqLSQoQ09ORklHX1NFTlNPUlNf -VzgzTDc4NVRTKQkrPSB3ODNsNzg1dHMubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfVzgzTDc4 -Nk5HKQkrPSB3ODNsNzg2bmcubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzFYKQkrPSB3 -bTgzMXgtaHdtb24ubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzUwKQkrPSB3bTgzNTAt -aHdtb24ubwo+IC1vYmotJChDT05GSUdfSThLKQkJKz0gZGVsbC1zbW0taHdtb24ubwo+ICtvYmot -JChDT05GSUdfU0VOU09SU19ERUxMX1NNTSkJKz0gZGVsbC1zbW0taHdtb24ubwoKU2FtZSBoZXJl -LgoKPgo+ICAgb2JqLSQoQ09ORklHX1BNQlVTKQkJKz0gcG1idXMvCj4KPiBkaWZmIC0tZ2l0IGEv -ZHJpdmVycy9od21vbi9kZWxsLXNtbS1od21vbi5jIGIvZHJpdmVycy9od21vbi9kZWxsLXNtbS1o -d21vbi5jCj4gaW5kZXggMmIwNGU0Zi4uZTk2NjFkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3 -bW9uL2RlbGwtc21tLWh3bW9uLmMKPiArKysgYi9kcml2ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9u -LmMKPiBAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgdWludCBpOGtfZmFuX21heCA9IEk4S19GQU5f -SElHSDsKPgo+ICAgTU9EVUxFX0FVVEhPUigiTWFzc2ltbyBEYWwgWm90dG8gKGR6QGRlYmlhbi5v -cmcpIik7Cj4gICBNT0RVTEVfQVVUSE9SKCJQYWxpIFJvaMOhciA8cGFsaS5yb2hhckBnbWFpbC5j -b20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBhY2Nlc3NpbmcgU01NIEJJ -T1Mgb24gRGVsbCBsYXB0b3BzIik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiRGVsbCBsYXB0b3Ag -U01NIEJJT1MgaHdtb24gZHJpdmVyIik7Cj4gICBNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gICBN -T0RVTEVfQUxJQVMoImk4ayIpOwo+Cj4gQEAgLTkzLDYgKzkzLDcgQEAgc3RhdGljIGJvb2wgaWdu -b3JlX2RtaTsKPiAgIG1vZHVsZV9wYXJhbShpZ25vcmVfZG1pLCBib29sLCAwKTsKPiAgIE1PRFVM -RV9QQVJNX0RFU0MoaWdub3JlX2RtaSwgIkNvbnRpbnVlIHByb2JpbmcgaGFyZHdhcmUgZXZlbiBp -ZiBETUkgZGF0YSBkb2VzIG5vdCBtYXRjaCIpOwo+Cj4gKyNpZmRlZiBDT05GSUdfSThLCj4gICBz -dGF0aWMgYm9vbCByZXN0cmljdGVkOwo+ICAgbW9kdWxlX3BhcmFtKHJlc3RyaWN0ZWQsIGJvb2ws -IDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhyZXN0cmljdGVkLCAiQWxsb3cgZmFuIGNvbnRyb2wg -aWYgU1lTX0FETUlOIGNhcGFiaWxpdHkgc2V0Iik7Cj4gQEAgLTEwMCw2ICsxMDEsNyBAQCBNT0RV -TEVfUEFSTV9ERVNDKHJlc3RyaWN0ZWQsICJBbGxvdyBmYW4gY29udHJvbCBpZiBTWVNfQURNSU4g -Y2FwYWJpbGl0eSBzZXQiKTsKPiAgIHN0YXRpYyBib29sIHBvd2VyX3N0YXR1czsKPiAgIG1vZHVs -ZV9wYXJhbShwb3dlcl9zdGF0dXMsIGJvb2wsIDA2MDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhw -b3dlcl9zdGF0dXMsICJSZXBvcnQgcG93ZXIgc3RhdHVzIGluIC9wcm9jL2k4ayIpOwo+ICsjZW5k -aWYKPgo+ICAgc3RhdGljIHVpbnQgZmFuX211bHQ7Cj4gICBtb2R1bGVfcGFyYW0oZmFuX211bHQs -IHVpbnQsIDApOwo+IEBAIC0xMDksNiArMTExLDcgQEAgc3RhdGljIHVpbnQgZmFuX21heDsKPiAg -IG1vZHVsZV9wYXJhbShmYW5fbWF4LCB1aW50LCAwKTsKPiAgIE1PRFVMRV9QQVJNX0RFU0MoZmFu -X21heCwgIk1heGltdW0gY29uZmlndXJhYmxlIGZhbiBzcGVlZCAoZGVmYXVsdDogYXV0b2RldGVj -dCkiKTsKPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGludCBpOGtfb3Blbl9mcyhz -dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7Cj4gICBzdGF0aWMgbG9uZyBp -OGtfaW9jdGwoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKPgo+ -IEBAIC0xMjAsNiArMTIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg -aThrX2ZvcHMgPSB7Cj4gICAJLnJlbGVhc2UJPSBzaW5nbGVfcmVsZWFzZSwKPiAgIAkudW5sb2Nr -ZWRfaW9jdGwJPSBpOGtfaW9jdGwsCj4gICB9Owo+ICsjZW5kaWYKPgo+ICAgc3RydWN0IHNtbV9y -ZWdzIHsKPiAgIAl1bnNpZ25lZCBpbnQgZWF4Owo+IEBAIC0yMjAsNiArMjI0LDcgQEAgb3V0Ogo+ -ICAgCXJldHVybiByYzsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgLyoKPiAgICAq -IFJlYWQgdGhlIEZuIGtleSBzdGF0dXMuCj4gICAgKi8KPiBAQCAtMjU4LDYgKzI2Myw3IEBAIHN0 -YXRpYyBpbnQgaThrX2dldF9wb3dlcl9zdGF0dXModm9pZCkKPgo+ICAgCXJldHVybiAocmVncy5l -YXggJiAweGZmKSA9PSBJOEtfUE9XRVJfQUMgPyBJOEtfQUMgOiBJOEtfQkFUVEVSWTsKPiAgIH0K -PiArI2VuZGlmCj4KPiAgIC8qCj4gICAgKiBSZWFkIHRoZSBmYW4gc3RhdHVzLgo+IEBAIC0zNzgs -NiArMzg0LDcgQEAgc3RhdGljIGludCBpOGtfZ2V0X2RlbGxfc2lnbmF0dXJlKGludCByZXFfZm4p -Cj4gICAJcmV0dXJuIHJlZ3MuZWF4ID09IDExNDU2NTE1MjcgJiYgcmVncy5lZHggPT0gMTE0NTM5 -MjIwNCA/IDAgOiAtMTsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGlu -dAo+ICAgaThrX2lvY3RsX3VubG9ja2VkKHN0cnVjdCBmaWxlICpmcCwgdW5zaWduZWQgaW50IGNt -ZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gICB7Cj4gQEAgLTUyNSw2ICs1MzIsNyBAQCBzdGF0aWMg -aW50IGk4a19vcGVuX2ZzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+ -ICAgewo+ICAgCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBpOGtfcHJvY19zaG93LCBOVUxMKTsK -PiAgIH0KPiArI2VuZGlmCj4KPgo+ICAgLyoKPiBAQCAtOTc0LDE3ICs5ODIsMTcgQEAgc3RhdGlj -IGludCBfX2luaXQgaThrX3Byb2JlKHZvaWQpCj4KPiAgIHN0YXRpYyBpbnQgX19pbml0IGk4a19p -bml0KHZvaWQpCj4gICB7Cj4gLQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnByb2NfaThrOwo+ICAg -CWludCBlcnI7Cj4KPiAgIAkvKiBBcmUgd2UgcnVubmluZyBvbiBhbiBzdXBwb3J0ZWQgbGFwdG9w -PyAqLwo+ICAgCWlmIChpOGtfcHJvYmUoKSkKPiAgIAkJcmV0dXJuIC1FTk9ERVY7Cj4KPiArI2lm -ZGVmIENPTkZJR19JOEsKPiAgIAkvKiBSZWdpc3RlciB0aGUgcHJvYyBlbnRyeSAqLwo+IC0JcHJv -Y19pOGsgPSBwcm9jX2NyZWF0ZSgiaThrIiwgMCwgTlVMTCwgJmk4a19mb3BzKTsKPiAtCWlmICgh -cHJvY19pOGspCj4gKwlpZiAoIXByb2NfY3JlYXRlKCJpOGsiLCAwLCBOVUxMLCAmaThrX2ZvcHMp -KQo+ICAgCQlyZXR1cm4gLUVOT0VOVDsKCkkgd291bGQgcHJlZmVyIG5vdCB0byBmYWlsIGhlcmUg -YnV0IHJlcG9ydCBhIHdhcm5pbmcuClRoaXMgaXMgbm8gbG9uZ2VyIGEgZmF0YWwgY29uZGl0aW9u -LgoKPiArI2VuZGlmCj4KPiAgIAllcnIgPSBpOGtfaW5pdF9od21vbigpOwo+ICAgCWlmIChlcnIp -Cj4gQEAgLTk5MywxNCArMTAwMSwxOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpOGtfaW5pdCh2b2lk -KQo+ICAgCXJldHVybiAwOwo+Cj4gICAgZXhpdF9yZW1vdmVfcHJvYzoKPiArI2lmZGVmIENPTkZJ -R19JOEsKPiAgIAlyZW1vdmVfcHJvY19lbnRyeSgiaThrIiwgTlVMTCk7Cj4gKyNlbmRpZgo+ICAg -CXJldHVybiBlcnI7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIF9fZXhpdCBpOGtfZXhpdCh2b2lk -KQo+ICAgewo+ICAgCWh3bW9uX2RldmljZV91bnJlZ2lzdGVyKGk4a19od21vbl9kZXYpOwo+ICsj -aWZkZWYgQ09ORklHX0k4Swo+ICAgCXJlbW92ZV9wcm9jX2VudHJ5KCJpOGsiLCBOVUxMKTsKPiAr -I2VuZGlmCj4gICB9Cj4KPiAgIG1vZHVsZV9pbml0KGk4a19pbml0KTsKPgoKQ2FuIHlvdSBtb3Zl -IGFsbCB0aGUgY29uZGl0aW9uYWwgZnVuY3Rpb25zIGFuZCBnbG9iYWwgdmFyaWFibGVzIHRvZ2V0 -aGVyCnVuZGVyIGEgc2luZ2xlICNpZmRlZiA/IFRoYXQgc2hvdWxkIGluY2x1ZGUgZnVuY3Rpb25z -IHRvIGNyZWF0ZSB0aGUgcHJvYwplbnRyaWVzLCBhbmQgc2hpbSBmdW5jdGlvbnMgZm9yIHRoZSBz -YW1lIGlmIEk4SyBpcyBub3QgY29uZmlndXJlZC4KCkFsc28sIHRoZSAjaWZkZWYgd291bGQgbm90 -IGNvdmVyIHRoZSBjYXNlIHdoZXJlIEk4SyBpcyBjb25maWd1cmVkIGFzIG1vZHVsZQoodGhlcmUg -aXMgbm8gcmVhc29uIHRvIGZvcmNlIGl0IHRvIGJvb2wpLiBZb3Ugc2hvdWxkIHVzZSAiI2lmIElT -X0VOQUJMRUQoQ09ORklHX0k4SykiCmluc3RlYWQuCgpUaGFua3MsCkd1ZW50ZXIKCgpfX19fX19f -X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxp -bmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3Jz -Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM +On 03/28/2015 03:24 AM, Pali Rohár wrote: +> This patch splits CONFIG_I8K compile option to SENSORS_DELL_SMM and CONFIG_I8K. +> Option SENSORS_DELL_SMM is now used to enable compilation of dell-smm-hwmon +> driver and old CONFIG_I8K option to enable /proc/i8k interface in driver. +> +> So this change allows to compile dell-smm-hwmon driver without legacy /proc/i8k +> interface which is needed only for old Dell Inspirion models or for userspace +> i8kutils package. +> +> For backward compatibility when CONFIG_I8K is enabled then also SENSORS_DELL_SMM +> is enabled and so driver dell-smm-hwmon (with /proc/i8k) is compiled. +> +> Signed-off-by: Pali Rohár <pali.rohar@gmail.com> +> --- +> arch/x86/Kconfig | 25 +++++++++---------------- +> drivers/hwmon/Kconfig | 11 +++++++++++ +> drivers/hwmon/Makefile | 2 +- +> drivers/hwmon/dell-smm-hwmon.c | 20 ++++++++++++++++---- +> 4 files changed, 37 insertions(+), 21 deletions(-) +> +> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig +> index b7d31ca..8d0266b 100644 +> --- a/arch/x86/Kconfig +> +++ b/arch/x86/Kconfig +> @@ -1063,24 +1063,17 @@ config TOSHIBA +> Say N otherwise. +> +> config I8K +> - tristate "Dell laptop support" +> - select HWMON +> + bool "Dell i8k legacy laptop support" + +tristate and still "select HWMON". + +> + select SENSORS_DELL_SMM +> ---help--- +> - This adds a driver to safely access the System Management Mode +> - of the CPU on the Dell Inspiron 8000. The System Management Mode +> - is used to read cpu temperature and cooling fan status and to +> - control the fans on the I8K portables. +> + This options enables legacy /proc/i8k userspace interface in +> + dell-smm-hwmon driver. Character file /proc/i8k reports power and +> + hotkey status on old Dell laptops (like Dell Inspiron 8000) via +> + System Management Mode provided by Dell BIOS. This /proc/i8k interface +> + is also used by userspace package i8kutils to control laptop fans. +> +> - This driver has been tested only on the Inspiron 8000 but it may +> - also work with other Dell laptops. You can force loading on other +> - models by passing the parameter `force=1' to the module. Use at +> - your own risk. +> - +> - For information on utilities to make use of this driver see the +> - I8K Linux utilities web site at: +> - <http://people.debian.org/~dz/i8k/> +> - +> - Say Y if you intend to run this kernel on a Dell Inspiron 8000. +> + Say Y if you intend to run this kernel on old Dell laptops or want to +> + use userspace package i8kutils. +> Say N otherwise. +> +> config X86_REBOOTFIXUPS +> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig +> index 110fade..86eeb7d 100644 +> --- a/drivers/hwmon/Kconfig +> +++ b/drivers/hwmon/Kconfig +> @@ -1703,6 +1703,17 @@ config SENSORS_ULTRA45 +> This driver provides support for the Ultra45 workstation environmental +> sensors. +> +> +config SENSORS_DELL_SMM +> + tristate "Dell laptop SMM BIOS hwmon driver" +> + depends ON X86 + +Wondering as well .. .did you test this ? + +> + ---help--- +> + This hwmon driver adds support for reporting temperature of different +> + sensors and controls the fans on Dell laptops via System Management +> + Mode provided by Dell BIOS. +> + +> + When option I8K is also enabled this driver provides legacy /proc/i8k +> + userspace interface for i8kutils package. +> + +Please add this in alphabetic order. + +> if ACPI +> +> comment "ACPI drivers" +> diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile +> index 1c3e458..9eec614 100644 +> --- a/drivers/hwmon/Makefile +> +++ b/drivers/hwmon/Makefile +> @@ -155,7 +155,7 @@ obj-$(CONFIG_SENSORS_W83L785TS) += w83l785ts.o +> obj-$(CONFIG_SENSORS_W83L786NG) += w83l786ng.o +> obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o +> obj-$(CONFIG_SENSORS_WM8350) += wm8350-hwmon.o +> -obj-$(CONFIG_I8K) += dell-smm-hwmon.o +> +obj-$(CONFIG_SENSORS_DELL_SMM) += dell-smm-hwmon.o + +Same here. + +> +> obj-$(CONFIG_PMBUS) += pmbus/ +> +> diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c +> index 2b04e4f..e9661dc 100644 +> --- a/drivers/hwmon/dell-smm-hwmon.c +> +++ b/drivers/hwmon/dell-smm-hwmon.c +> @@ -81,7 +81,7 @@ static uint i8k_fan_max = I8K_FAN_HIGH; +> +> MODULE_AUTHOR("Massimo Dal Zotto (dz@debian.org)"); +> MODULE_AUTHOR("Pali Rohár <pali.rohar@gmail.com>"); +> -MODULE_DESCRIPTION("Driver for accessing SMM BIOS on Dell laptops"); +> +MODULE_DESCRIPTION("Dell laptop SMM BIOS hwmon driver"); +> MODULE_LICENSE("GPL"); +> MODULE_ALIAS("i8k"); +> +> @@ -93,6 +93,7 @@ static bool ignore_dmi; +> module_param(ignore_dmi, bool, 0); +> MODULE_PARM_DESC(ignore_dmi, "Continue probing hardware even if DMI data does not match"); +> +> +#ifdef CONFIG_I8K +> static bool restricted; +> module_param(restricted, bool, 0); +> MODULE_PARM_DESC(restricted, "Allow fan control if SYS_ADMIN capability set"); +> @@ -100,6 +101,7 @@ MODULE_PARM_DESC(restricted, "Allow fan control if SYS_ADMIN capability set"); +> static bool power_status; +> module_param(power_status, bool, 0600); +> MODULE_PARM_DESC(power_status, "Report power status in /proc/i8k"); +> +#endif +> +> static uint fan_mult; +> module_param(fan_mult, uint, 0); +> @@ -109,6 +111,7 @@ static uint fan_max; +> module_param(fan_max, uint, 0); +> MODULE_PARM_DESC(fan_max, "Maximum configurable fan speed (default: autodetect)"); +> +> +#ifdef CONFIG_I8K +> static int i8k_open_fs(struct inode *inode, struct file *file); +> static long i8k_ioctl(struct file *, unsigned int, unsigned long); +> +> @@ -120,6 +123,7 @@ static const struct file_operations i8k_fops = { +> .release = single_release, +> .unlocked_ioctl = i8k_ioctl, +> }; +> +#endif +> +> struct smm_regs { +> unsigned int eax; +> @@ -220,6 +224,7 @@ out: +> return rc; +> } +> +> +#ifdef CONFIG_I8K +> /* +> * Read the Fn key status. +> */ +> @@ -258,6 +263,7 @@ static int i8k_get_power_status(void) +> +> return (regs.eax & 0xff) == I8K_POWER_AC ? I8K_AC : I8K_BATTERY; +> } +> +#endif +> +> /* +> * Read the fan status. +> @@ -378,6 +384,7 @@ static int i8k_get_dell_signature(int req_fn) +> return regs.eax == 1145651527 && regs.edx == 1145392204 ? 0 : -1; +> } +> +> +#ifdef CONFIG_I8K +> static int +> i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg) +> { +> @@ -525,6 +532,7 @@ static int i8k_open_fs(struct inode *inode, struct file *file) +> { +> return single_open(file, i8k_proc_show, NULL); +> } +> +#endif +> +> +> /* +> @@ -974,17 +982,17 @@ static int __init i8k_probe(void) +> +> static int __init i8k_init(void) +> { +> - struct proc_dir_entry *proc_i8k; +> int err; +> +> /* Are we running on an supported laptop? */ +> if (i8k_probe()) +> return -ENODEV; +> +> +#ifdef CONFIG_I8K +> /* Register the proc entry */ +> - proc_i8k = proc_create("i8k", 0, NULL, &i8k_fops); +> - if (!proc_i8k) +> + if (!proc_create("i8k", 0, NULL, &i8k_fops)) +> return -ENOENT; + +I would prefer not to fail here but report a warning. +This is no longer a fatal condition. + +> +#endif +> +> err = i8k_init_hwmon(); +> if (err) +> @@ -993,14 +1001,18 @@ static int __init i8k_init(void) +> return 0; +> +> exit_remove_proc: +> +#ifdef CONFIG_I8K +> remove_proc_entry("i8k", NULL); +> +#endif +> return err; +> } +> +> static void __exit i8k_exit(void) +> { +> hwmon_device_unregister(i8k_hwmon_dev); +> +#ifdef CONFIG_I8K +> remove_proc_entry("i8k", NULL); +> +#endif +> } +> +> module_init(i8k_init); +> + +Can you move all the conditional functions and global variables together +under a single #ifdef ? That should include functions to create the proc +entries, and shim functions for the same if I8K is not configured. + +Also, the #ifdef would not cover the case where I8K is configured as module +(there is no reason to force it to bool). You should use "#if IS_ENABLED(CONFIG_I8K)" +instead. + +Thanks, +Guenter diff --git a/a/content_digest b/N1/content_digest index 6c01f2d..729c612 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,8 +1,8 @@ "ref\01427538255-10860-1-git-send-email-pali.rohar@gmail.com\0" "ref\01427538255-10860-3-git-send-email-pali.rohar@gmail.com\0" "From\0Guenter Roeck <linux@roeck-us.net>\0" - "Subject\0Re: [lm-sensors] [PATCH 2/2] hwmon: Allow to compile dell-smm-hwmon driver without /proc/i8k\0" - "Date\0Sat, 28 Mar 2015 14:23:15 +0000\0" + "Subject\0Re: [PATCH 2/2] hwmon: Allow to compile dell-smm-hwmon driver without /proc/i8k\0" + "Date\0Sat, 28 Mar 2015 07:23:15 -0700\0" "To\0Pali Roh\303\241r <pali.rohar@gmail.com>" Arnd Bergmann <arnd@arndb.de> Greg Kroah-Hartman <gregkh@linuxfoundation.org> @@ -15,146 +15,242 @@ " lm-sensors@lm-sensors.org\0" "\00:1\0" "b\0" - "T24gMDMvMjgvMjAxNSAwMzoyNCBBTSwgUGFsaSBSb2jDoXIgd3JvdGU6Cj4gVGhpcyBwYXRjaCBz\n" - "cGxpdHMgQ09ORklHX0k4SyBjb21waWxlIG9wdGlvbiB0byBTRU5TT1JTX0RFTExfU01NIGFuZCBD\n" - "T05GSUdfSThLLgo+IE9wdGlvbiBTRU5TT1JTX0RFTExfU01NIGlzIG5vdyB1c2VkIHRvIGVuYWJs\n" - "ZSBjb21waWxhdGlvbiBvZiBkZWxsLXNtbS1od21vbgo+IGRyaXZlciBhbmQgb2xkIENPTkZJR19J\n" - "OEsgb3B0aW9uIHRvIGVuYWJsZSAvcHJvYy9pOGsgaW50ZXJmYWNlIGluIGRyaXZlci4KPgo+IFNv\n" - "IHRoaXMgY2hhbmdlIGFsbG93cyB0byBjb21waWxlIGRlbGwtc21tLWh3bW9uIGRyaXZlciB3aXRo\n" - "b3V0IGxlZ2FjeSAvcHJvYy9pOGsKPiBpbnRlcmZhY2Ugd2hpY2ggaXMgbmVlZGVkIG9ubHkgZm9y\n" - "IG9sZCBEZWxsIEluc3BpcmlvbiBtb2RlbHMgb3IgZm9yIHVzZXJzcGFjZQo+IGk4a3V0aWxzIHBh\n" - "Y2thZ2UuCj4KPiBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aGVuIENPTkZJR19JOEsgaXMg\n" - "ZW5hYmxlZCB0aGVuIGFsc28gU0VOU09SU19ERUxMX1NNTQo+IGlzIGVuYWJsZWQgYW5kIHNvIGRy\n" - "aXZlciBkZWxsLXNtbS1od21vbiAod2l0aCAvcHJvYy9pOGspIGlzIGNvbXBpbGVkLgo+Cj4gU2ln\n" - "bmVkLW9mZi1ieTogUGFsaSBSb2jDoXIgPHBhbGkucm9oYXJAZ21haWwuY29tPgo+IC0tLQo+ICAg\n" - "YXJjaC94ODYvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAyNSArKysrKysrKystLS0tLS0tLS0t\n" - "LS0tLS0tCj4gICBkcml2ZXJzL2h3bW9uL0tjb25maWcgICAgICAgICAgfCAgIDExICsrKysrKysr\n" - "KysrCj4gICBkcml2ZXJzL2h3bW9uL01ha2VmaWxlICAgICAgICAgfCAgICAyICstCj4gICBkcml2\n" - "ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9uLmMgfCAgIDIwICsrKysrKysrKysrKysrKystLS0tCj4g\n" - "ICA0IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+Cj4g\n" - "ZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCj4gaW5kZXgg\n" - "YjdkMzFjYS4uOGQwMjY2YiAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9LY29uZmlnCj4gKysrIGIv\n" - "YXJjaC94ODYvS2NvbmZpZwo+IEBAIC0xMDYzLDI0ICsxMDYzLDE3IEBAIGNvbmZpZyBUT1NISUJB\n" - "Cj4gICAJICBTYXkgTiBvdGhlcndpc2UuCj4KPiAgIGNvbmZpZyBJOEsKPiAtCXRyaXN0YXRlICJE\n" - "ZWxsIGxhcHRvcCBzdXBwb3J0Igo+IC0Jc2VsZWN0IEhXTU9OCj4gKwlib29sICJEZWxsIGk4ayBs\n" - "ZWdhY3kgbGFwdG9wIHN1cHBvcnQiCgp0cmlzdGF0ZSBhbmQgc3RpbGwgInNlbGVjdCBIV01PTiIu\n" - "Cgo+ICsJc2VsZWN0IFNFTlNPUlNfREVMTF9TTU0KPiAgIAktLS1oZWxwLS0tCj4gLQkgIFRoaXMg\n" - "YWRkcyBhIGRyaXZlciB0byBzYWZlbHkgYWNjZXNzIHRoZSBTeXN0ZW0gTWFuYWdlbWVudCBNb2Rl\n" - "Cj4gLQkgIG9mIHRoZSBDUFUgb24gdGhlIERlbGwgSW5zcGlyb24gODAwMC4gVGhlIFN5c3RlbSBN\n" - "YW5hZ2VtZW50IE1vZGUKPiAtCSAgaXMgdXNlZCB0byByZWFkIGNwdSB0ZW1wZXJhdHVyZSBhbmQg\n" - "Y29vbGluZyBmYW4gc3RhdHVzIGFuZCB0bwo+IC0JICBjb250cm9sIHRoZSBmYW5zIG9uIHRoZSBJ\n" - "OEsgcG9ydGFibGVzLgo+ICsJICBUaGlzIG9wdGlvbnMgZW5hYmxlcyBsZWdhY3kgL3Byb2MvaThr\n" - "IHVzZXJzcGFjZSBpbnRlcmZhY2UgaW4KPiArCSAgZGVsbC1zbW0taHdtb24gZHJpdmVyLiBDaGFy\n" - "YWN0ZXIgZmlsZSAvcHJvYy9pOGsgcmVwb3J0cyBwb3dlciBhbmQKPiArCSAgaG90a2V5IHN0YXR1\n" - "cyBvbiBvbGQgRGVsbCBsYXB0b3BzIChsaWtlIERlbGwgSW5zcGlyb24gODAwMCkgdmlhCj4gKwkg\n" - "IFN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgcHJvdmlkZWQgYnkgRGVsbCBCSU9TLiBUaGlzIC9wcm9j\n" - "L2k4ayBpbnRlcmZhY2UKPiArCSAgaXMgYWxzbyB1c2VkIGJ5IHVzZXJzcGFjZSBwYWNrYWdlIGk4\n" - "a3V0aWxzIHRvIGNvbnRyb2wgbGFwdG9wIGZhbnMuCj4KPiAtCSAgVGhpcyBkcml2ZXIgaGFzIGJl\n" - "ZW4gdGVzdGVkIG9ubHkgb24gdGhlIEluc3Bpcm9uIDgwMDAgYnV0IGl0IG1heQo+IC0JICBhbHNv\n" - "IHdvcmsgd2l0aCBvdGhlciBEZWxsIGxhcHRvcHMuIFlvdSBjYW4gZm9yY2UgbG9hZGluZyBvbiBv\n" - "dGhlcgo+IC0JICBtb2RlbHMgYnkgcGFzc2luZyB0aGUgcGFyYW1ldGVyIGBmb3JjZT0xJyB0byB0\n" - "aGUgbW9kdWxlLiBVc2UgYXQKPiAtCSAgeW91ciBvd24gcmlzay4KPiAtCj4gLQkgIEZvciBpbmZv\n" - "cm1hdGlvbiBvbiB1dGlsaXRpZXMgdG8gbWFrZSB1c2Ugb2YgdGhpcyBkcml2ZXIgc2VlIHRoZQo+\n" - "IC0JICBJOEsgTGludXggdXRpbGl0aWVzIHdlYiBzaXRlIGF0Ogo+IC0JICA8aHR0cDovL3Blb3Bs\n" - "ZS5kZWJpYW4ub3JnL35kei9pOGsvPgo+IC0KPiAtCSAgU2F5IFkgaWYgeW91IGludGVuZCB0byBy\n" - "dW4gdGhpcyBrZXJuZWwgb24gYSBEZWxsIEluc3Bpcm9uIDgwMDAuCj4gKwkgIFNheSBZIGlmIHlv\n" - "dSBpbnRlbmQgdG8gcnVuIHRoaXMga2VybmVsIG9uIG9sZCBEZWxsIGxhcHRvcHMgb3Igd2FudCB0\n" - "bwo+ICsJICB1c2UgdXNlcnNwYWNlIHBhY2thZ2UgaThrdXRpbHMuCj4gICAJICBTYXkgTiBvdGhl\n" - "cndpc2UuCj4KPiAgIGNvbmZpZyBYODZfUkVCT09URklYVVBTCj4gZGlmZiAtLWdpdCBhL2RyaXZl\n" - "cnMvaHdtb24vS2NvbmZpZyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+IGluZGV4IDExMGZhZGUu\n" - "Ljg2ZWViN2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmlnCj4gKysrIGIvZHJp\n" - "dmVycy9od21vbi9LY29uZmlnCj4gQEAgLTE3MDMsNiArMTcwMywxNyBAQCBjb25maWcgU0VOU09S\n" - "U19VTFRSQTQ1Cj4gICAJICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgVWx0\n" - "cmE0NSB3b3Jrc3RhdGlvbiBlbnZpcm9ubWVudGFsCj4gICAJICBzZW5zb3JzLgo+Cj4gK2NvbmZp\n" - "ZyBTRU5TT1JTX0RFTExfU01NCj4gKwl0cmlzdGF0ZSAiRGVsbCBsYXB0b3AgU01NIEJJT1MgaHdt\n" - "b24gZHJpdmVyIgo+ICsJZGVwZW5kcyBPTiBYODYKCldvbmRlcmluZyBhcyB3ZWxsIC4uIC5kaWQg\n" - "eW91IHRlc3QgdGhpcyA/Cgo+ICsJLS0taGVscC0tLQo+ICsJICBUaGlzIGh3bW9uIGRyaXZlciBh\n" - "ZGRzIHN1cHBvcnQgZm9yIHJlcG9ydGluZyB0ZW1wZXJhdHVyZSBvZiBkaWZmZXJlbnQKPiArCSAg\n" - "c2Vuc29ycyBhbmQgY29udHJvbHMgdGhlIGZhbnMgb24gRGVsbCBsYXB0b3BzIHZpYSBTeXN0ZW0g\n" - "TWFuYWdlbWVudAo+ICsJICBNb2RlIHByb3ZpZGVkIGJ5IERlbGwgQklPUy4KPiArCj4gKwkgIFdo\n" - "ZW4gb3B0aW9uIEk4SyBpcyBhbHNvIGVuYWJsZWQgdGhpcyBkcml2ZXIgcHJvdmlkZXMgbGVnYWN5\n" - "IC9wcm9jL2k4awo+ICsJICB1c2Vyc3BhY2UgaW50ZXJmYWNlIGZvciBpOGt1dGlscyBwYWNrYWdl\n" - "Lgo+ICsKUGxlYXNlIGFkZCB0aGlzIGluIGFscGhhYmV0aWMgb3JkZXIuCgo+ICAgaWYgQUNQSQo+\n" - "Cj4gICBjb21tZW50ICJBQ1BJIGRyaXZlcnMiCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24v\n" - "TWFrZWZpbGUgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gaW5kZXggMWMzZTQ1OC4uOWVlYzYx\n" - "NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9o\n" - "d21vbi9NYWtlZmlsZQo+IEBAIC0xNTUsNyArMTU1LDcgQEAgb2JqLSQoQ09ORklHX1NFTlNPUlNf\n" - "VzgzTDc4NVRTKQkrPSB3ODNsNzg1dHMubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfVzgzTDc4\n" - "Nk5HKQkrPSB3ODNsNzg2bmcubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzFYKQkrPSB3\n" - "bTgzMXgtaHdtb24ubwo+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfV004MzUwKQkrPSB3bTgzNTAt\n" - "aHdtb24ubwo+IC1vYmotJChDT05GSUdfSThLKQkJKz0gZGVsbC1zbW0taHdtb24ubwo+ICtvYmot\n" - "JChDT05GSUdfU0VOU09SU19ERUxMX1NNTSkJKz0gZGVsbC1zbW0taHdtb24ubwoKU2FtZSBoZXJl\n" - "LgoKPgo+ICAgb2JqLSQoQ09ORklHX1BNQlVTKQkJKz0gcG1idXMvCj4KPiBkaWZmIC0tZ2l0IGEv\n" - "ZHJpdmVycy9od21vbi9kZWxsLXNtbS1od21vbi5jIGIvZHJpdmVycy9od21vbi9kZWxsLXNtbS1o\n" - "d21vbi5jCj4gaW5kZXggMmIwNGU0Zi4uZTk2NjFkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2h3\n" - "bW9uL2RlbGwtc21tLWh3bW9uLmMKPiArKysgYi9kcml2ZXJzL2h3bW9uL2RlbGwtc21tLWh3bW9u\n" - "LmMKPiBAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgdWludCBpOGtfZmFuX21heCA9IEk4S19GQU5f\n" - "SElHSDsKPgo+ICAgTU9EVUxFX0FVVEhPUigiTWFzc2ltbyBEYWwgWm90dG8gKGR6QGRlYmlhbi5v\n" - "cmcpIik7Cj4gICBNT0RVTEVfQVVUSE9SKCJQYWxpIFJvaMOhciA8cGFsaS5yb2hhckBnbWFpbC5j\n" - "b20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIGZvciBhY2Nlc3NpbmcgU01NIEJJ\n" - "T1Mgb24gRGVsbCBsYXB0b3BzIik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiRGVsbCBsYXB0b3Ag\n" - "U01NIEJJT1MgaHdtb24gZHJpdmVyIik7Cj4gICBNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gICBN\n" - "T0RVTEVfQUxJQVMoImk4ayIpOwo+Cj4gQEAgLTkzLDYgKzkzLDcgQEAgc3RhdGljIGJvb2wgaWdu\n" - "b3JlX2RtaTsKPiAgIG1vZHVsZV9wYXJhbShpZ25vcmVfZG1pLCBib29sLCAwKTsKPiAgIE1PRFVM\n" - "RV9QQVJNX0RFU0MoaWdub3JlX2RtaSwgIkNvbnRpbnVlIHByb2JpbmcgaGFyZHdhcmUgZXZlbiBp\n" - "ZiBETUkgZGF0YSBkb2VzIG5vdCBtYXRjaCIpOwo+Cj4gKyNpZmRlZiBDT05GSUdfSThLCj4gICBz\n" - "dGF0aWMgYm9vbCByZXN0cmljdGVkOwo+ICAgbW9kdWxlX3BhcmFtKHJlc3RyaWN0ZWQsIGJvb2ws\n" - "IDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhyZXN0cmljdGVkLCAiQWxsb3cgZmFuIGNvbnRyb2wg\n" - "aWYgU1lTX0FETUlOIGNhcGFiaWxpdHkgc2V0Iik7Cj4gQEAgLTEwMCw2ICsxMDEsNyBAQCBNT0RV\n" - "TEVfUEFSTV9ERVNDKHJlc3RyaWN0ZWQsICJBbGxvdyBmYW4gY29udHJvbCBpZiBTWVNfQURNSU4g\n" - "Y2FwYWJpbGl0eSBzZXQiKTsKPiAgIHN0YXRpYyBib29sIHBvd2VyX3N0YXR1czsKPiAgIG1vZHVs\n" - "ZV9wYXJhbShwb3dlcl9zdGF0dXMsIGJvb2wsIDA2MDApOwo+ICAgTU9EVUxFX1BBUk1fREVTQyhw\n" - "b3dlcl9zdGF0dXMsICJSZXBvcnQgcG93ZXIgc3RhdHVzIGluIC9wcm9jL2k4ayIpOwo+ICsjZW5k\n" - "aWYKPgo+ICAgc3RhdGljIHVpbnQgZmFuX211bHQ7Cj4gICBtb2R1bGVfcGFyYW0oZmFuX211bHQs\n" - "IHVpbnQsIDApOwo+IEBAIC0xMDksNiArMTExLDcgQEAgc3RhdGljIHVpbnQgZmFuX21heDsKPiAg\n" - "IG1vZHVsZV9wYXJhbShmYW5fbWF4LCB1aW50LCAwKTsKPiAgIE1PRFVMRV9QQVJNX0RFU0MoZmFu\n" - "X21heCwgIk1heGltdW0gY29uZmlndXJhYmxlIGZhbiBzcGVlZCAoZGVmYXVsdDogYXV0b2RldGVj\n" - "dCkiKTsKPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGludCBpOGtfb3Blbl9mcyhz\n" - "dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSk7Cj4gICBzdGF0aWMgbG9uZyBp\n" - "OGtfaW9jdGwoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKPgo+\n" - "IEBAIC0xMjAsNiArMTIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg\n" - "aThrX2ZvcHMgPSB7Cj4gICAJLnJlbGVhc2UJPSBzaW5nbGVfcmVsZWFzZSwKPiAgIAkudW5sb2Nr\n" - "ZWRfaW9jdGwJPSBpOGtfaW9jdGwsCj4gICB9Owo+ICsjZW5kaWYKPgo+ICAgc3RydWN0IHNtbV9y\n" - "ZWdzIHsKPiAgIAl1bnNpZ25lZCBpbnQgZWF4Owo+IEBAIC0yMjAsNiArMjI0LDcgQEAgb3V0Ogo+\n" - "ICAgCXJldHVybiByYzsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgLyoKPiAgICAq\n" - "IFJlYWQgdGhlIEZuIGtleSBzdGF0dXMuCj4gICAgKi8KPiBAQCAtMjU4LDYgKzI2Myw3IEBAIHN0\n" - "YXRpYyBpbnQgaThrX2dldF9wb3dlcl9zdGF0dXModm9pZCkKPgo+ICAgCXJldHVybiAocmVncy5l\n" - "YXggJiAweGZmKSA9PSBJOEtfUE9XRVJfQUMgPyBJOEtfQUMgOiBJOEtfQkFUVEVSWTsKPiAgIH0K\n" - "PiArI2VuZGlmCj4KPiAgIC8qCj4gICAgKiBSZWFkIHRoZSBmYW4gc3RhdHVzLgo+IEBAIC0zNzgs\n" - "NiArMzg0LDcgQEAgc3RhdGljIGludCBpOGtfZ2V0X2RlbGxfc2lnbmF0dXJlKGludCByZXFfZm4p\n" - "Cj4gICAJcmV0dXJuIHJlZ3MuZWF4ID09IDExNDU2NTE1MjcgJiYgcmVncy5lZHggPT0gMTE0NTM5\n" - "MjIwNCA/IDAgOiAtMTsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX0k4Swo+ICAgc3RhdGljIGlu\n" - "dAo+ICAgaThrX2lvY3RsX3VubG9ja2VkKHN0cnVjdCBmaWxlICpmcCwgdW5zaWduZWQgaW50IGNt\n" - "ZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gICB7Cj4gQEAgLTUyNSw2ICs1MzIsNyBAQCBzdGF0aWMg\n" - "aW50IGk4a19vcGVuX2ZzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+\n" - "ICAgewo+ICAgCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBpOGtfcHJvY19zaG93LCBOVUxMKTsK\n" - "PiAgIH0KPiArI2VuZGlmCj4KPgo+ICAgLyoKPiBAQCAtOTc0LDE3ICs5ODIsMTcgQEAgc3RhdGlj\n" - "IGludCBfX2luaXQgaThrX3Byb2JlKHZvaWQpCj4KPiAgIHN0YXRpYyBpbnQgX19pbml0IGk4a19p\n" - "bml0KHZvaWQpCj4gICB7Cj4gLQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnByb2NfaThrOwo+ICAg\n" - "CWludCBlcnI7Cj4KPiAgIAkvKiBBcmUgd2UgcnVubmluZyBvbiBhbiBzdXBwb3J0ZWQgbGFwdG9w\n" - "PyAqLwo+ICAgCWlmIChpOGtfcHJvYmUoKSkKPiAgIAkJcmV0dXJuIC1FTk9ERVY7Cj4KPiArI2lm\n" - "ZGVmIENPTkZJR19JOEsKPiAgIAkvKiBSZWdpc3RlciB0aGUgcHJvYyBlbnRyeSAqLwo+IC0JcHJv\n" - "Y19pOGsgPSBwcm9jX2NyZWF0ZSgiaThrIiwgMCwgTlVMTCwgJmk4a19mb3BzKTsKPiAtCWlmICgh\n" - "cHJvY19pOGspCj4gKwlpZiAoIXByb2NfY3JlYXRlKCJpOGsiLCAwLCBOVUxMLCAmaThrX2ZvcHMp\n" - "KQo+ICAgCQlyZXR1cm4gLUVOT0VOVDsKCkkgd291bGQgcHJlZmVyIG5vdCB0byBmYWlsIGhlcmUg\n" - "YnV0IHJlcG9ydCBhIHdhcm5pbmcuClRoaXMgaXMgbm8gbG9uZ2VyIGEgZmF0YWwgY29uZGl0aW9u\n" - "LgoKPiArI2VuZGlmCj4KPiAgIAllcnIgPSBpOGtfaW5pdF9od21vbigpOwo+ICAgCWlmIChlcnIp\n" - "Cj4gQEAgLTk5MywxNCArMTAwMSwxOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpOGtfaW5pdCh2b2lk\n" - "KQo+ICAgCXJldHVybiAwOwo+Cj4gICAgZXhpdF9yZW1vdmVfcHJvYzoKPiArI2lmZGVmIENPTkZJ\n" - "R19JOEsKPiAgIAlyZW1vdmVfcHJvY19lbnRyeSgiaThrIiwgTlVMTCk7Cj4gKyNlbmRpZgo+ICAg\n" - "CXJldHVybiBlcnI7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIF9fZXhpdCBpOGtfZXhpdCh2b2lk\n" - "KQo+ICAgewo+ICAgCWh3bW9uX2RldmljZV91bnJlZ2lzdGVyKGk4a19od21vbl9kZXYpOwo+ICsj\n" - "aWZkZWYgQ09ORklHX0k4Swo+ICAgCXJlbW92ZV9wcm9jX2VudHJ5KCJpOGsiLCBOVUxMKTsKPiAr\n" - "I2VuZGlmCj4gICB9Cj4KPiAgIG1vZHVsZV9pbml0KGk4a19pbml0KTsKPgoKQ2FuIHlvdSBtb3Zl\n" - "IGFsbCB0aGUgY29uZGl0aW9uYWwgZnVuY3Rpb25zIGFuZCBnbG9iYWwgdmFyaWFibGVzIHRvZ2V0\n" - "aGVyCnVuZGVyIGEgc2luZ2xlICNpZmRlZiA/IFRoYXQgc2hvdWxkIGluY2x1ZGUgZnVuY3Rpb25z\n" - "IHRvIGNyZWF0ZSB0aGUgcHJvYwplbnRyaWVzLCBhbmQgc2hpbSBmdW5jdGlvbnMgZm9yIHRoZSBz\n" - "YW1lIGlmIEk4SyBpcyBub3QgY29uZmlndXJlZC4KCkFsc28sIHRoZSAjaWZkZWYgd291bGQgbm90\n" - "IGNvdmVyIHRoZSBjYXNlIHdoZXJlIEk4SyBpcyBjb25maWd1cmVkIGFzIG1vZHVsZQoodGhlcmUg\n" - "aXMgbm8gcmVhc29uIHRvIGZvcmNlIGl0IHRvIGJvb2wpLiBZb3Ugc2hvdWxkIHVzZSAiI2lmIElT\n" - "X0VOQUJMRUQoQ09ORklHX0k4SykiCmluc3RlYWQuCgpUaGFua3MsCkd1ZW50ZXIKCgpfX19fX19f\n" - "X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxp\n" - "bmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3Jz\n" - Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM + "On 03/28/2015 03:24 AM, Pali Roh\303\241r wrote:\n" + "> This patch splits CONFIG_I8K compile option to SENSORS_DELL_SMM and CONFIG_I8K.\n" + "> Option SENSORS_DELL_SMM is now used to enable compilation of dell-smm-hwmon\n" + "> driver and old CONFIG_I8K option to enable /proc/i8k interface in driver.\n" + ">\n" + "> So this change allows to compile dell-smm-hwmon driver without legacy /proc/i8k\n" + "> interface which is needed only for old Dell Inspirion models or for userspace\n" + "> i8kutils package.\n" + ">\n" + "> For backward compatibility when CONFIG_I8K is enabled then also SENSORS_DELL_SMM\n" + "> is enabled and so driver dell-smm-hwmon (with /proc/i8k) is compiled.\n" + ">\n" + "> Signed-off-by: Pali Roh\303\241r <pali.rohar@gmail.com>\n" + "> ---\n" + "> arch/x86/Kconfig | 25 +++++++++----------------\n" + "> drivers/hwmon/Kconfig | 11 +++++++++++\n" + "> drivers/hwmon/Makefile | 2 +-\n" + "> drivers/hwmon/dell-smm-hwmon.c | 20 ++++++++++++++++----\n" + "> 4 files changed, 37 insertions(+), 21 deletions(-)\n" + ">\n" + "> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig\n" + "> index b7d31ca..8d0266b 100644\n" + "> --- a/arch/x86/Kconfig\n" + "> +++ b/arch/x86/Kconfig\n" + "> @@ -1063,24 +1063,17 @@ config TOSHIBA\n" + "> \t Say N otherwise.\n" + ">\n" + "> config I8K\n" + "> -\ttristate \"Dell laptop support\"\n" + "> -\tselect HWMON\n" + "> +\tbool \"Dell i8k legacy laptop support\"\n" + "\n" + "tristate and still \"select HWMON\".\n" + "\n" + "> +\tselect SENSORS_DELL_SMM\n" + "> \t---help---\n" + "> -\t This adds a driver to safely access the System Management Mode\n" + "> -\t of the CPU on the Dell Inspiron 8000. The System Management Mode\n" + "> -\t is used to read cpu temperature and cooling fan status and to\n" + "> -\t control the fans on the I8K portables.\n" + "> +\t This options enables legacy /proc/i8k userspace interface in\n" + "> +\t dell-smm-hwmon driver. Character file /proc/i8k reports power and\n" + "> +\t hotkey status on old Dell laptops (like Dell Inspiron 8000) via\n" + "> +\t System Management Mode provided by Dell BIOS. This /proc/i8k interface\n" + "> +\t is also used by userspace package i8kutils to control laptop fans.\n" + ">\n" + "> -\t This driver has been tested only on the Inspiron 8000 but it may\n" + "> -\t also work with other Dell laptops. You can force loading on other\n" + "> -\t models by passing the parameter `force=1' to the module. Use at\n" + "> -\t your own risk.\n" + "> -\n" + "> -\t For information on utilities to make use of this driver see the\n" + "> -\t I8K Linux utilities web site at:\n" + "> -\t <http://people.debian.org/~dz/i8k/>\n" + "> -\n" + "> -\t Say Y if you intend to run this kernel on a Dell Inspiron 8000.\n" + "> +\t Say Y if you intend to run this kernel on old Dell laptops or want to\n" + "> +\t use userspace package i8kutils.\n" + "> \t Say N otherwise.\n" + ">\n" + "> config X86_REBOOTFIXUPS\n" + "> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig\n" + "> index 110fade..86eeb7d 100644\n" + "> --- a/drivers/hwmon/Kconfig\n" + "> +++ b/drivers/hwmon/Kconfig\n" + "> @@ -1703,6 +1703,17 @@ config SENSORS_ULTRA45\n" + "> \t This driver provides support for the Ultra45 workstation environmental\n" + "> \t sensors.\n" + ">\n" + "> +config SENSORS_DELL_SMM\n" + "> +\ttristate \"Dell laptop SMM BIOS hwmon driver\"\n" + "> +\tdepends ON X86\n" + "\n" + "Wondering as well .. .did you test this ?\n" + "\n" + "> +\t---help---\n" + "> +\t This hwmon driver adds support for reporting temperature of different\n" + "> +\t sensors and controls the fans on Dell laptops via System Management\n" + "> +\t Mode provided by Dell BIOS.\n" + "> +\n" + "> +\t When option I8K is also enabled this driver provides legacy /proc/i8k\n" + "> +\t userspace interface for i8kutils package.\n" + "> +\n" + "Please add this in alphabetic order.\n" + "\n" + "> if ACPI\n" + ">\n" + "> comment \"ACPI drivers\"\n" + "> diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile\n" + "> index 1c3e458..9eec614 100644\n" + "> --- a/drivers/hwmon/Makefile\n" + "> +++ b/drivers/hwmon/Makefile\n" + "> @@ -155,7 +155,7 @@ obj-$(CONFIG_SENSORS_W83L785TS)\t+= w83l785ts.o\n" + "> obj-$(CONFIG_SENSORS_W83L786NG)\t+= w83l786ng.o\n" + "> obj-$(CONFIG_SENSORS_WM831X)\t+= wm831x-hwmon.o\n" + "> obj-$(CONFIG_SENSORS_WM8350)\t+= wm8350-hwmon.o\n" + "> -obj-$(CONFIG_I8K)\t\t+= dell-smm-hwmon.o\n" + "> +obj-$(CONFIG_SENSORS_DELL_SMM)\t+= dell-smm-hwmon.o\n" + "\n" + "Same here.\n" + "\n" + ">\n" + "> obj-$(CONFIG_PMBUS)\t\t+= pmbus/\n" + ">\n" + "> diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c\n" + "> index 2b04e4f..e9661dc 100644\n" + "> --- a/drivers/hwmon/dell-smm-hwmon.c\n" + "> +++ b/drivers/hwmon/dell-smm-hwmon.c\n" + "> @@ -81,7 +81,7 @@ static uint i8k_fan_max = I8K_FAN_HIGH;\n" + ">\n" + "> MODULE_AUTHOR(\"Massimo Dal Zotto (dz@debian.org)\");\n" + "> MODULE_AUTHOR(\"Pali Roh\303\241r <pali.rohar@gmail.com>\");\n" + "> -MODULE_DESCRIPTION(\"Driver for accessing SMM BIOS on Dell laptops\");\n" + "> +MODULE_DESCRIPTION(\"Dell laptop SMM BIOS hwmon driver\");\n" + "> MODULE_LICENSE(\"GPL\");\n" + "> MODULE_ALIAS(\"i8k\");\n" + ">\n" + "> @@ -93,6 +93,7 @@ static bool ignore_dmi;\n" + "> module_param(ignore_dmi, bool, 0);\n" + "> MODULE_PARM_DESC(ignore_dmi, \"Continue probing hardware even if DMI data does not match\");\n" + ">\n" + "> +#ifdef CONFIG_I8K\n" + "> static bool restricted;\n" + "> module_param(restricted, bool, 0);\n" + "> MODULE_PARM_DESC(restricted, \"Allow fan control if SYS_ADMIN capability set\");\n" + "> @@ -100,6 +101,7 @@ MODULE_PARM_DESC(restricted, \"Allow fan control if SYS_ADMIN capability set\");\n" + "> static bool power_status;\n" + "> module_param(power_status, bool, 0600);\n" + "> MODULE_PARM_DESC(power_status, \"Report power status in /proc/i8k\");\n" + "> +#endif\n" + ">\n" + "> static uint fan_mult;\n" + "> module_param(fan_mult, uint, 0);\n" + "> @@ -109,6 +111,7 @@ static uint fan_max;\n" + "> module_param(fan_max, uint, 0);\n" + "> MODULE_PARM_DESC(fan_max, \"Maximum configurable fan speed (default: autodetect)\");\n" + ">\n" + "> +#ifdef CONFIG_I8K\n" + "> static int i8k_open_fs(struct inode *inode, struct file *file);\n" + "> static long i8k_ioctl(struct file *, unsigned int, unsigned long);\n" + ">\n" + "> @@ -120,6 +123,7 @@ static const struct file_operations i8k_fops = {\n" + "> \t.release\t= single_release,\n" + "> \t.unlocked_ioctl\t= i8k_ioctl,\n" + "> };\n" + "> +#endif\n" + ">\n" + "> struct smm_regs {\n" + "> \tunsigned int eax;\n" + "> @@ -220,6 +224,7 @@ out:\n" + "> \treturn rc;\n" + "> }\n" + ">\n" + "> +#ifdef CONFIG_I8K\n" + "> /*\n" + "> * Read the Fn key status.\n" + "> */\n" + "> @@ -258,6 +263,7 @@ static int i8k_get_power_status(void)\n" + ">\n" + "> \treturn (regs.eax & 0xff) == I8K_POWER_AC ? I8K_AC : I8K_BATTERY;\n" + "> }\n" + "> +#endif\n" + ">\n" + "> /*\n" + "> * Read the fan status.\n" + "> @@ -378,6 +384,7 @@ static int i8k_get_dell_signature(int req_fn)\n" + "> \treturn regs.eax == 1145651527 && regs.edx == 1145392204 ? 0 : -1;\n" + "> }\n" + ">\n" + "> +#ifdef CONFIG_I8K\n" + "> static int\n" + "> i8k_ioctl_unlocked(struct file *fp, unsigned int cmd, unsigned long arg)\n" + "> {\n" + "> @@ -525,6 +532,7 @@ static int i8k_open_fs(struct inode *inode, struct file *file)\n" + "> {\n" + "> \treturn single_open(file, i8k_proc_show, NULL);\n" + "> }\n" + "> +#endif\n" + ">\n" + ">\n" + "> /*\n" + "> @@ -974,17 +982,17 @@ static int __init i8k_probe(void)\n" + ">\n" + "> static int __init i8k_init(void)\n" + "> {\n" + "> -\tstruct proc_dir_entry *proc_i8k;\n" + "> \tint err;\n" + ">\n" + "> \t/* Are we running on an supported laptop? */\n" + "> \tif (i8k_probe())\n" + "> \t\treturn -ENODEV;\n" + ">\n" + "> +#ifdef CONFIG_I8K\n" + "> \t/* Register the proc entry */\n" + "> -\tproc_i8k = proc_create(\"i8k\", 0, NULL, &i8k_fops);\n" + "> -\tif (!proc_i8k)\n" + "> +\tif (!proc_create(\"i8k\", 0, NULL, &i8k_fops))\n" + "> \t\treturn -ENOENT;\n" + "\n" + "I would prefer not to fail here but report a warning.\n" + "This is no longer a fatal condition.\n" + "\n" + "> +#endif\n" + ">\n" + "> \terr = i8k_init_hwmon();\n" + "> \tif (err)\n" + "> @@ -993,14 +1001,18 @@ static int __init i8k_init(void)\n" + "> \treturn 0;\n" + ">\n" + "> exit_remove_proc:\n" + "> +#ifdef CONFIG_I8K\n" + "> \tremove_proc_entry(\"i8k\", NULL);\n" + "> +#endif\n" + "> \treturn err;\n" + "> }\n" + ">\n" + "> static void __exit i8k_exit(void)\n" + "> {\n" + "> \thwmon_device_unregister(i8k_hwmon_dev);\n" + "> +#ifdef CONFIG_I8K\n" + "> \tremove_proc_entry(\"i8k\", NULL);\n" + "> +#endif\n" + "> }\n" + ">\n" + "> module_init(i8k_init);\n" + ">\n" + "\n" + "Can you move all the conditional functions and global variables together\n" + "under a single #ifdef ? That should include functions to create the proc\n" + "entries, and shim functions for the same if I8K is not configured.\n" + "\n" + "Also, the #ifdef would not cover the case where I8K is configured as module\n" + "(there is no reason to force it to bool). You should use \"#if IS_ENABLED(CONFIG_I8K)\"\n" + "instead.\n" + "\n" + "Thanks,\n" + Guenter -1e6828b1bc08b85751315088a685ab0cbb6c4c17944e1981d16207478fe2a260 +7e633bee6190d0ec776554cd384e15461c8096d6387537b78f4d98863ffb8dbb
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.