From nobody Mon Feb 9 07:54:42 2026 Received: from mx0b-0024c301.pphosted.com (mx0b-0024c301.pphosted.com [148.163.153.153]) (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 035C23B8D56 for ; Thu, 15 Jan 2026 16:07:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.153.153 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768493247; cv=fail; b=CtGTyP1I9Ed9nKea9IskiRPEaQQXDyNcq+QKF5+i+htraXCYdeiEHEieAtC4V6nG2nRSYtFSAZe+A9IunT1OEVQP9Mi//XYz7CUyROCbi40lh+981CMFaB2WdMt0Vxkq4nCL3WUgl41npcJCxx+tiudR5ADJjwAmWBa0cCVLCXw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768493247; c=relaxed/simple; bh=U9qrqyXJodRQWsR/dGUZMoJoVqjP4zz3p+/UIwBYf4s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kOjjB+s+UTnlQ8sBP66F7SggncNFfOKjxTALwJJDleA1KKaIudOmVGzgzzey5S6RyBg8Z9sjpXej7W9GnagnJkHbtVp6M3NtDqoO+s64GP0MrJJKd7PmYWUoWHUCgR0ZGOi8vbu9zvCYMbhZUg6ervQbHTBXd/GIqKfNJAvEtng= 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=C2xHk8Fb; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=LFwYb6NS; arc=fail smtp.client-ip=148.163.153.153 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="C2xHk8Fb"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="LFwYb6NS" Received: from pps.filterd (m0101742.ppops.net [127.0.0.1]) by mx0a-0024c301.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60FFlYMt459372; Thu, 15 Jan 2026 09:58:37 -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=71upq2QYWAgfoSvhqwk+YTjDWSiFCFSS4hYMQNHQw2U=; b=C2xHk8FbyvIm FizaDyM34cVYPtkhAHWUGFWcbbkDuvRVEaelvzUDDbwNrx1TqjcQzTsU9+MeBd78 D+e/vTH9WtHCHvuPtv7Qjh4IxfAhh+mZVW82VKBmZKOOv/hDd6OtYDkZ2D7kdtdl zRGTPCno8zeVQHbX4eHuktvz2blEYCq/T8Y70IUPfhexwUhl5cpMp0xO1OMMvThK Dkv+Lfkl9Grxm4raNsToR5HpC2BBeh1bEoCuPEU/GECy8snN63gtWj5DoRerEAvx Myfh0mTxeNBAp1zsSTZYwNiaCP9jBodBexjzC31Obgui+hHcAiPriGMQUAavIA/r GeHSOuuCvA== Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11021127.outbound.protection.outlook.com [52.101.52.127]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4bq36kr0ut-4 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 15 Jan 2026 09:58:36 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f6dcihYBeMWMD/5LdptkOXCg+OdvdSsxLJCahNMopRFUmX4ByJTKENn29dNc8hA2af6RfJ3uaErah1ugXETU1pz0JCBhHsS8YhkKUG/OL1gTolh6eRSka0otFsROxz5y0Qn2ZwD9KEmA8D2/LOUUdOrcTabdcFj061SaJf6CAHvF4mslnlykSDTvq23x7E09QrHELd64uZtXiFXVxGnfaGEMg0Rs3oCxOqPT3cR+cz1SEwxtFJw9xAfcMq8RMlFaWL+iTwDexN3w3Ifbka292aFcA+fQ57Y+TP1lKLRCZbYDsLed1f1/84Vlqw4zsPDOx1UuGbMCZvJYevRJUiOPAQ== 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=71upq2QYWAgfoSvhqwk+YTjDWSiFCFSS4hYMQNHQw2U=; b=ZC5XFfK03CFZa+uK2IX3tD/tkryxWGRCp/j/sH0OyMTtx8xj9XABYSzYRBBsEo8WaDR+ff1gcECf6GFyEJ1tOqhDdTb376Bl1dpcEbjbtbT3Y2iB3bYPA1S/Qv0cL7k479JprIF0MZSMMTt0ZlVBzVPotkpo286MkQmoTJIHHwfiVMSBa4biYgc8adgaZXMCMUOvoJdEAw2lj7LuoZ6hMjIJrMybsm5k/NAM00xMHEmGSgLvEltO4SUVbllnMbZ8cZwFNds/CdBbmPktf5FCwjKDTVcEkhHn/yqkAzBW/zw9ZnJ2+M0Q25eiB/DR31m+iGJ+AG+hyU105NXmct3obw== 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=71upq2QYWAgfoSvhqwk+YTjDWSiFCFSS4hYMQNHQw2U=; b=LFwYb6NSpEJxWCtfHEI8kE8eXFccDhMZ8K8UHp1iHA4ao6Yz/DQbeAVz9dT6vxcKpPuaJrAOtaKHYkD4u9Qn6CyYX6jOF1mRfOPcGFQPJQmijzg2U/XRuT8dQisnBmIBT9XaWJrSynCMT3DRQqU++PYplpypnh8Qk7dVDsZRc7U= Received: from DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) by SA1PR11MB8811.namprd11.prod.outlook.com (2603:10b6:806:467::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 15:58:34 +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.9520.005; Thu, 15 Jan 2026 15:58:34 +0000 From: =?UTF-8?q?Damien=20Ri=C3=A9gel?= To: greybus-dev@lists.linaro.org, Johan Hovold , Alex Elder , Greg Kroah-Hartman , linux-kernel@vger.kernel.org Cc: Silicon Labs Kernel Team , =?UTF-8?q?Damien=20Ri=C3=A9gel?= Subject: [PATCH v2 03/14] greybus: cpc: use socket buffers instead of gb_message in TX path Date: Thu, 15 Jan 2026 10:57:56 -0500 Message-ID: <20260115155808.36102-4-damien.riegel@silabs.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260115155808.36102-1-damien.riegel@silabs.com> References: <20260115155808.36102-1-damien.riegel@silabs.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQZPR01CA0025.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:86::22) 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_|SA1PR11MB8811:EE_ X-MS-Office365-Filtering-Correlation-Id: b3535f02-1300-4e3a-4cc4-08de544eefa1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MUF6MFNEY1o2OWY1T2x6NkNJNkpWamhHYUpid0grYkdScThURnlFTEVHSDh1?= =?utf-8?B?elpJZHFpWnJqMG00K2dYcGVScWdpV0VSOW1ERkxrQit5V2VMdGNHRWZqRnpk?= =?utf-8?B?VXl0a3NtbmpZS1h1NDYzVng5azR4WUd0a0hCSzlSL2pBWTBDejJtOXJ2QWtD?= =?utf-8?B?TzY3eEphbVMvcHRXYXFFdE1nREY1VHhOMUFudm1rSFN1T2R3RmdMOUZUREE3?= =?utf-8?B?NExkQ0ZzL3EwQnhObW1wa3k3MXdLb0NZelpHNDhSWEduVWVndVd1dDRaN2dP?= =?utf-8?B?SjF5RWZvWkxlVG5IdUdOclZka3ZMWmJnNW03UzAwQ3Q5bDN2Yk1tNnNFcGdJ?= =?utf-8?B?WU1lK3JjMG91ZGF2SmFPSisxWVEvNGtJc092V2Q5czlHOXBqY1BvYk5pelJy?= =?utf-8?B?NUc4QzA5Um9DS0ZPcFBTVDZHTWg1NlNCckp6b0NzU01tcEtYZDZ5eElYT29Q?= =?utf-8?B?d0tVVVNoZWc0OFZqY1hMdm5YUTgzZW0vYTdlT2dlNlRDY0tEeGM5TDNPZHdL?= =?utf-8?B?bklaM05vY0hLQ3c5RVd5ZDZ3bHRnbXl0YkR2MWtiY1gxTFN1R210N0pKTmpj?= =?utf-8?B?QU83YXovQjd0dmUxekFIdHAyaU15b3ZUVDRGem4xTEg5VS8xZkxyZ21LUkhV?= =?utf-8?B?MFV2cU4zWDNIS3pxaGVxRE82VVBLUG5wbEFyUktvRkEwUlJqZ3hQRm5aNW5P?= =?utf-8?B?TDBadyttZnhHMC81d0paQnFPRWNGdmlqZzVqTlZIbzhyQ3dsOGc3QmJDMXRB?= =?utf-8?B?T1hUeUQ2V1ZBekNOYWkvWEs5eGMxbjFLZGlUR0ZvRjEwZ2pQck5SUzlPSkFZ?= =?utf-8?B?clRjdFJFMEZYekFnMGNIa2IzK2NUbi9taGxLUnhBclEza3Y2RThvbERwRTBh?= =?utf-8?B?ZStxR2tvcW9GUlBLYVVWTGZXNnBBc2w0aGl5S1pud1dnT3ZOaTkxMzdORXo1?= =?utf-8?B?eks5M0o3bHhqdGYyZnFWaVUrMGxSUHBFVjIzOE90RERMa0hxUkhhOU8va05x?= =?utf-8?B?OUdibHMyL0I4KzJkTVpabWcrUU1tWno4QVpkM1MwVno2ZWkzK0l4QjZuY0Rx?= =?utf-8?B?YlNtSjc0TFlRczUwaTJib3NlV3hteTJmQitmcVdYS0VTT3hscUlMWDlZV05j?= =?utf-8?B?Y2RXYjFhZlkvaEZ1Z2RMOTJCMzkzL0VuZENkYWJ2VThob1F4NGF1TndXYWVQ?= =?utf-8?B?bnRrdW5aczBnT2ZXQ0xBL2dmb3RlTmtYWGcweDJMMVJOdFRUQi9nS3A4Z1lh?= =?utf-8?B?bGt5OHNtQ1RPSGxzOHNKaGFCZU9qdW1QNnpPdUI1cHc2elIxb1JxSzR2aWN1?= =?utf-8?B?S0VBdlZFM0wvbFpRK1R3dTdVUC93L0JEK3YrTm0wM2FYM3hmQXgxenNaQjlz?= =?utf-8?B?ZnJXODMvbDRyM0RXSzVqRUFkaG5xMkZrdzVJZkMyYTVXQ3hWeUpFc011Z1hT?= =?utf-8?B?UnBRQkUxblNacUxzL3BZNkczcmt4Vk4zVm1sd0tkeFhXOHpid3RnTTJGWU5o?= =?utf-8?B?UFRCaFFaUnN3LzgveThwTGZnM0hQYk9XSXczTm56eWxwOWlsLzJFQmlRRUp5?= =?utf-8?B?NktjalZqY1BCSDAya3hHNTVPVCtHU3FpUWM0RkltMEhIMGpuM3dTcEJwdlBX?= =?utf-8?B?QldzVHo2N1Vpb2NoWVBWYkIyWGRud1lGSXBvcEVpT1J3WHY3aWczcThJWUl2?= =?utf-8?B?RzA1QVNoZUEyYmlOVDgrTGI4TWtZRHJ6WVVPWU85R0hQWm5hdVV4dWt3QXE2?= =?utf-8?B?KzMrOTJvMnZBK2c4MTZ0SGNVamtHNjNyYmJIaUxyRFQ3NG5wNm4rR3lqZGRB?= =?utf-8?B?RmtCOE16L3M1bTd4UUE3bkl0VFVEY0Vpa1VLUTNLU1Bmcmx3cEc1WWFuR0VL?= =?utf-8?B?emZLK250azFOVjNnaXlxVzFEMjFSdnhTdElUWmQrcHdqajhXY254K29RUW9q?= =?utf-8?B?U3lnZEk2TW5UVW9IRGZidVdxYnZPK3k2a0lkMStWd0UxdUpWeEpGcXNTWWNi?= =?utf-8?B?WlZGSGRyTkdjOVptRG90OFhzbFdXUE5kdHB6SnJqSlZSckFkMDE3cTBTbEZ6?= =?utf-8?B?SHYwWllpaWJRODNJRWo0R1VFU3kzQVc4YXhwV3lhTW5YTWFvRmZqTGxaVXA5?= =?utf-8?B?bWp1b3pQejRvSFQ0eWFqbmRJZmpZK3diNHJjUkxEWHBjSm1vUFdSYzZvbkwz?= =?utf-8?Q?x+HvbTLOJuSAekoQDmJ6aQA=3D?= 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)(52116014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L3hNcmkxdTZSU3I1OTlZd3hBcXVHaEtaQkk4alZ4UkROM2UzNnZsYnp5S2NI?= =?utf-8?B?V3hZTTVJRGZQcU4xMXE3MFdvT2llajV1NERpOC9hY1pyVTBYeENRVS9zU0Ji?= =?utf-8?B?OEV5M0Z0RzE1WEloU3k4NXg2MkRmRmZPWjRiOHM3UHJTVCt5QWd5TCtScmdz?= =?utf-8?B?TzdJaHhQOGxkdFBoMTdXZFFTTXlmcDZhZXdXZlFJeWl5L2NoMmJGUE5VdmY4?= =?utf-8?B?N0VLYkNtcXlLZyttMHp5ZmV3UytoV2hLTUdmSFZaRm1yUWNsVVl6b003djZL?= =?utf-8?B?L09XWDFlYzIxSkdrcmRvNEdrNCszUlFUWjBXeG9LVkV0QUE3dU9QM0M1dGRP?= =?utf-8?B?MXRxWHl0MUpqK3h2NTVtQ1VtdDh0emFRaTlVb1BZeFZEK3NUamVBa2VqbDlO?= =?utf-8?B?OVNFRGJ2VUUvRlBvWWtzTkNuRENIQUw0OUsrRmMxSVRrU0FQZys2WU9iYndP?= =?utf-8?B?ZDlVY0N4VXVoSGVUWTNmTXBKRU41N2hURDk1VHpoT0s0T0hHdXVFYm5EcUpL?= =?utf-8?B?MlZyTFVzaCt4OStBMURCNkxBb0kvWmIxeFBUWWR6aEdMbVo1RXFrUFp5Mzls?= =?utf-8?B?OXlhTXhCUmJEclNOR1dnWVdaYmwrc0tiUldPRU5Vb0kwVVkwbGNHQktQR0Ir?= =?utf-8?B?YzAvQnM5SnpUTS9YTjFpSi9ueDliTGZqNWNiVWtoUXNIWEZjZjBWRTVMUVRI?= =?utf-8?B?Y1JYRkhpaDkrSlRUZDlRcDd1ZlRiRWYzSVBzbjFLYjlNRFQrcWMyMUNUdElv?= =?utf-8?B?NTA3bERBdGpySVBWY2tsOWVPNjZCdE9pd1htcU9GL0lrM29IUWFDcXEzWkJX?= =?utf-8?B?aWQxNmdocGY4YTVDOW5haXJ3ZjBvRjg2L3Y1REs0Nm0vS0RTZ0dRR0pFdld2?= =?utf-8?B?N3ladkdwbUhObXNmUGk5SXZrRzVvWHRvaUhNc2JkNndvS1lBc3ZsVWxEdlk4?= =?utf-8?B?aUFrRW12VGlLZFpBdkl6aklvV1pFeWlPdzIxS2FvdnVDU0o2Y1JEeEdtNWgx?= =?utf-8?B?WHdqaUlYMWtCMEtjMjFkNUcyYXFJY2Y1aHM2UnlRb01NeXFVM21lSWgxVE9J?= =?utf-8?B?dTFFK2h3dG55RjJFbS81NTlrSDZqSFRETEZLR0swK2ZSSHB1TnZic21zdk1T?= =?utf-8?B?QTV0dWhQNlo4ZzhsMDdnek1DQ0VyNnlRelowaEFiVmswa1FxT29hcVdCTEYy?= =?utf-8?B?bDhxV1VPY0ZtWEhVa0c2cVRNbkhmSnZxYnZvVHVkZUJlK2dzb2s0RDBmZ3kv?= =?utf-8?B?cXBWTHdOSVZ0R0tiRlNQQk55aHdIcEVzQnk3WHVYNGoyalhKcWIxRXkrZnc5?= =?utf-8?B?SGhDQWNPMEJBSS82WnRLYkYzRlB3VHZRMmc3V2k1d0E3VHZIQ3psMzNVdVF5?= =?utf-8?B?V01XT2hDbzBzaHZ1bjVXaVVVa0FJOXdwYXFMWFgyTVdYcjdNMGpnckpUbG1C?= =?utf-8?B?eHVvZ0RjRTdUR0dMSFhQM1RUZXl1SGJHNUhmZjV4RWZXMVY0ellNaVpmd2RS?= =?utf-8?B?V2k3UXVodzBNMjFvYk5IZW10ZkZXK2pyZWc2cHRWakJuK0hlYWUwLytSYkV0?= =?utf-8?B?Qy9qRm1NMHZGOXBPd2RRWU10NGZiQmw3VCtoYld0VHlIQ1lNamxQYXlFV1RT?= =?utf-8?B?L2xaamlqZXZ0RDNncy9XdHFxWXFiVFQ1aFNvZjNBRjVLTGRPM2ZKZENMdDVB?= =?utf-8?B?RE1MVHZWUTJodE9IZWRWbnFtelVOT3RKTzUwclpBb0MvQ2dMNkIrcS8zN1pQ?= =?utf-8?B?VGRnbC8waHpYU3hjbU9TZ0R5ZGV5ZXJCdW02MCtSYlUxby8xM1kwQS8xQ2lJ?= =?utf-8?B?emh4dnBpOGJyMUtUa29INzhqN3ZxZXVCamFka09MQXJyY3drOHJ0SlhHMmNQ?= =?utf-8?B?UXZtTG9JWnhvZE9TRTVjMmNKRE1pUFNhK2F3ZExLVkJBS2RSNkkwNndNNzht?= =?utf-8?B?R2sxNU5ZRmFnbWRaZ2ZvZnBJVzg3WmFoMnUyWEVZYy9HbXFTSDJHNzZBS3o2?= =?utf-8?B?YmdIMzNnUjNpNUszR2pVMDUyV1g2N2p2UisxaThCYmpncHc1NVRxaHVGa1NR?= =?utf-8?B?ZVRENVM1Zjl3UEx0dUhqdW5sckN6Z2JoVndLS2p2djNaWGR1VTM5TXg5b3hp?= =?utf-8?B?OCtYRXhLRklFdEcwWEhYRkp3QVZNVUVmZ3JyT1hCajhyTWtabGx2R1d4d3dw?= =?utf-8?B?bEplYUNJRWk1Wk5uZEUzUVZ0Y3FDSWRkWk5xVjRjTmZ3RUl1VC9sT1JIY0M5?= =?utf-8?B?ZHBUaElyWTBMUHNPcE1XOEFSTVphSkJLZGtBdmtoZDdBYnNqc0Ywa1FVbmRr?= =?utf-8?B?bU5COVZsMW9GblFCVXM5a0RYQmJWM2F6MWtiRG11UlZUdzhFV1RGdz09?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3535f02-1300-4e3a-4cc4-08de544eefa1 X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB8205.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 15:58:33.9116 (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: 5Z50cYTs5QwsBR564MGXjbXn/oGeM8UQKPm/FaWrI0CIgDD+ScpoCPn3QofsT+pMp0/5/Gy9EEAE23CxlLysFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB8811 X-Proofpoint-GUID: 6qTsQJFI1zE-TW7KYEYqXCMz7-z_hS6S X-Authority-Analysis: v=2.4 cv=M6BA6iws c=1 sm=1 tr=0 ts=69690ead cx=c_pps a=+Bba5nuaRI/XgWxKvljhhQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA: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-Spam-Details-Enc: AW1haW4tMjYwMTE1MDEyMSBTYWx0ZWRfX6pOSS9wv5qT6 ZqwJeqbtRp9+FMbzTSDNSBkJkK1oSYmpAMd1QceR1vMRP3Ib8nCrh/kldCMOLhhWGTohqTqzAxI CdHi4+c9MHOgrNndw5E6N8FY/0K9YVA+CHVgR/XbeB6vfA+KI0ihsVGTMoREdRhV/yWQlvnDC0v 9iwyAlul5ooKkgAk1++25VJ5RuGkg9TDSO2YHqeU2snIeRA9Vq7t3mMkV+z56agZ10ViOsgupUI kSYi9IiM96DbVpk1PtBVS/BhvAdaIlxExz2KkZlmRTl10XTiKaiQ8GV8jeB7dJVa9C9mV/8dW4z TUZBPgk2uPOG2PyljxWTirvfuBp0gJRbaEI0FThHGhn3Jy4CU/6/Yz2EG3HVfVuz9tzUfidhGqF BVYQ4bGzpCZt+jSdAwBU8GLKmjnwSNJHurZQOv7FR/iK9d6ST5RV8ZlN8jtxl1UOg3F6OQgKWjn UbQU3JLHRCtGLXYjWgg== X-Proofpoint-ORIG-GUID: 6qTsQJFI1zE-TW7KYEYqXCMz7-z_hS6S 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=2026-01-15_05,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 bulkscore=0 spamscore=0 adultscore=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601150121 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.52.0