From nobody Thu Apr 30 09:55:57 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11DBEC43334 for ; Fri, 1 Jul 2022 06:32:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235191AbiGAGce (ORCPT ); Fri, 1 Jul 2022 02:32:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234844AbiGAGcc (ORCPT ); Fri, 1 Jul 2022 02:32:32 -0400 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60060.outbound.protection.outlook.com [40.107.6.60]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7048E13F8A; Thu, 30 Jun 2022 23:32:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OXL4JQvI/ME5MBIsupCHG+63Ia3/Kx7jxrNMop54F+CaP6i186E81bSyeFX4uqqRz4n3rWZXnSXaPMISLQ5jC53f2E84kyB20ZW8iEvLPG7DX2iYJIeDR81w1W8jK5ETVdm8qd2LEBYlanFsNS96+3nH9tYBL2vud+23ZJjPOzgSxNyz01DLkb3X0GZ2KztMjme8pqcFez17KwT9USWzAYS6LB637INn9oWV/V+kOCsz6ES2dxiS9Nxjx9FmHWalqNeMOTu8Y74OB7bU5orCSq7oqcgj/EmBQBF45Loyk/EtPey2i8aQL5lllBLl+xnUh2PeujCuxdsFZ7ekpF1BjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pdLil5lCGYN5mbO0eAxBDpBC9HbtJa0frYjWZWy+ca4=; b=Ja08vwj1IxVhyQtJGutJVHWdYKkFXUr8i3ABLDerIjnXGUoLrEVVWuvZaTObSa6L9Id8PqSa3vfvEwwjjqbqmXTVI5ETdbkQUgPCa5NNnoN9vQPDp6F+GIvlNvPbB8+Sord3Wp/qJtuXkNjJKOCTEjYqxs9vtOVW1naAUoFGpW1bUmZIG0or1nUV5PbnJft7rjg/m38DrIe3ohtPmhf8ChijO1QfoTtWzCbS+dLlYcHpvwaV4q7ut/1R/FpuqZkPl32wTkUPGhJRsfQyx0wNZW867AKJNZy7JH3ThC0IpWxY3AcuTJtoKIIYDqoBffQejjasdeaB+rZei+EIA7FMSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pdLil5lCGYN5mbO0eAxBDpBC9HbtJa0frYjWZWy+ca4=; b=ahljCPV4d8wh7m25DzHE/Vfe1E6vmDYuax6Bzte5yXLNEXlAoXBnyKUnuDgAa7ULt3TjxVWy6YIK4ygLKb4VTDmIZ0cT+QJrR3LeIXtMxjiI11Wan2we++O6Qw4AE3B3GN6Aml2SnU2+NuN9LjHh9YK8b9zff7q5ekQiZ95r2ew= Received: from PAXPR04MB8304.eurprd04.prod.outlook.com (2603:10a6:102:1bc::10) by DBBPR04MB7577.eurprd04.prod.outlook.com (2603:10a6:10:206::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Fri, 1 Jul 2022 06:32:29 +0000 Received: from PAXPR04MB8304.eurprd04.prod.outlook.com ([fe80::6c24:a20:26bd:60df]) by PAXPR04MB8304.eurprd04.prod.outlook.com ([fe80::6c24:a20:26bd:60df%2]) with mapi id 15.20.5395.015; Fri, 1 Jul 2022 06:32:29 +0000 From: Zhipeng Wang To: Sami Tolvanen , Wolfram Sang , Kees Cook CC: "linux-i2c@vger.kernel.org" , LKML Subject: RE: [EXT] Re: [PATCH] i2c: core: Disable i2c_generic_scl_recovery callback checks with CFI Thread-Topic: [EXT] Re: [PATCH] i2c: core: Disable i2c_generic_scl_recovery callback checks with CFI Thread-Index: AQHYipisQEgXaD6RFU2HjOnVd/mFf61mx7cAgAFWe4CAAPK9YA== Date: Fri, 1 Jul 2022 06:32:29 +0000 Message-ID: References: <20220628024155.2135990-1-zhipeng.wang_1@nxp.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4176aa1c-1584-4e2b-b3df-08da5b2b78b0 x-ms-traffictypediagnostic: DBBPR04MB7577:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6Q64k7BuqytmkwZwxvCaboO2NlfSAes04jWWXWk/xQ6+VRiK2zxjxSiCYuIE6PqS5XixJVb8ucWL6HO7OjtkbLsoZspPXnC2oQyfSEj/Jlm/DlfYiAI3lJi7gjZyQqpVJL5pCHvhlcp2mG8W4J3hj9StzaCXyd9UwfBIUaNi8JEefNFpQVdGDeL1WPQSb5ChNomPiFTWoMa6GsYf8ipo9tOw++GWE1ri8gZ6jysa4BejXYLO9yua6LHGeBgLRl3BswEi+tckf1clx5aRX+Q9ZqkQTfQl1in5GcT6wsAiqhuvtmczxhlVN+kjun1g+mDssUoMv3q2rOZVdwr579U9V2vIil+v7HlhRfp3t0lAwIfFp8kuFBeNSNfk7C8LUIkCO2TALbFuEOgmUou/B44G7Tw6rTFmAeOJ+t8H0TBqAd8YkJIY/mydmuT8vIJjSxDmdWOE3Fm+RuxSi7EwvwZvIV7qpQjbSMNeoj5Fh5Wh1XC1r7agTXhC6vf7Mxtj38edQFTASS7NuByGP1R0t2gnMJEfzCm2JcPpXPhd95pFW7Y8mtdNyw3j1Cl3vhr2TSHd52PKp6ELlPaFenixFGAc2R27ib7lIzdDXFHpU1EfhqUMGZaZuDTfrmOjxMyBeFwJ05b8FQp+BHwKunLJBK81y+PGxj8SoS9CvOAt0hvZ0IJ9N6d/+RkVqeXkD5f0anCDuqS7I0//cYjLNySUbPkJM0ms1SXYYXFYsVrY4ZGlNbLr50UpTqOmorNPGOKz9U9Y+5HoJXejug5wn8xaK4j7ZwbOhWsKLLwnMuQtQVJYCWg1iji8ws3WfjhfjQZUSpuvYF7rcMj0o0OjZNavOX7q3flsm6AT6weYosdjsDgNVygP9c6YCPQcwXz7qjORs4DN x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8304.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(136003)(396003)(39860400002)(346002)(366004)(376002)(54906003)(122000001)(38070700005)(316002)(8676002)(38100700002)(66556008)(86362001)(66476007)(4326008)(66946007)(66446008)(64756008)(76116006)(55016003)(110136005)(2906002)(8936002)(5660300002)(52536014)(186003)(83380400001)(45080400002)(53546011)(966005)(9686003)(478600001)(26005)(71200400001)(6506007)(33656002)(41300700001)(7696005)(41533002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?dEVNblllYTNlUFp0UEdRTEQvcGo0dDk1ZXc3TUE1MWpkWG9ON05hUTI4L1BC?= =?gb2312?B?d25SRnNDWVpEMkc4ZFFtWm1wZGlBeTBaQmtuQTlqVVlpVW92UzcvVFZGajFV?= =?gb2312?B?SFh6QzNjaThEd2lxb1NkdjlRWVJJeHVWT08rYmg3NEg4Y2pCdTlOd3NTQ3o3?= =?gb2312?B?UTY4c3RWcUpBcThQaEpqK3NRMmdNZ3VrN1REQXdVeXFabFN1RXUxMUZCSzd1?= =?gb2312?B?amE4b3lKUjJaYldIQnlubld5d3JlUnB2dEZNSEt1NFlKOERXRUlaY0NMcStl?= =?gb2312?B?VlV5Qy9tTWVXTlVnVTMrNFVLeS8xTGdxb2R1WmtaalFlbWswSDZpTzdsWkdl?= =?gb2312?B?dytwVG9zbmFJNVp0UURpanFidzh4ZVo3R2o1a00yV0plTisvUVlJWHFJVjg4?= =?gb2312?B?YkpFRHZ0WTJkc2ZmbUhlWEFqR1ZRblJNOEhyWDEyNzRwNjFpbUhBclpnQUdT?= =?gb2312?B?UzM0QW0vUVZHTnlNRi94Vy9mSTNYQXZKdXdsa1kzSDByZFQ3WVoxZWhGajJO?= =?gb2312?B?SEZDaWQ4RjV2YWJGNm5BS2NzTWk5MDNiZWMwZERnK1NEQUZ5YlFtN3lLL3Fv?= =?gb2312?B?M1krQmVLb29hRlRvOFNuVlA0aGxGUll1MWNVRHhHV3Nybks5Vm4vRXRVMnRH?= =?gb2312?B?eHJoQUZKV1hpL0lDWU9pTkpzNVlmekVuMGMvaG4zM3FhNWR5YlREWjE1c2Fo?= =?gb2312?B?NVhML3ZQSW00VFY5c0had3VUWnlHNjhJbzNCbEZqUHlXdjhkL2NhMHFtZWdP?= =?gb2312?B?aDRENmo2c3VNaXc5VmVJUmtjR2VtTlllMXJzR2Z0S2RlZ2p4cnVHNmRIMU1i?= =?gb2312?B?N0FTdzV1N3FVU1VlcUdNdFNEeS93K083K0FjT1VmWWYwNGt5RmE1aXhIVjQ3?= =?gb2312?B?RjVCSWxncDVpbmh1aXBGZjI1UVpYWjg3b3hHYlFYSWxwSFNaM3hvUFNreDd4?= =?gb2312?B?SmoyRGNPZHhDL0FEWFdpa3V3eGt4eWRubGt6WWc5dlVCeXVONkQyZHlxYk5H?= =?gb2312?B?bWZPYmdCZHZXN0kwM0xsN0h2MFdCU1Y4YlpGQlpTS3UrZCtaYW1qbjc0bERK?= =?gb2312?B?NDZMRTJKSkQ3R2tNK2VJMkplcTZkZ0g4MEdKN0Rxcnl0WUMvQzhtUjg1eUJZ?= =?gb2312?B?NzR4aDcvZ2Uvd0E3bnV2WktZeVBXdWpFRXFvVTZOdUhCQnpUaTl2WDVPbkkr?= =?gb2312?B?V1owVVloSnBNcDlDRGtQeU54TUIrY2h6a0pEV255K2F1NHRreXdReWlINTcv?= =?gb2312?B?VWxleU0yVzgxdk11RStrTW01SEZQSjN5V2I4Szc4djhIOUpSOXVnRTJwTG9a?= =?gb2312?B?VHcwZUJsa3NCbnM4aThLVnVVeUM3WXZpaVgrbWE2SW5KQzNSNW8vbmtVa1Az?= =?gb2312?B?SEdadW4zbHhSQmZjSEVTbkVwSGpiZ0haUXZCajUwSE1JQTBlajZEK3p5clZh?= =?gb2312?B?OXM5MW0zREw3czVSWXV4RXM3MnJQanNCSGRFM1BkeHdsK01hamVNSW5oSlpp?= =?gb2312?B?RTF0bzhDZkptZGMyVXpJbHVHTVhXRUQ2TTlwakhxTkFuU0pUVjRxTFpydWJ3?= =?gb2312?B?ZDQzdkZQdjBiNit0Ym5IYzR5V1lqdUNDRUFUTVdQNU56dEVqcWVSbWdnSHJC?= =?gb2312?B?RGozR3JTejduTjlSMGhTZ0VJVkZIOW1Zam15aFlDeGZYN1ExVzQ2MWtmczAx?= =?gb2312?B?OWVteE10NVZNbzdnNThveGFQY1N3ZUpWOCtsZzdLb2oyamZJWHEvWkZDZndV?= =?gb2312?B?ZEh0OHJmYStVU2YvNWNiVzVjbFVkdmFKKzgyN0R1VmQ4Sm1KZEtEVGxqWGZs?= =?gb2312?B?SWJBTmcxQk5EdFBWVnVMSGRNUmc4SjA4clMyWG04Z2FIV2ppa29OdVJLd2pX?= =?gb2312?B?eit1L3RKbFJXM2tqaFZVY3MxdHB6Z3NHUUg4Qm15VVRydEJ3NkJ3a2pHYitF?= =?gb2312?B?TWNoODZzUWJJQVJ4ckkxY3czbDRLVG9ubFc3WHMyRjNScjFJVUJZS1IwYXNH?= =?gb2312?B?R3lyMUJKYll6OWZHTENRRERoVnlWNDBYUVdkUTM2YjFzV2RGREtuc0YySGNh?= =?gb2312?B?M2xRNFZ2RStPOGZITEFmc0xyL3M2OU9peWFocWVtRy9MVEd0Ujk1UGxSVS9o?= =?gb2312?Q?ymRHJwzZmNbwL8qjZKjrLxost?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8304.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4176aa1c-1584-4e2b-b3df-08da5b2b78b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2022 06:32:29.2289 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: AXADTxw9l7hqtYHYpUh9nqE30dfzwzX74+F+PWHR5kuEtQjmMGkhQm6JelCS7rL1jOFUPVboMG+KJjEvTjf/kw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7577 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Hi, I tested this change on kernel 5.15 and it works. Thanks. BRs, Zhipeng -----Original Message----- From: Sami Tolvanen =20 Sent: 2022=E5=B9=B46=E6=9C=8830=E6=97=A5 23:55 To: Wolfram Sang ; Zhipeng Wang ; K= ees Cook Cc: linux-i2c@vger.kernel.org; LKML Subject: [EXT] Re: [PATCH] i2c: core: Disable i2c_generic_scl_recovery call= back checks with CFI Caution: EXT Email On Wed, Jun 29, 2022 at 12:29 PM Wolfram Sang wrote: > > On Tue, Jun 28, 2022 at 10:41:55AM +0800, Zhipeng Wang wrote: > > CONFIG_CFI_CLANG breaks cross-module function address equality,=20 > > which breaks i2c_generic_scl_recovery as it compares a locally taken=20 > > function address to a one passed from a different module. Remove=20 > > these sanity checks for now. > > Can't we better fix a) the code or b) CFI? Yes, we're working on fixing CFI: https://eur01.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Flore.ke= rnel.org%2Flkml%2F20220610233513.1798771-1-samitolvanen%40google.com%2F&= ;data=3D05%7C01%7Czhipeng.wang_1%40nxp.com%7Cc9599657c9d64ae43bd108da5ab0eb= 0a%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637922013151312330%7CUnknow= n%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI= 6Mn0%3D%7C3000%7C%7C%7C&sdata=3DdjDZ8gNPGnIKz7DfX4w3psZf44zHnph7FflOLa%= 2F4Qnk%3D&reserved=3D0 In the meantime, the possible workarounds are all more or less hacky. Perhaps a slightly less intrusive alternative would be to add a __cficanoni= cal attribute to i2c_generic_scl_recovery and use the function_nocfi() macro when referencing it elsewhere? diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c inde= x d43db2c3876e..dda93c5471f0 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -197,6 +197,11 @@ static int i2c_generic_bus_free(struct i2c_adapter *ad= ap) #define RECOVERY_NDELAY 5000 #define RECOVERY_CLK_CNT 9 +#ifdef CONFIG_CFI_CLANG +#undef i2c_generic_scl_recovery +#endif + +__cficanonical int i2c_generic_scl_recovery(struct i2c_adapter *adap) { struct i2c_bus_recovery_info *bri =3D adap->bus_recovery_info; diff= --git a/include/linux/i2c.h b/include/linux/i2c.h index fbda5ada2afc..7310= cbdbd940 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -663,6 +663,10 @@ int i2c_recover_bus(struct i2c_adapter *adap); /* Generic recovery routines */ int i2c_generic_scl_recovery(struct i2c_adapter *adap); +#ifdef CONFIG_CFI_CLANG +#define i2c_generic_scl_recovery=20 +function_nocfi(i2c_generic_scl_recovery) +#endif + /** * struct i2c_adapter_quirks - describe flaws of an i2c adapter * @flags: see I2C_AQ_* for possible flags and read below Kees, any thoughts on the least terrible path forward here? Zhipeng, if you want to test this on an older kernel, please note that you'= ll also need to cherry-pick commit e6f3b3c9c109ed57230996cf4a4c1b8ae7e36a81. Sami