From nobody Sat Feb 14 02:10:13 2026 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 2E99435CBD8 for ; Thu, 12 Feb 2026 15:11:17 +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=1770909079; cv=fail; b=U72ew5J8mDkG4HGuXPGq/FjX1KH4Y37533tX7ZxZOMOAXh98vtr5ZBaNrQEMp+RdtKMDXN7jpbAyWOSOc8rO6niWRYdrembTwRUrghE7nj51Yx7h5TlSYgsAP9AiYRhIcG1wDCiKhrDysD76yqaqPcaCddb3SFHl/CcAgdVTOQM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770909079; c=relaxed/simple; bh=cibXPvSR/cqvU8KzIO6arVscVUF5W0C+7G4sbxoOcho=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=AefuNkFsqVxioJAen8TFwbyWCOgRizCbnPJRv4MHkPlQU5I2YVQW9yvhBvyDqEWPbi3dtlowQv3b5m+f2TNVuRWKGfWT2+fj5BbLh2xapPP+hKg2lULGfcGVXahQhumtZCNqgYGWrc9Vn4yiAbVSZ6PQCcnuVgIt4dElSUka2Lw= 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=nWaFPePF; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=L7/xa1do; 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="nWaFPePF"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="L7/xa1do" 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 61C2Lwnd2678544; Thu, 12 Feb 2026 08:44:12 -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=aPf7r0pvtLQO4j6vrxILj6YISgls6NkTAAtXLXqgDdE=; b=nWaFPePFH5yl Lo0nQCN9G+2zMyfJBsq7LGO9WQb4XH3QixNLy3SPkbtpIbQ4pDcRTYY5J2MhZJJv QO0yGDkZw29/pOh/NPTuU3MqAcpqoSlbxSdDcPfpdkGReG8rwF02qpvEFzuDYj9W jBQyqcUkuUYe5bbfztdoNo4TH3yc71+6Z2Jf3K+hvisvsFwUCOdrFBhqZeeSjJdI YiNqJWX0oRRggNp14BzIYfZaC1AXnpowxKpVMRr+KwI1UZns4faeLrYPgtPp3C/v 05SvjLoqGCs9EnuYZu86Z+W16DC6aJ8eaxSvpRn9OiHTtin4kOyzPm+aRl6HaKRW 3igr9JLNJQ== Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11020096.outbound.protection.outlook.com [52.101.61.96]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4c92uysn4e-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 12 Feb 2026 08:44:11 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hvkK1Rm1T9/ILt2JMHtvHMYcB6uwJHAz8vXR6rwA051aLIwuVKT5YhwdD0qKlzLpflKFe4LGwWrZBqX0Cgzk3E3Hni+hZazdkQxD31sZJA1jz5oUrfODVciRPjfKiTKib9mJ7ZTnhlBYC6f1VzVwPQmKtNnjI0+w5WagFEp76TlLt8kpd3KC36xHiGQJhKjhVQgMRwDqlrbJNizH4ihb+zEpp5YXN3zg1JA2C5fMiksrq+r49Fk1jz/vXFNLpd9KQKr6IBFqTP91HXOmLB3/OK/LsxTn2bOwglHpbGWeQlJL4uKqHdoWNuIYCCT1g4LogeLfOBU/AbTwcHoIP3fzuA== 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=aPf7r0pvtLQO4j6vrxILj6YISgls6NkTAAtXLXqgDdE=; b=Q+7KRajSZSkIagHHZu8maLqYYxnY5ti1xK64eIW7dzS22P8JuzsQ1j1AESo7nKoIsiQoq1wL3AK0MJUrXjaTapOBG43+O8SLrcWxEIwMOxrNGTxQnXqyVJOn/3YK/UYz2XnYskeMRmGotRxqrRHK4XQ3WrzjmePL6jFJrFedgRkvLhRHwUS1MUO9pp9Ca6P8Uf0fC0SjnQFwyttCOFSARM8TBZm2b1p/sFD/mtmivH/wg0AZXdeA3jdiGKasL7lFNo6R1xIY9WVZv6qrB9Mk761H/uhPidKj7BgNZS0F+qvnl7l9dik3YUpu1c5+DIZQjWQC1aZULEnyZGe2YgQNQw== 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=aPf7r0pvtLQO4j6vrxILj6YISgls6NkTAAtXLXqgDdE=; b=L7/xa1doB+yGw9MCpGosZn+/NqM6GJLZbQkHwmpS5K4pkAcMCMnUYq1Z1bfdGUrGVtIwaNMV52k58qpcMtQzr0RPPWwBg+qF0Zod6dVPVbxvy05lRC4qwVKuGkG88hIpyYzaMsn0YO3Kc0brl5i0NnsZbt1Ydro2W7bwKIyMsVU= Received: from DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) by LV8PR11MB8486.namprd11.prod.outlook.com (2603:10b6:408:1e8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Thu, 12 Feb 2026 14:44:08 +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.9611.008; Thu, 12 Feb 2026 14:44:08 +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 v3 03/14] greybus: cpc: use socket buffers instead of gb_message in TX path Date: Thu, 12 Feb 2026 09:43:41 -0500 Message-ID: <20260212144352.93043-4-damien.riegel@silabs.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260212144352.93043-1-damien.riegel@silabs.com> References: <20260212144352.93043-1-damien.riegel@silabs.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQBPR0101CA0124.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:5::27) 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_|LV8PR11MB8486:EE_ X-MS-Office365-Filtering-Correlation-Id: a129b1ed-30a2-4675-f6da-08de6a452cca X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?S0ZITEpYcjVSMEI1N2p3Y0Y2dXNJYnlJaWhhSTJsQUFoeXhlellrQVdzNllM?= =?utf-8?B?V0JoSUxWdFI4RVJQMnBDVzYyejdiR0JFb3F1RlY1VHArT2R5ei9ka2U2WkVX?= =?utf-8?B?UXNNbktwVjBMYlFjYVBIY0srYjBSaERiT2FyYW90TWsvRHBFWlFXcW5Lb1N0?= =?utf-8?B?c3hlNTBRRDhXazZKWlc3L1BoajlsNCt2cEl1Tkh2Qk9UQlFaZFdEWEJmMjli?= =?utf-8?B?eGZUdnJZdzUwTUVSM29iM2t5ejQyaEZYZTdDVGNSajV4VzUyUFYxMEFsZ3Fi?= =?utf-8?B?dE16L21RSzBCZ2w2ZVhKS2hEZkJlaHhjWU90SURIRlJCRGRNTk1FdjdEc1c3?= =?utf-8?B?NGRKNUNsT0hhcmxWNUh5di9QUHBxd2k5WkR0L1kzMjBLaVd1TC9iK3lyN0lK?= =?utf-8?B?M1VLbTVYdWIxNlBsRE9PR1F2YUhibDVvVTV2TG1NNnJYQkY2L0FqcjhnM1dJ?= =?utf-8?B?eDBLWGlITWloMzFBbzdYWUhGbGQxUDdSTDZiNUN5emFRMWNGbUtLcGFIdzZ2?= =?utf-8?B?dkhQdDZlRTJWVUtMWEZIeUpVVis4V0pWSlNaVFVxenEzd2VHVTVTMkVqelhI?= =?utf-8?B?QjZYenU2S3BRSDFkRFZSQ01FSnM4WDk5SUpWSjRWWnpITTN5RGxVcFAvL1o2?= =?utf-8?B?c0NKVnh2OTV6bTFxeHVpU1l4WnphWjlKdjFKOTE1ai9ad1BLTTBGSEU5REcw?= =?utf-8?B?TmRoNnNmOGJyOGM0aXd3RG5LYWc5YTNtMTgyaGpnK3hmcGRCNmNJYVBPU0xt?= =?utf-8?B?aUhWMWMxNWlZN2g2eWFuMGVlMVVLVW5LMkIwYkx3Mkp6cUxZakRyVHgyenZL?= =?utf-8?B?emVBL0xraGJQVHVNb25uWDZVUGxDNHp2ejBDdjVweGdMNlIwaWliSVMrZjk0?= =?utf-8?B?SXRHbi9CcWtvRWl0SFlqK3hDdzZzN0JMTFBxay9sUk9sbTNWOGlqbkdNM3RY?= =?utf-8?B?ZllXT2FYQTlXRnYyZEdhZ3E4WjZkdHowdThpRGc0M1l1amswM2NBbm15alJ2?= =?utf-8?B?VDFadVdXZlk0bzlpblhlc2Y3NDNxODdJbkRIS05zV0FJSVUwb3c3blVwOWhG?= =?utf-8?B?MG9ONVAzalF6UTJDVVpwUVZLVnB5Ri82ckJzcWZMNUZWczRnd3laU2YzUkZB?= =?utf-8?B?L2R5YldPWG5vREYxLzE1TDM3ellEeURHSjQ0RVNmUjU0MXhSM1dNN0xVdkFt?= =?utf-8?B?U0pEZW1OVkxKVXdIWnByUE5rcWhhdGdNL0JET1QxQmVYTDY5TVVxSzhHTFc4?= =?utf-8?B?M0dLcUhjNCtGRWJKOGpoaTdWSmFuTXR6cFpDelE4bk1sNHhVa0dyV24zYmRS?= =?utf-8?B?R1paS1B1Rm1hWWJFSWFzMENqRlZXRHl4dDFDenJuNjl2bjd3T2JibXRjVUxS?= =?utf-8?B?YThEU0FMdzNja2Z0a0o2YkRDM1JmQ2o4SDF1SEcwaHBDU3ptazhjMFpGa3NG?= =?utf-8?B?TUQ2TnBoVzBrcUEzbmIxNmhLMmJZdUlpTUFLV05sRDV3ZmFqZWRycmRMRjBt?= =?utf-8?B?eHl4WlRsY0FzSTZ6YjVMT1ZWZlZYTG9Vc21RWnNpQkNrY1ZrQjd3ZHZXeWVl?= =?utf-8?B?M0F6STE0Snpya2Z2MzVtbU8zSktvOFF5VHdqSWxJQ0xtL2FjQVJQV3JPeERV?= =?utf-8?B?ZFhJQXN0enMzcWlBaUo1a3FVYndFSFloajhGR2VMZDhmaHBoMUEvNEhMRk8r?= =?utf-8?B?d0UyRXB0VUJrWHNMU01CYnFSM2RaOTBlUC9pdGFmRElLNDZMOFVEWlFZcmVn?= =?utf-8?B?SzJObkJXRWQzZWxuTzdXdVJmK216SVVVdzVvK0dWOXNhRmtNMVVhUHd4TXRF?= =?utf-8?B?NkIvYWdYb2ZqVDNzYjRWWHpLRkJpK1V2Rk1nbUlTKzltM0pScEc5U2hEd3VJ?= =?utf-8?B?bFhPOEREMWpianFkcGlmYzhjK3JuS1pUQTV6QkJnK2N1UVVtTWFaOUVRaWhw?= =?utf-8?B?bHY0WnlXaWhmbGRRTFYvVjJ0QktRYnE5VlZIMTR2NVhjeFJkbzdOUUJwRXlY?= =?utf-8?B?V3FpeWVsS05TcjBFTVhDcENRdjJIVzhNWW00TjQzZ1AyWFZjWUxLeTQ5ZFlN?= =?utf-8?B?eXg2VStJSndvN2E0Z0lPSEE1ZlorR0dTalRkbWgvMkhUSXR6ZEIyY0lEWlM1?= =?utf-8?B?M3BmT3F6MnBnVW90NHQ3QXV5ald3aWRTa2FTcmQydFVYVU5qbVBJRTV2UFpI?= =?utf-8?Q?ecpS4HMHCDc6kcFmLWJ1XxU=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)(366016)(52116014)(376014)(1800799024)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dC9NcjE5L0lEeWJzNEJ1Rm9vSUFOaFJRcE9XZEVVZG5IbVVvR2Yyd09VZkhB?= =?utf-8?B?blBNQUdUcGdTR29uUXFLTHAzYlRDc3JMc3J4OVdmZnpXOVVoZTREWENPRDVE?= =?utf-8?B?bWpUd0NIZTlraXJHOGpXaTl0aDdoeUR1QWNid2dhN1RueEFvM2ZMNkNRY1NQ?= =?utf-8?B?bXE3MjA3V2I3RitvTXdKWUNGbUU2YXNsbitqakxkWCszLzlLa0VlWVo5S0Mx?= =?utf-8?B?a0JLWk1uQllxS2hlRU9oMWtmeDJJbVdnMmdsMkI1TDgwaEI0SU84MTZLRXYy?= =?utf-8?B?anRRdmhUMUhpUkNhbDNTYTYvVk5ZQzRiMnBrcjdWbGtnV1AvYTVuZDVjdysv?= =?utf-8?B?eGExdmZIaURvbElzRTJUV2l0RVRmYmtzYnlscU5LZ0hiT2tsV1d3aDV5MEVJ?= =?utf-8?B?RGV1OThpZVI2bi84L2RPd3gzbXZtZCtIeGFySk8vZU5nbDh1UXU0TGhOZTRT?= =?utf-8?B?V3d6aStzbVN2bEJnanVaZUw5M1hsdWlNdUl5b1lYbm40MkZINkZtK2syOGtQ?= =?utf-8?B?QVFxdDZ3Ui82ZnZTeXVuSTlnU092TnEvMDhicms0OWgydGJnZ3JSOCtlOU1C?= =?utf-8?B?QzF4K0VjQ0JSejZsT3RlMno1ZlVZYWZYMENJelF5dk9BbU1ibEVrekZtMzd5?= =?utf-8?B?bjRkek5VUDExRTEyZm53WjdydC82WGhoL1RKUUd3SkNzbmUzdHRCdnNXeGxL?= =?utf-8?B?TkpxMlBuZG1jQ1FQMDE2Z0dPaWsxUkdJYkp4SVpTdUpYcC83UzdKNnczbnZU?= =?utf-8?B?K25XenV3YXFOU1pEeDVrdXowVnc3T1ozaDZucmNKdW9rNFVzaFdESW93V2lE?= =?utf-8?B?U2psVTluS3lHZmdLNFlQdkplV3doNE90bFZ1SzdRYng4OE1EdEdjalAwdnpN?= =?utf-8?B?Wk5yRnF5YjA3STVjTmZnS2RoUG91a1QzcURBaFpGTFlXMXNkZ1hLL0hwSFpP?= =?utf-8?B?aS8rQnArY1JmTmZJeHF2aVQ2TDF1U3kxbnFHZzFOYWs4VmtTeTBtZzFJa01M?= =?utf-8?B?S3hPT3BvYWQraElNTDdnVmdSWTVCaEdDVlNBV3RTNWdjOUdRZTNMN0pmRi9r?= =?utf-8?B?dEQyNVpiNmw2NTFrZ0wyTXR6NHFsQjdLNWJzRitqQk1RN1BMS3JTLzczMnQw?= =?utf-8?B?TkJBWXNhbWJkQkhxeTYvTGowNHBibzhoa3JPOERVdmoyQnE3YU9hYzFyajdl?= =?utf-8?B?SXhqbkNkWDZCNUFaaW9TWEplb2lJb3ByaHRaaU45RG85cHYyYmlSNG05WUQr?= =?utf-8?B?RDd0eVdPeEp0TFRTMXc4OWF5R2JOZlFVWjN3UHFRMlliYzFSMDdYb2QwMDIw?= =?utf-8?B?UkFxRHBxeXBoeGhNZHJVT2VmT0w5Zkhna25HenNmVTR4NENLVUVhY0MycEsr?= =?utf-8?B?d2lNTzRaU3RTT2FlQTVhZStkVlkzKzRxRGNGV0JiSmdrYnlYV1dhcTJUb0to?= =?utf-8?B?aHlPdkY0Nm00UHpqUkRVKzd1QU95RGJPMDI5Wno0eXREZmdiYi8yRksrWSs3?= =?utf-8?B?cXVuMjZRVnRhUUNnVDF6RXpmWUdwSit2SjJhdUx6OFI5YlFKZGljNTFLeXVQ?= =?utf-8?B?UVl5NnBhRWJoTExDL2xJWnBPNldyaVBNVEdEbzE1OUJLYkQxTUhxc2UyamMz?= =?utf-8?B?U1VtbGJ4N2RHWlMwdWszdDdjMHNLaGpGT1hpUXJyYjJ6NjBUNWhDS29UdTh0?= =?utf-8?B?Q1lET1AwT2ZXNmRZNTFIa0phcTJ6SWdzazhHUWc0ZjgzRFZxdmdzSVNMOHJW?= =?utf-8?B?QUh4V3h0TnozSGFuOXgzTURYTFBHaUIvSHBIMy9hTkVjR2t2NlNHckFIV29U?= =?utf-8?B?R1JHR1VGNklBK21xOVNmTFhUbHR1K0p2bDhVMXBacHRIaUFlZUVFNDVLcktV?= =?utf-8?B?dTJnQkYvYnFnZlM4cXR4L2pORmtLYjF6SVFWOTNVaFZIZVJ4OW1UYzFrQzBU?= =?utf-8?B?WjNsRTVONHNXVlc2NlZSMEhPV21rSVdxOEoyLzhPRUdBZHBDMmVYdHVrb1VW?= =?utf-8?B?S1gzbkdXOWVwdllkNXRXWUphQ0U4clI5aHdEYjArSmRtWFhmZWc1cHVzNUV1?= =?utf-8?B?WXQ1QUk4S3dGK2tTUEZNT1hnamI2anZMWk9sMnVZaHE2eVJJOWNjYmEvbkls?= =?utf-8?B?eWdnd2FibmN6RWxya0wvUkxKb0dlTGI0eUdhR1NCZUhxdncyNGFoTTJuOTJa?= =?utf-8?B?TzEwV0tVMllBRWxvdGxtU0h4TjF2TkY0MHJveFphY0UxdS9YV0NhZk1MMkJV?= =?utf-8?B?STZBcGdwSmhVY2puaFFxQXhGZmlxV0JZN0Nvam5DaHo4WjFEbHZoOGlReTU0?= =?utf-8?B?NDg2WG13cGRjVjc5OWlKSEY0S1JoWWN3bkNLQ2lvRmYzUVJTTWg1Zz09?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: a129b1ed-30a2-4675-f6da-08de6a452cca X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB8205.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:44:07.1115 (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: 05y13U2cn0wZC/D5ml4qc9Dyf6P8jTA/fjmLf72+/MsGRZgQGWZxRG6U78BEeyJQA5zcTLk8+F1HQMuTDxwTKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR11MB8486 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEyMDExMSBTYWx0ZWRfX6hnA65rMgK0O 9gU6/kccLIBE2ISfzSGrZEhv7NvEOhNQisEzZrzZpGoFQRkH7oaqXz4MPV/kEo3D5BUv+dc4fwk hngV4I4FX/9Nb8rEtBSzju1mnCx+AjSAasmwl2fZ0shlNJ/TWBnbc/jkIXTpPfmqG8fNHAXsKR9 66lj3gqCL4tSd/XWgRXIDObhgObW2h/E3iGV8YtKFkbTAFd4gDWVMDfWPenmtwN2/DQTxatfUtb VTouEQaswhFwabY3WNRGzmgJx8SAD7w7LI7AU/bbz/YJckmvNX6drZ1GbkKTc1sAQ56wE+/Fu5x VZgvLtFs8XVWHfGBnSHZrLkVBvULanjlnhEzFHDVSW5eG6JL+rrtk8ADZEVk9ihE3mh9QWxS8I+ u2mETFjX6rV0i5lc1QT+fF8mh2b5h5hM1pMjUsBYpBe9wZOncUhfVsmm18QMdQ27vw3YVBiwVdR PGvged2B6d4ig9OQ3og== X-Authority-Analysis: v=2.4 cv=DtRbOW/+ c=1 sm=1 tr=0 ts=698de73c cx=c_pps a=TvliyZNEFSK35vtP2Nadqg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=M51BFTxLslgA:10 a=i1IsUcr2s-wA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=2AEO0YjSAAAA:8 a=UI2V7ICqOKO9W4d5kokA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: bwWeoJVdo_77apd-QIEqZHrVgG5GEkPr X-Proofpoint-GUID: bwWeoJVdo_77apd-QIEqZHrVgG5GEkPr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_04,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602120111 CPC comes with its own header, whose support is added in a future commit of this series. 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 implementations simpler, convert the GB message into an SKB in the `message_send()` operation. That way, CPC internally works only with SKBs, and only convert back to GB messages when notifying Greybus core that a message has been transmitted or received. 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 3dda5b06590..a3acfc9bfca 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) @@ -149,8 +163,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 @@ -186,12 +200,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