From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eu-smtp-delivery-151.mimecast.com (eu-smtp-delivery-151.mimecast.com [185.58.85.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D59FF138F for ; Mon, 16 May 2022 21:32:58 +0000 (UTC) Received: from AcuMS.aculab.com (156.67.243.121 [156.67.243.121]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id uk-mta-258-XPGIMpHAPt6Ggx_0Nc-b8Q-1; Mon, 16 May 2022 22:32:56 +0100 X-MC-Unique: XPGIMpHAPt6Ggx_0Nc-b8Q-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) by AcuMS.aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) with Microsoft SMTP Server (TLS) id 15.0.1497.36; Mon, 16 May 2022 22:32:55 +0100 Received: from AcuMS.Aculab.com ([fe80::994c:f5c2:35d6:9b65]) by AcuMS.aculab.com ([fe80::994c:f5c2:35d6:9b65%12]) with mapi id 15.00.1497.036; Mon, 16 May 2022 22:32:55 +0100 From: David Laight To: 'Sami Tolvanen' CC: "linux-kernel@vger.kernel.org" , Kees Cook , Josh Poimboeuf , Peter Zijlstra , "x86@kernel.org" , Catalin Marinas , Will Deacon , Mark Rutland , Nathan Chancellor , "Nick Desaulniers" , Joao Moreira , Sedat Dilek , "Steven Rostedt" , "linux-hardening@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "llvm@lists.linux.dev" Subject: RE: [RFC PATCH v2 20/21] x86: Add support for CONFIG_CFI_CLANG Thread-Topic: [RFC PATCH v2 20/21] x86: Add support for CONFIG_CFI_CLANG Thread-Index: AQHYZwdlgt4N7xLw0EK8voqNmmoVIa0hK0vAgAB8yACAAF6CUA== Date: Mon, 16 May 2022 21:32:55 +0000 Message-ID: <19b3e040302d4d8aa240eee43427dfaa@AcuMS.aculab.com> References: <20220513202159.1550547-1-samitolvanen@google.com> <20220513202159.1550547-21-samitolvanen@google.com> In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 RnJvbTogU2FtaSBUb2x2YW5lbg0KPiBTZW50OiAxNiBNYXkgMjAyMiAxNzozOQ0KPiANCj4gT24g TW9uLCBNYXkgMTYsIDIwMjIgYXQgMTozMiBBTSBEYXZpZCBMYWlnaHQgPERhdmlkLkxhaWdodEBh Y3VsYWIuY29tPiB3cm90ZToNCj4gPg0KPiA+IEZyb206IFNhbWkgVG9sdmFuZW4NCj4gPiA+IFNl bnQ6IDEzIE1heSAyMDIyIDIxOjIyDQo+ID4gPg0KPiA+ID4gV2l0aCBDT05GSUdfQ0ZJX0NMQU5H LCB0aGUgY29tcGlsZXIgaW5qZWN0cyBhIHR5cGUgcHJlYW1ibGUNCj4gPiA+IGltbWVkaWF0ZWx5 IGJlZm9yZSBlYWNoIGZ1bmN0aW9uIGFuZCBhIGNoZWNrIHRvIHZhbGlkYXRlIHRoZSB0YXJnZXQN Cj4gPiA+IGZ1bmN0aW9uIHR5cGUgYmVmb3JlIGluZGlyZWN0IGNhbGxzOg0KPiA+ID4NCj4gPiA+ ICAgOyB0eXBlIHByZWFtYmxlDQo+ID4gPiAgIF9fY2ZpX2Z1bmN0aW9uOg0KPiA+ID4gICAgIGlu dDMNCj4gPiA+ICAgICBpbnQzDQo+ID4gPiAgICAgbW92IDxpZD4sICVlYXgNCj4gPg0KPiA+IElu dGVyZXN0aW5nIC0gc2luY2UgdGhpcyBjb2RlIGNhbid0IGJlIGV4ZWN1dGVkIHRoZXJlIGlzIG5v DQo+ID4gcG9pbnQgYWRkaW5nIGFuIGluc3RydWN0aW9uICdwcmVmaXgnIHRvIHRoZSAzMmJpdCBj b25zdGFudC4NCj4gDQo+IFRoZSByZWFzb24gdG8gZW1iZWQgdGhlIHR5cGUgaW50byBhbiBpbnN0 cnVjdGlvbiBpcyB0byBhdm9pZCB0aGUgbmVlZA0KPiB0byBzcGVjaWFsIGNhc2Ugb2JqdG9vbCdz IGluc3RydWN0aW9uIGRlY29kZXIuDQo+IA0KPiA+ID4gICAgIGludDMNCj4gPiA+ICAgICBpbnQz DQo+ID4gPiAgIGZ1bmN0aW9uOg0KPiA+ID4gICAgIC4uLg0KPiA+ID4gICA7IGluZGlyZWN0IGNh bGwgY2hlY2sNCj4gPiA+ICAgICBjbXBsICAgIDxpZD4sIC02KCVyMTEpDQo+ID4gPiAgICAgamUg ICAgICAuTHRtcDENCj4gPiA+ICAgICB1ZDINCj4gPiA+ICAgLkx0bXAxOg0KPiA+ID4gICAgIGNh bGwgICAgX194ODZfaW5kaXJlY3RfdGh1bmtfcjExDQo+ID4gPg0KPiA+ID4gRGVmaW5lIHRoZSBf X0NGSV9UWVBFIGhlbHBlciBtYWNybyBmb3IgbWFudWFsIHR5cGUgYW5ub3RhdGlvbnMgaW4NCj4g PiA+IGFzc2VtYmx5IGNvZGUsIGFkZCBlcnJvciBoYW5kbGluZyBmb3IgdGhlIENGSSB1ZDIgdHJh cHMsIGFuZCBhbGxvdw0KPiA+ID4gQ09ORklHX0NGSV9DTEFORyB0byBiZSBzZWxlY3RlZCBvbiB4 ODZfNjQuDQo+ID4gPg0KPiA+IC4uLg0KPiA+ID4gKw0KPiA+ID4gKyAgICAgLyoNCj4gPiA+ICsg ICAgICAqIFRoZSBjb21waWxlciBnZW5lcmF0ZXMgdGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbiBz ZXF1ZW5jZQ0KPiA+ID4gKyAgICAgICogZm9yIGluZGlyZWN0IGNhbGwgY2hlY2tzOg0KPiA+ID4g KyAgICAgICoNCj4gPiA+ICsgICAgICAqICAgY21wbCAgICA8aWQ+LCAtNiglcmVnKSAgICAgOyA3 IGJ5dGVzDQo+ID4NCj4gPiBJZiB0aGUgPGlkPiBpcyBiZXR3ZWVuIC0xMjggYW5kIDEyNyB0aGVu IGFuIDhiaXQgY29uc3RhbnQNCj4gPiAoc2lnbiBleHRlbmRlZCkgbWlnaHQgYmUgdXNlZC4NCj4g PiBQb3NzaWJseSB0aGUgY29tcGlsZXIgZm9yY2VzIHRoZSBhc3NlbWJsZXIgdG8gZ2VuZXJhdGUg dGhlDQo+ID4gbG9uZyBmb3JtLg0KPiA+DQo+ID4gVGhlcmUgY291bGQgYWxzbyBiZSBhIFJFWCBw cmVmaXguDQo+ID4gVGhhdCB3aWxsIGJyZWFrIGFueSBjb2RlIHRoYXQgdHJpZXMgdG8gdXNlICVy ZWcuDQo+IA0KPiBUaGUgY29tcGlsZXIgYWx3YXlzIGdlbmVyYXRlcyB0aGlzIHNwZWNpZmljIGlu c3RydWN0aW9uIHNlcXVlbmNlLg0KDQpZZXMsIGJ1dCB0aGVyZSBhcmUgc2V2ZXJhbCB3YXlzIHRv IGVuY29kZSAnY21wbCBpbW0sLTYocmVnKScuDQpGaXJzdGx5IHlvdSBjYW4gdXNlICc4MSAvNyBp bW0zMicgb3IgJzgzIC83IGltbTgnIHdoZXJlIGltbTggaXMgc2lnbiBleHRlbmRlZC4NCih0aGUg LzcgMS83L2luZGV4X3JlZyBmb3IgYSBzaWduZWQgOCBiaXQgb2Zmc2V0KS4NCkJ1dCB0aGF0IG9u bHkgd29ya3MgZm9yIHRoZSBvcmlnaW5hbCAzMmJpdCByZWdpc3RlcnMuDQpGb3IgdGhlIDY0Yml0 IHI4IHRvIHIxNSBhbiBleHRyYSBSRVggcHJlZml4IGlzIHJlcXVpcmVkLg0KVGhhdCBtYWtlcyB0 aGUgaW5zdHJ1Y3Rpb24gOCBieXRlcyAoaWYgaXQgbmVlZHMgYSBmdWxsIDMyYml0IGltbWVkaWF0 ZSkuDQoNClNvIGlmIHRoZSByZWdpc3RlciBpcyAlcjExIHRoZXJlIGlzIGFuIGV4dHJhIFJFWCBi eXRlLg0KSWYgdGhlIDxpZD4gaXMgYSBoYXNoIGFuZCBoYXBwZW5zIHRvIGJlIGJldHdlZW4gLTEy OCBhbmQgMTI3DQp0aGVuIHRoZXJlIGFyZSB0aHJlZSBsZXNzIGJ5dGVzLg0KDQpTbyBkZWNvZGlu ZyBmcm9tIHJlZ3MtPmlwIC0gMCBpc24ndCBhbHdheXMgZ29pbmcgdG8gZ2l2ZQ0KeW91IHRoZSBz dGFydCBvZiB0aGUgaW5zdHJ1Y3Rpb24uDQoNCj4gDQo+ID4gPiArICAgICAgKiAgIGplICAgICAg Lkx0bXAxICAgICAgICAgICAgIDsgMiBieXRlcw0KPiA+ID4gKyAgICAgICogICB1ZDIgICAgICAg ICAgICAgICAgICAgICAgICA7IDwtIGFkZHINCj4gPiA+ICsgICAgICAqICAgLkx0bXAxOg0KPiA+ ID4gKyAgICAgICoNCj4gPiA+ICsgICAgICAqIEJvdGggdGhlIHR5cGUgYW5kIHRoZSB0YXJnZXQg YWRkcmVzcyBjYW4gYmUgZGVjb2RlZCBmcm9tIHRoZQ0KPiA+ID4gKyAgICAgICogY21wbCBpbnN0 cnVjdGlvbi4NCj4gPiA+ICsgICAgICAqLw0KPiA+ID4gKyAgICAgaWYgKGNvcHlfZnJvbV9rZXJu ZWxfbm9mYXVsdChidWZmZXIsICh2b2lkICopcmVncy0+aXAgLSA5LCBNQVhfSU5TTl9TSVpFKSkN Cj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ID4gKyAgICAgaWYgKGluc25fZGVjb2Rl X2tlcm5lbCgmaW5zbiwgYnVmZmVyKSkNCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ ID4gKyAgICAgaWYgKGluc24ub3Bjb2RlLnZhbHVlICE9IDB4ODEgfHwgWDg2X01PRFJNX1JFRyhp bnNuLm1vZHJtLnZhbHVlKSAhPSA3KQ0KPiA+ID4gKyAgICAgICAgICAgICByZXR1cm47DQo+ID4N Cj4gPiBTaW5jZSB5b3UgYXJlIGxvb2tpbmcgZm9yIGEgdmVyeSBzcGVjaWZpYyBvcGNvZGUgd2h5 IGJvdGhlcg0KPiA+IGNhbGxpbmcgaW5zbl9kZWNvZGVfa2VybmVsKCkgLSBqdXN0IGNoZWNrIGZv ciB0aGUgcmVxdWlyZWQgKG1hc2tlZCkNCj4gPiBieXRlIHZhbHVlcy4NCj4gDQo+IEJlY2F1c2Ug SSBuZWVkIHRvIGRlY29kZSBib3RoIHRoZSBpbW1lZGlhdGUgdmFsdWUgYW5kIHRoZSByZWdpc3Rl cg0KPiBmcm9tIHRoYXQgaW5zdHJ1Y3Rpb24uDQo+IA0KPiA+ID4gKw0KPiA+ID4gKyAgICAgKnR5 cGUgPSBpbnNuLmltbWVkaWF0ZS52YWx1ZTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIG9mZnNldCA9 IGluc25fZ2V0X21vZHJtX3JtX29mZigmaW5zbiwgcmVncyk7DQo+ID4NCj4gPiBHaXZlbiB0aGUg ZXhwZWN0ZWQgaW5zdHJ1Y3Rpb24sIGlzbid0IHRoYXQgLTYgPz8NCj4gDQo+IE5vLCB0aGlzIGlz IHRoZSByZWdpc3RlciBvZmZzZXQuDQoNCkhtbW0uLi4uIHN0cmFuZ2UgZnVuY3Rpb24gbmFtZS4u Lg0KPiANCj4gPiA+ICsgICAgIGlmIChvZmZzZXQgPCAwKQ0KPiA+ID4gKyAgICAgICAgICAgICBy ZXR1cm47DQo+ID4gPiArDQo+ID4gPiArICAgICAqdGFyZ2V0ID0gKih1bnNpZ25lZCBsb25nICop KCh2b2lkICopcmVncyArIG9mZnNldCk7DQo+ID4NCj4gPiBXVEYgaXMgdGhhdCBjYWxjdWxhdGlu Zz8/DQo+IA0KPiBJdCdzIHJlYWRpbmcgdGhlIHJlZ2lzdGVyIHZhbHVlIGZyb20gcHRfcmVncy4N Cj4gDQo+IFNhbWkNCg0KCURhdmlkDQoNCi0NClJlZ2lzdGVyZWQgQWRkcmVzcyBMYWtlc2lkZSwg QnJhbWxleSBSb2FkLCBNb3VudCBGYXJtLCBNaWx0b24gS2V5bmVzLCBNSzEgMVBULCBVSw0KUmVn aXN0cmF0aW9uIE5vOiAxMzk3Mzg2IChXYWxlcykNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AFD3FC433F5 for ; Mon, 16 May 2022 21:34:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2G+T9gQH29hrBWIgu0f41MD/+gwJokcccCrLAW7uSEw=; b=HXOqciYdL/mt53 QE7K8RGDoHytS332E3DTps8dDKib+2kClSyws2FlSXyQL1y3FW3e9L5nDYNMyrnOquECJzqeqFMqY kupPRHH+gUqkXHPVeZSDGWv4SV75hmeY3E5Y6g/vpwDItsClJXwapziM2d9U530quHN85vSTv+M2W J3ifsDeBj5fu3z4pONnnLIsDrCDL/RYGsJp6uShEjuhzCBmGE9GnT47CNiuWjGDRCdyfVaOj5jUun 3aKD4QRi+Gx0+kzwM//3P2JxSnbSwSYu1pREArpo/7h6/Kf0lE+7+G5KnWuOoUoEOeMemNSGAYNEo sbGTmhaPiNdUlnbEsuWA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqiKy-00AKOs-4D; Mon, 16 May 2022 21:33:08 +0000 Received: from eu-smtp-delivery-151.mimecast.com ([185.58.85.151]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqiKt-00AKJF-75 for linux-arm-kernel@lists.infradead.org; Mon, 16 May 2022 21:33:06 +0000 Received: from AcuMS.aculab.com (156.67.243.121 [156.67.243.121]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id uk-mta-258-XPGIMpHAPt6Ggx_0Nc-b8Q-1; Mon, 16 May 2022 22:32:56 +0100 X-MC-Unique: XPGIMpHAPt6Ggx_0Nc-b8Q-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) by AcuMS.aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) with Microsoft SMTP Server (TLS) id 15.0.1497.36; Mon, 16 May 2022 22:32:55 +0100 Received: from AcuMS.Aculab.com ([fe80::994c:f5c2:35d6:9b65]) by AcuMS.aculab.com ([fe80::994c:f5c2:35d6:9b65%12]) with mapi id 15.00.1497.036; Mon, 16 May 2022 22:32:55 +0100 From: David Laight To: 'Sami Tolvanen' CC: "linux-kernel@vger.kernel.org" , Kees Cook , Josh Poimboeuf , Peter Zijlstra , "x86@kernel.org" , Catalin Marinas , Will Deacon , Mark Rutland , Nathan Chancellor , "Nick Desaulniers" , Joao Moreira , Sedat Dilek , "Steven Rostedt" , "linux-hardening@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "llvm@lists.linux.dev" Subject: RE: [RFC PATCH v2 20/21] x86: Add support for CONFIG_CFI_CLANG Thread-Topic: [RFC PATCH v2 20/21] x86: Add support for CONFIG_CFI_CLANG Thread-Index: AQHYZwdlgt4N7xLw0EK8voqNmmoVIa0hK0vAgAB8yACAAF6CUA== Date: Mon, 16 May 2022 21:32:55 +0000 Message-ID: <19b3e040302d4d8aa240eee43427dfaa@AcuMS.aculab.com> References: <20220513202159.1550547-1-samitolvanen@google.com> <20220513202159.1550547-21-samitolvanen@google.com> In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220516_143303_576746_39756C54 X-CRM114-Status: GOOD ( 31.63 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Sami Tolvanen > Sent: 16 May 2022 17:39 > > On Mon, May 16, 2022 at 1:32 AM David Laight wrote: > > > > From: Sami Tolvanen > > > Sent: 13 May 2022 21:22 > > > > > > With CONFIG_CFI_CLANG, the compiler injects a type preamble > > > immediately before each function and a check to validate the target > > > function type before indirect calls: > > > > > > ; type preamble > > > __cfi_function: > > > int3 > > > int3 > > > mov , %eax > > > > Interesting - since this code can't be executed there is no > > point adding an instruction 'prefix' to the 32bit constant. > > The reason to embed the type into an instruction is to avoid the need > to special case objtool's instruction decoder. > > > > int3 > > > int3 > > > function: > > > ... > > > ; indirect call check > > > cmpl , -6(%r11) > > > je .Ltmp1 > > > ud2 > > > .Ltmp1: > > > call __x86_indirect_thunk_r11 > > > > > > Define the __CFI_TYPE helper macro for manual type annotations in > > > assembly code, add error handling for the CFI ud2 traps, and allow > > > CONFIG_CFI_CLANG to be selected on x86_64. > > > > > ... > > > + > > > + /* > > > + * The compiler generates the following instruction sequence > > > + * for indirect call checks: > > > + * > > > + * cmpl , -6(%reg) ; 7 bytes > > > > If the is between -128 and 127 then an 8bit constant > > (sign extended) might be used. > > Possibly the compiler forces the assembler to generate the > > long form. > > > > There could also be a REX prefix. > > That will break any code that tries to use %reg. > > The compiler always generates this specific instruction sequence. Yes, but there are several ways to encode 'cmpl imm,-6(reg)'. Firstly you can use '81 /7 imm32' or '83 /7 imm8' where imm8 is sign extended. (the /7 1/7/index_reg for a signed 8 bit offset). But that only works for the original 32bit registers. For the 64bit r8 to r15 an extra REX prefix is required. That makes the instruction 8 bytes (if it needs a full 32bit immediate). So if the register is %r11 there is an extra REX byte. If the is a hash and happens to be between -128 and 127 then there are three less bytes. So decoding from regs->ip - 0 isn't always going to give you the start of the instruction. > > > > + * je .Ltmp1 ; 2 bytes > > > + * ud2 ; <- addr > > > + * .Ltmp1: > > > + * > > > + * Both the type and the target address can be decoded from the > > > + * cmpl instruction. > > > + */ > > > + if (copy_from_kernel_nofault(buffer, (void *)regs->ip - 9, MAX_INSN_SIZE)) > > > + return; > > > + if (insn_decode_kernel(&insn, buffer)) > > > + return; > > > + if (insn.opcode.value != 0x81 || X86_MODRM_REG(insn.modrm.value) != 7) > > > + return; > > > > Since you are looking for a very specific opcode why bother > > calling insn_decode_kernel() - just check for the required (masked) > > byte values. > > Because I need to decode both the immediate value and the register > from that instruction. > > > > + > > > + *type = insn.immediate.value; > > > + > > > + offset = insn_get_modrm_rm_off(&insn, regs); > > > > Given the expected instruction, isn't that -6 ?? > > No, this is the register offset. Hmmm.... strange function name... > > > > + if (offset < 0) > > > + return; > > > + > > > + *target = *(unsigned long *)((void *)regs + offset); > > > > WTF is that calculating?? > > It's reading the register value from pt_regs. > > Sami David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel