From nobody Thu Dec 18 03:41:01 2025 Received: from mx0a-0024c301.pphosted.com (mx0a-0024c301.pphosted.com [148.163.149.154]) (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 3FD4B42050 for ; Fri, 12 Dec 2025 16:31:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.149.154 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765557075; cv=fail; b=HkTV3878BuG5X/a3Sxgx7dxABOchScoIQusIrlPu7USxhp5mLcgvoZGmFh9PGyT52tv6RS/WX2G4OrJd63R4iHVhx8LAWqtLPhC85Cz5Fp6b+4hPuGGwE4XCZ3uh3Z4Girw/u962qZTmQb8gDmhqCVymtv/WyvjpCWUfeKt9IpE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765557075; c=relaxed/simple; bh=DbJdgyYwCSxNspeqa62Rt3KcsHAkHF0fz/hrnUeK1FQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Catj2V8KVhPmTRBhk9RzxqX0aQhjE9IHN7xrZw30/0rtZHq8i9TTCNH9X1oQlVg3y0e9VXztrM1wjNhZhxS8n3YaYaHY3lQhpJ2pgVPxmzsvKXzesQZIJ4bcN2k6u823Yjj/ZQDY6BEoiYq3I+MDyP94LxFDUdPboO3CABc8kSg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com; spf=pass smtp.mailfrom=silabs.com; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b=zOmZY6JL; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=bJVddc29; arc=fail smtp.client-ip=148.163.149.154 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=silabs.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=silabs.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=silabs.com header.i=@silabs.com header.b="zOmZY6JL"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="bJVddc29" Received: from pps.filterd (m0101743.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BC8WO7R3748684; Fri, 12 Dec 2025 10:13:27 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps12202023; bh=/vu99iSv7WNg4c3o8KjzIRRINo/BhiWALOiKHQ8sV9M=; b=zOmZY6JLQdJt ItX5HsaVximwVnsOfY5/LqGv/l7d+hMS6fye02OzfK1vL8lXheeenitEHNZy1x6+ 7oSQ67WywL7MYbNHJqf+7/1TDK35WtqluDqUnN7EvxCfAHHqutj2RPb4bC0WOy7F It8grFkWmmNfe5NwAcSJDQ+dwAT1uo5pzT+aw42kICS1O711PSdESeaB4QmbWhTr 0JZR8K2Dgws4s/gl9dXSkb3I6DGZBrCAHOTSkjXWtEW1HwuKyBNJFOkLOPQe/Y5D /fULuFJXFfzSI6NnDIWsMecIwOoiIa/a9ovw57dbz4Z3/0sI3eiMYYVt4xKqcqg+ QGbpVZmcKg== Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11021114.outbound.protection.outlook.com [52.101.52.114]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4ayht2mdee-3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 12 Dec 2025 10:13:26 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B44WFTcPFjAJGiu1dyLIe64Yv3HRlqWjTNPwbv1CELpLex6H0rQSlKvEh1afKQdDgCBeIKeV+YlatOdSWX0lQt81CUXP+0x5JtDAoEaDYEXM/tPqWNF0USkuKKm7PDvrvTUnaQoDGfGeNGdq4dysaBsLHwW+YN9xq+9kGtQthmKC1XHcW6pQgFd/xN3V7kRSJl71pzD8HomUAmGF8gjYifXAJP7YJ9XkrPo5QKj8JFosIOuKzVgkPUkD/eAeGZ2SRuI8Q70BEiMcwY1d99xoWpzQIVE68dRPZR2y9nzFSjeeLaJ/0PxBjtABbCvYcNwhexjXOlclHLYteAGJHj/AqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=/vu99iSv7WNg4c3o8KjzIRRINo/BhiWALOiKHQ8sV9M=; b=trFEsK6M5Fg0MFhS935XySaogrPO2rRDu4nwc5lCGhZyfmsH4qKZFnan0veJJZqoQQfR3RJeloCIjXvnaA/4/Xu684WVM3neVhUvW3dSwY6azyTylErIjNpH2QNY5Fpmgy2sslCTOpHPOgem2cuuuLqFJdQROdCUWAnYpMDPsD3qb53LzyH3LnVyAhkcj/VVq388wVQGHxXiw1PA4hKMINfnkyDFr1dLb+vCUfNhbCZJ48Z3xVSfmMAJWqO+XLjb7vm/SS9YLMait6Lp0YBEYM4Ydw2EfOgurF2DsYGR2BNDytjSa2csCAbEguGLrqo81R9ZwmSIwjCFXoEDPOTeLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/vu99iSv7WNg4c3o8KjzIRRINo/BhiWALOiKHQ8sV9M=; b=bJVddc29gL/6aLHWSh3GzQ0wA/EcypTGNNJUUeJunGssk6Jctj6iUReFjJbeEP7kvHVw042vtGtl+ZoEta/+WtdvNU6BW8RoYLGHQ35ivElXhvsulXRrGlQxU1mQxdHEErjXOmpj+yhOlwoIMKv4uaY0uBhb1umNrRTWoQm8vBQ= Received: from DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) by MN0PR11MB6111.namprd11.prod.outlook.com (2603:10b6:208:3cd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Fri, 12 Dec 2025 16:13:23 +0000 Received: from DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::2de6:bc88:2af7:3583]) by DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::2de6:bc88:2af7:3583%3]) with mapi id 15.20.9412.005; Fri, 12 Dec 2025 16:13:23 +0000 From: =?UTF-8?q?Damien=20Ri=C3=A9gel?= To: greybus-dev@lists.linaro.org Cc: linux-kernel@vger.kernel.org, Johan Hovold , Alex Elder , Greg Kroah-Hartman , Silicon Labs Kernel Team , =?UTF-8?q?Damien=20Ri=C3=A9gel?= Subject: [PATCH 03/14] greybus: cpc: use socket buffers instead of gb_message in TX path Date: Fri, 12 Dec 2025 11:12:57 -0500 Message-ID: <20251212161308.25678-4-damien.riegel@silabs.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20251212161308.25678-1-damien.riegel@silabs.com> References: <20251212161308.25678-1-damien.riegel@silabs.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQZPR01CA0176.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:8b::25) To DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR11MB8205:EE_|MN0PR11MB6111:EE_ X-MS-Office365-Filtering-Correlation-Id: 64452895-01cb-4952-6a32-08de39995fea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|366016|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?K2VKUitLNkg0VU9SVlAraWgzTVNqVFRvV1pMS2ZqTWZmUEZSUjloM0ZpN2VV?= =?utf-8?B?Y1NRdFlLMGhmblYxM2JKR1U5Zmh0UGJpeGN6NS9odDZVVjk0Y3prNTBhVnRa?= =?utf-8?B?d0V0dDhCdXRNaUZKVi9IVGtHWXJxRXprK1R2bU96Qm9iTkhlVU8wOHE1TTZ6?= =?utf-8?B?U3lVUUovc1BqUGpWaWR5SmF2ajRmdFZzdGxmb21ZQWVSZ3gzUGY3MUlaRVFq?= =?utf-8?B?RENwZGYwaUx6ajhYS0RHdXZXWEw1YUVSWndhbFVCQWJPazl3WWpkeDM2U2p3?= =?utf-8?B?MVozbGZQalJNYkQ0MEU0cmZOL1lVQmZnd1krZkdRM2xBSldZZUxJM1g2cWlV?= =?utf-8?B?VWNwMDlqMVlXcTlyMEFDU05HdGRDaUNhUzd1WXYwMHN3cjYzRzJLbjZVZlZ1?= =?utf-8?B?aGJmTVJtaTNkUUdxRCt3Q3UwUk9lbmRZSHVPRjR2Q3BaZm1Xa1ZlSkR2SHJR?= =?utf-8?B?SERtVU5wdFh4Wk9sUktHWmxPaENJRkNqeDgrWnZTcW5ackRqbjlOOVIvMU12?= =?utf-8?B?RTExcWFIei9pK05QL25nd3dsTk5jZnhnMzkxdGozdWt1VUROeXZKUlRiRXRy?= =?utf-8?B?K3BTL1VxNWxsZDhPNDZhNy90SW9mcXdWTG56QkR6YlBCQTQ4RnFQM1NXam1D?= =?utf-8?B?Sm5mcm5ubVFIWlpWVzhSNENlbzB0d1RtV1FHeEl6VDNsS0p6dGNPenRrMlhl?= =?utf-8?B?SmNlWWxzcjEyb2NwVkVGeDl2Yjcza1VwdjI5RGpUOGpwQVU0WkdwWU9CZi9Y?= =?utf-8?B?YThoUkV5b0lhQ3V5WHZyaGRLRGFLcnlJMXdFL01Nc2c3ZHlCTEFIRWZnQjB6?= =?utf-8?B?ODk2WGRjQ0E2Qk5jRFhBRFI2WnNhd0dJdHpOamlNWGFIcTBJNDJWZjBxMTNK?= =?utf-8?B?cmU0ZTRmTjh1dmpKUlY1WDdESHJmOE1IL01nWEdxb3BLUlFzTEQ5UmFYNU9H?= =?utf-8?B?WGlVaWNwb2NBUEt6QWV6N2s1NkJZNmcrbUdMTTh5b0Y1Ni94cEhLZ2lIc2FZ?= =?utf-8?B?OE8wWW56SUNKNDdDRlc1RkNCVGtQVlpBaS9ZWmxiS2ZDUk9DZmNaNjhpaVFN?= =?utf-8?B?YVRUUCtFSExyTVFUYk9iWVhvQWVhN1hwK1k3U2hwemVPaUhhdXVsMjdxQnJq?= =?utf-8?B?KzBjb2l0SXNISGlPczhKNGxMbTJPZUtYd3RkRGZWZE5RM002Y0RvNmxFR3BS?= =?utf-8?B?Mlh0cVlQSmhUWXFkalJIbHJNekZiMjdtbXdjN3lUQWVUdjBjdEpxa2JiMG4z?= =?utf-8?B?TmpVbU1CUzNWamhqNE9SdUpYdE9zZWpoKzNHdUZzNTZneHplckVFSWRYK0Uv?= =?utf-8?B?T3k4YXFhZnI0V3dRTnllSHVqR2MvbGtPaEZ2TmNnOTh1MUd3WEkzZEw3TEhv?= =?utf-8?B?V2RtdXRkUVdWMFdVNFZYQWhBVC9UeE1Qd0pzaFo5WkRFOVVUWWI4NFRjUlRD?= =?utf-8?B?SE1mRjJrbXZPa0ZwQTBKekphMG9IcXBGMi9CUStlOHZnTEpWU09Eek9mYlpv?= =?utf-8?B?WVNYWVVwQmp3LzVTdFJZNGlFZGgxMFJiL2pXSDVicGVOcktnRWtBb0JMTTRz?= =?utf-8?B?WE1Gd0ZyNXlXR2dFd1BCQzBHM1M2YjA5TUc0d29Sb2pPbDR5TGJINk1Mc3ZR?= =?utf-8?B?OW9SNjRVS3lQSmJCUldYVVgxQ0tYcUJ5eHNYNzY5SmJrdEh5U2tQb0g4Yk5t?= =?utf-8?B?R2czZE5lWlVpOThzNXhVKzhvcmljSDFGazNiSWdXMlgzakhTR1VsSEFrRFQv?= =?utf-8?B?a0xUYTNTeC9wRDBOcGgyeEV6S09RV0dZSGpZUUxYdTJmelBQUkpKS2NNazgr?= =?utf-8?B?b3M1a1l0ZVI0czZWQnc0L0JiWmx4K1VQN0ZydkZYNHduK0VjdGdjUitXTUlh?= =?utf-8?B?VWFtemtEajRHekhTeWR2QUtXM1dMMk5YMDZFZlFmSDV4R3hpRDgrUHkzMG1V?= =?utf-8?B?YmVLaGJmcU40N1NBWnhnMG1NM3hGYWhCdW40dkU3VzljWXVHV2M5cVNlTVhQ?= =?utf-8?B?dzdZRE5mR3NmZmJYelJWWFNOQnBhd21lZ3dIcmNaUWplVXRSS3o3NTZibExM?= =?utf-8?Q?FyvwfJ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB8205.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(366016)(376014)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZUJwRWF4TytmOUtyUFd2UWV0ZE40MjV4WFA3RmdoZjZzWXBpcFhUbzlHaS9Q?= =?utf-8?B?aVlLdGJKNjE3azhxNGdvYys3a3ZjSHZGWFQzL29PUFd6VkhuMnRyRmNXeFFM?= =?utf-8?B?cE9NMDRJUlFxdEQ4c1BmZWRic1M3QVg0SitNV1RsaXJsMkRsZ3JNa2o5Qy91?= =?utf-8?B?QnRySjNWOE83TlRvNm1waWdSWEJCVUxFMGpoUjBBMGN5S0lWQVRvVUFGbjJT?= =?utf-8?B?dVdWeEJ1V2xMVUNSdzh6VDI2YUR2bTRpMnllL3phaFI2TkExNkQvcXgzQ1FO?= =?utf-8?B?OTZnRDM0ampJVUVZYnp4SkhyZHZPUUtid2NxTGFXWTgwTXliNGxJN3VTMTBO?= =?utf-8?B?Y3hEbk5nUU5udzV2M1BIOFVTWktUSVFIb09pS3RPcXJ2eTVET3ZzcFBUZDRW?= =?utf-8?B?V3ZLN2RNVVlrak11Z2p5ODFkM2lIL216dCtuRlRPYU9sSE5KdUUySlVWSmhk?= =?utf-8?B?R3ExK2poc0RJZjlNVm9oSGNqUEdIaHJiRlhVQTNoV2NCMk9zQ2F0SGFZQ3gy?= =?utf-8?B?VXo3M0RUTnJ3NkV5RmUwMGNERHVUdXFsb0M4MEo1M0FkN1NlMUhqa1ZHTHJK?= =?utf-8?B?YlpsRjNtR0NGblphT3VUR2paU3l5K0g0bXdhOHZUN2k1RGV6QWIxTlk4YVlP?= =?utf-8?B?MTBQT21HQ25zR3VTRjdZTnZsTXRJQTdoaGVOeVNVOW5YS3VUQ2FyS1dIangz?= =?utf-8?B?Y20wcDlCZHZXRmlZZmNPTE9lZG55MnZyYk5KUmpYMUNHa2RkalMzSHBVZlBr?= =?utf-8?B?UWZ1RkhwbnVHQWg5dmpxdXJnWVlGNnd1SlYwOHhwakJsWVQxOTdqT1FSSnZo?= =?utf-8?B?SFQ5NkZLaDh1QUUyZFFkQTlKc2FHVjhPdUN5ZEp2WExYTDlZRUJVUUxNd1hp?= =?utf-8?B?U2k5SElBSVNuOFZqQ3U5a0t2US9qWG03LzlVaGs0ZElORVdqYmNsN1BURU1P?= =?utf-8?B?MFh2ckYrek5wSkY4NlJ6TnJFQmdzTVFkN1pvYTdNNWV2dDBlZ1AwclJWd1lV?= =?utf-8?B?NlJCM05SUTJpYmZ3aVJZNm8rbkZSSjZPNGYzOW00R0tTYXZoMXdERGpqYXQ4?= =?utf-8?B?b01CTFlSQjVYR0p0ajF1bDUrTkZLcHRoZHVLSkw1TlMwN215blpkNXkzWGtU?= =?utf-8?B?OFREajYxRXJ3UVVtd3VENnlwWEQ0VE9wQ0RGdjd1RzM3UC8wQUhXeklPUHJC?= =?utf-8?B?UUpuR3hXYjViSWs5YWpWVGtsUVA4YU1QemcwbUkvSElVNENMVWxwTVZGNHdi?= =?utf-8?B?OEJxOEx1bkptU2xPMGhRMTJ6STlPRkRYcm1yWVQ4bzNXaWxtWGtuWld4ZENW?= =?utf-8?B?Zmt6RGRpKzczdFRUcnFSZlZHa1BqWDh4eVpqNXQ2ODFrNWcyRWNGQVgyUXBJ?= =?utf-8?B?K1I1NWIzb2Jvdkl2alBGdVlkU2Z2VXNlZUd6VjJKaW84aktrRnFYVVhrVkgw?= =?utf-8?B?cUZDa3FoN2h6SDVhdndjTjFkekRSOURsOU0wQ1lCbm9DK095YXFBaytETG1N?= =?utf-8?B?YjlnNjhYMGtqTGUrdzY5SzhXRDNnRUhkNnJTQUo5bDNPRFl6blg0ZDZRckF4?= =?utf-8?B?RGt6b005c2pJelJDMDdaRHAyTVpTSXdUa2xFWDJxdG9LbW9jOU1vVEZhKzRK?= =?utf-8?B?dG96dk52MEhGSzdWNGs0SzVPUFFIajZYSzFvVkM5TnB6dEdES0hYem1CaG1a?= =?utf-8?B?ZWFUUW4rMWR5WVhEUG5kcUxTU01xbThQMWdMK0t4cDdGSmNxekh2NzRkbXRT?= =?utf-8?B?ck5HbjZiUUIrdXY5bmFsbWFzbWhhOHhkdzloTS9YaFFXVXlWSWc5QzJ1bVZY?= =?utf-8?B?WEJzLyswRStxME9FWnk3N2lLUzJrbldKWW5QOVZPSmNaTFZ5Qy9OVXRJeFVN?= =?utf-8?B?V2xTTGZqMStEL0h0OUc3OGpyNEVFbHV1eGdvYzBEbEhQRlYwU21rNVJJeThx?= =?utf-8?B?VXFndDc2YStXUmduWXllZnU4eXlsMkpCaVRnRWtGZ2JnS1hGaWRQQW1SV3BG?= =?utf-8?B?blhnbDZwczZMb3F3ZTcrYTBlZmFxVklFa3Q1U1J2V0NtcEh2ZmtZVGY5SWlV?= =?utf-8?B?aDhueVYvaU9jYllTbVNTb1M1QWtOVGFWNm9PWVgvcFVLVWg3TUwyanVSL1N6?= =?utf-8?Q?mcZoYKenDKLjHS1cpqGV/R3JK?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64452895-01cb-4952-6a32-08de39995fea X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB8205.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 16:13:23.7151 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PvGKiXDC1F9HLm7+RIT0Zn2c5/uYZ8jFogz5d0xDmy75wGK56W3/NiGFMLGt+v7wTISDtbrycuWpdomEfPT5cA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6111 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjEyMDEyOCBTYWx0ZWRfX2I3xDbcX/lpw 1FQZVG7abAjJD3u/Wd7Tup8i63/mdUW6MJDMlaBmfGsN1so/gZRZ2x83uzi5GtDXYLWRjoXMwxv ltawZ/efty3E++CzSQ2s2dJA5G6RQkQ7RWlGCm5kOF2squAY1YS+gp1NiuSEsnbYn4MhDj0lmbZ UrJr3QSlJNwdWw+IZq1Za7/HTtOLlD/3OJ0fOPLX6gHYkdYkvsF0+DMsSR/6g2JbSIGhj3Jq3xF fT0FwSHElbYA/tCRJRw0udrc4aZ96AMjWtdPObpx1hSRe5oBrIceik1lSZzCZ9GcSg9GVOyadMm CowWwtrzs25n12mM/h6/OE7rhgcxM0gaAWbsjTWX2RTfFvlFv3dlf5xPmwTyphlRVhTDzKFDS1i 8ZE2yqLCtcOWB+yOVfVU0tf2GLrdZg== X-Authority-Analysis: v=2.4 cv=BKy+bVQG c=1 sm=1 tr=0 ts=693c3f26 cx=c_pps a=iJ0/73tnBOJCmN8OdmQeBQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=M51BFTxLslgA:10 a=i1IsUcr2s-wA:10 a=VkNPw1HP01LnGYTKEx00:22 a=2AEO0YjSAAAA:8 a=UI2V7ICqOKO9W4d5kokA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: OG5WVbA6YhbsciL3kmfzmBc9nZBmLC6P X-Proofpoint-GUID: OG5WVbA6YhbsciL3kmfzmBc9nZBmLC6P X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-12_04,2025-12-11_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 suspectscore=0 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512120128 CPC comes with its own header, that is not yet implemented. Without skb, the CPC host device drivers have to get two pointers to get a full packet: one pointer to the CPC header and one pointer to the GB message. In order to make their implementations simpler, convert the GB message into an SKB. Signed-off-by: Damien Ri=C3=A9gel --- drivers/greybus/cpc/cpc.h | 11 +++++++++- drivers/greybus/cpc/cport.c | 11 ++++++++-- drivers/greybus/cpc/host.c | 41 ++++++++++++++++++++++++++++++++++--- drivers/greybus/cpc/host.h | 7 ++++--- 4 files changed, 61 insertions(+), 9 deletions(-) diff --git a/drivers/greybus/cpc/cpc.h b/drivers/greybus/cpc/cpc.h index 3915a7fbc4f..d9f8f60913a 100644 --- a/drivers/greybus/cpc/cpc.h +++ b/drivers/greybus/cpc/cpc.h @@ -24,6 +24,15 @@ struct cpc_cport { struct cpc_cport *cpc_cport_alloc(u16 cport_id, gfp_t gfp_mask); void cpc_cport_release(struct cpc_cport *cport); =20 -int cpc_cport_message_send(struct cpc_cport *cport, struct gb_message *mes= sage, gfp_t gfp_mask); +int cpc_cport_transmit(struct cpc_cport *cport, struct sk_buff *skb); + +struct cpc_skb_cb { + struct cpc_cport *cport; + + /* Keep track of the GB message the skb originates from */ + struct gb_message *gb_message; +}; + +#define CPC_SKB_CB(__skb) ((struct cpc_skb_cb *)&((__skb)->cb[0])) =20 #endif diff --git a/drivers/greybus/cpc/cport.c b/drivers/greybus/cpc/cport.c index 88bdb2f8182..ed0b8e8b0d7 100644 --- a/drivers/greybus/cpc/cport.c +++ b/drivers/greybus/cpc/cport.c @@ -31,7 +31,14 @@ void cpc_cport_release(struct cpc_cport *cport) kfree(cport); } =20 -int cpc_cport_message_send(struct cpc_cport *cport, struct gb_message *mes= sage, gfp_t gfp_mask) +/** + * cpc_cport_transmit() - Transmit skb over cport. + * @cport: cport. + * @skb: skb to be transmitted. + */ +int cpc_cport_transmit(struct cpc_cport *cport, struct sk_buff *skb) { - return cport->cpc_hd->driver->message_send(cport->cpc_hd, cport->id, mess= age, gfp_mask); + struct cpc_host_device *cpc_hd =3D cport->cpc_hd; + + return cpc_hd_send_skb(cpc_hd, skb); } diff --git a/drivers/greybus/cpc/host.c b/drivers/greybus/cpc/host.c index 98566ce7755..ee090dd3097 100644 --- a/drivers/greybus/cpc/host.c +++ b/drivers/greybus/cpc/host.c @@ -6,6 +6,7 @@ #include #include #include +#include =20 #include "cpc.h" #include "host.h" @@ -38,6 +39,8 @@ static int cpc_hd_message_send(struct cpc_host_device *cp= c_hd, u16 cport_id, struct gb_message *message, gfp_t gfp_mask) { struct cpc_cport *cport; + struct sk_buff *skb; + unsigned int size; =20 cport =3D cpc_hd_get_cport(cpc_hd, cport_id); if (!cport) { @@ -45,7 +48,18 @@ static int cpc_hd_message_send(struct cpc_host_device *c= pc_hd, u16 cport_id, return -EINVAL; } =20 - return cpc_cport_message_send(cport, message, gfp_mask); + size =3D sizeof(*message->header) + message->payload_size; + skb =3D alloc_skb(size, gfp_mask); + if (!skb) + return -ENOMEM; + + /* Header and payload are already contiguous in Greybus message */ + skb_put_data(skb, message->buffer, sizeof(*message->header) + message->pa= yload_size); + + CPC_SKB_CB(skb)->cport =3D cport; + CPC_SKB_CB(skb)->gb_message =3D message; + + return cpc_cport_transmit(cport, skb); } =20 static int cpc_hd_cport_allocate(struct cpc_host_device *cpc_hd, int cport= _id, unsigned long flags) @@ -143,8 +157,8 @@ struct cpc_host_device *cpc_hd_create(struct cpc_hd_dri= ver *driver, struct devic struct cpc_host_device *cpc_hd; struct gb_host_device *hd; =20 - if ((!driver->message_send) || (!driver->message_cancel)) { - dev_err(parent, "missing mandatory callbacks\n"); + if (!driver->transmit) { + dev_err(parent, "missing mandatory callback\n"); return ERR_PTR(-EINVAL); } =20 @@ -180,12 +194,33 @@ void cpc_hd_del(struct cpc_host_device *cpc_hd) } EXPORT_SYMBOL_GPL(cpc_hd_del); =20 +void cpc_hd_message_sent(struct sk_buff *skb, int status) +{ + struct cpc_host_device *cpc_hd =3D CPC_SKB_CB(skb)->cport->cpc_hd; + struct gb_host_device *hd =3D cpc_hd->gb_hd; + + greybus_message_sent(hd, CPC_SKB_CB(skb)->gb_message, status); +} +EXPORT_SYMBOL_GPL(cpc_hd_message_sent); + void cpc_hd_rcvd(struct cpc_host_device *cpc_hd, u16 cport_id, u8 *data, s= ize_t length) { greybus_data_rcvd(cpc_hd->gb_hd, cport_id, data, length); } EXPORT_SYMBOL_GPL(cpc_hd_rcvd); =20 +/** + * cpc_hd_send_skb() - Queue a socket buffer for transmission. + * @cpc_hd: Host device to send SKB over. + * @skb: SKB to send. + */ +int cpc_hd_send_skb(struct cpc_host_device *cpc_hd, struct sk_buff *skb) +{ + const struct cpc_hd_driver *drv =3D cpc_hd->driver; + + return drv->transmit(cpc_hd, skb); +} + MODULE_DESCRIPTION("Greybus over CPC"); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Silicon Laboratories, Inc."); diff --git a/drivers/greybus/cpc/host.h b/drivers/greybus/cpc/host.h index c3f2f56a939..191b5e394a6 100644 --- a/drivers/greybus/cpc/host.h +++ b/drivers/greybus/cpc/host.h @@ -18,9 +18,7 @@ struct cpc_cport; struct cpc_host_device; =20 struct cpc_hd_driver { - int (*message_send)(struct cpc_host_device *hd, u16 dest_cport_id, - struct gb_message *message, gfp_t gfp_mask); - void (*message_cancel)(struct gb_message *message); + int (*transmit)(struct cpc_host_device *hd, struct sk_buff *skb); }; =20 /** @@ -48,5 +46,8 @@ int cpc_hd_add(struct cpc_host_device *cpc_hd); void cpc_hd_put(struct cpc_host_device *cpc_hd); void cpc_hd_del(struct cpc_host_device *cpc_hd); void cpc_hd_rcvd(struct cpc_host_device *cpc_hd, u16 cport_id, u8 *data, s= ize_t length); +void cpc_hd_message_sent(struct sk_buff *skb, int status); + +int cpc_hd_send_skb(struct cpc_host_device *cpc_hd, struct sk_buff *skb); =20 #endif --=20 2.49.0