From nobody Sun Dec 14 12:18:14 2025 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 A3BAC33A027 for ; Fri, 14 Nov 2025 15:08:19 +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=1763132901; cv=fail; b=F23FITgogzFMokjP5swpaWJ8OkuDbFO8Dv1RxrVQ5bsKNoEj7eI8t8ScJNNBe8+Ie9JWOveK7aUDiJ2mQqFZ9R06Z98ShPrnOISIlDfT1TU3G9FKEj6xqjnEma9K2NF2jLzdfUJf71exSY+Of0VkM0yQGjmwPn+9Eulflo+GZzs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763132901; c=relaxed/simple; bh=7d2/tGGWFJ9X91SclHZZrN2jIiiNDz61LrQVSG6bhdk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lgEc5hQ1lCRVmIcxyngoKjMbGlTX53GIb15ZGwERX7qegoJZks/xJSlmIT1ZCle1yiFJUEMOhcr0hkiVLHIUl3Hr7Prdz5gWJ04pwbXyh0rSaKqm2VPW4bQqOi/ok483JMvsjp9ba8/zQns0CyZSbipeWAdxbDdDdyEIuy4sQJ4= 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=IoWOU+iM; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b=AgK1v6k9; 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="IoWOU+iM"; dkim=pass (1024-bit key) header.d=silabs.com header.i=@silabs.com header.b="AgK1v6k9" 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 5AECXOfD2440870; Fri, 14 Nov 2025 09:08:15 -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=jx65y8uNXwM6wrvnwtFMVQfh6aglACWZTYQL7z7qeLE=; b=IoWOU+iMoQZF TMYyN+mhHhA6XTJr/oHKi50hhJI8RUBbCEvRDNBHfi+LkPjS2uZXIktW+v8D2dS0 0FmYzVVZzePFuAc7gxnsoBdNJErWcP4c13es+RTbSePtAhcRJJimtCQIQsNiV9rQ 7IBiYMZ3ru4I3qWOr6L2KuPuEYn0WohWACqihRJDRKMoF1BbsrCMzRVQmDxeJmBQ o6FS5UULFvwZP2fGGs3gX8iIUmAFG7NUMOGayAi1BE+M6jr3R89IU7rRFbuGICpt 6+UI28j4ldaWiM67jY8qcP3lc5m0TDhX761sOfVFSZ67F5RLN/AsuNaSMftmVZmM KnKaXum+dQ== Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11021081.outbound.protection.outlook.com [52.101.62.81]) by mx0a-0024c301.pphosted.com (PPS) with ESMTPS id 4adr8fsm46-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 09:08:15 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZxospTj8zemikGNMm4TGDi3wOVuXcXBm7VonVtxV5q6b1QlmfrvOlNlCUETLOq+DgLfUADsEtZieMQFYHPzIyjBUNpvUzxgVA3zPfZdki4Zwu4v9y21RhfgvRO6hJQEaAG7f8ozlqIEANDKISUpHD40kAu0hlYejR7oUOQxJJARACz/w7YkhE6k/JJbFxIOqvD8SgKRsp+9S94dYxF/ssYcltvKBrGdtl6MtUB7737fUyM/OBb94jPxDZCSXP0lGmIS4/+Tv6OERgJMQdx/m51kDEr28/oTAWfRGlngB76f5FKIuFqca8wydcwHRtwzI9IeWorbLkAbhzdgVsA/3hw== 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=jx65y8uNXwM6wrvnwtFMVQfh6aglACWZTYQL7z7qeLE=; b=mgIJoAToSY0XKpUyhK/rFTwWJAolQ9VYUlyLFCsMY/w9dndAByuyTHNBKr7IOcQMuz+Yy43QZZa32k2dwm6fNnGtMc5ey34MVQOYtdhxlNIuPl+DDGBLKhurPsZyLxg/R41SCTh5+5+qmoOS3wRWU4v1qNYjMa+1Txt5Pz2RZyNcrg6LBVTluSfQuYIszrxJUVjKTT4r8FiJ6pjC24Ibu12tRbZ5Urybu+FA6KC9A4089KQwjSfdry7dkCIic3lcBrenLoy7CsanRZ0p95eVNj63ecOqp7cbTHi7fUZZGwr5ScgiuV2J8IyJFYC8G0WJG1r+GHQL4HxAGt8sRBC7yA== 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=jx65y8uNXwM6wrvnwtFMVQfh6aglACWZTYQL7z7qeLE=; b=AgK1v6k9mAa2LpZNpZHL8RcsgRJ5IlcTkI5ZqMi4RW4p1o/yetxmOlFYaincvMO/Niq0LZTqAg0nqxg+TNp/3cKE1RmpUH+ojSm3326XeYxX0dCFaI5UYSdMsJaT7RJLPRBnhOAPirYetqoTf32HnmIlpdocXpdp8tb97XNsFvw= Received: from DS0PR11MB8205.namprd11.prod.outlook.com (2603:10b6:8:162::17) by CH3PR11MB8774.namprd11.prod.outlook.com (2603:10b6:610:1cd::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 15:08:12 +0000 Received: from DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::c508:9b04:3351:524a]) by DS0PR11MB8205.namprd11.prod.outlook.com ([fe80::c508:9b04:3351:524a%5]) with mapi id 15.20.9320.018; Fri, 14 Nov 2025 15:08:12 +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: [RFC PATCH v2 03/12] greybus: cpc: use socket buffers instead of gb_message in TX path Date: Fri, 14 Nov 2025 10:07:29 -0500 Message-ID: <20251114150738.32426-4-damien.riegel@silabs.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20251114150738.32426-1-damien.riegel@silabs.com> References: <20251114150738.32426-1-damien.riegel@silabs.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA5P287CA0046.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:175::12) 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_|CH3PR11MB8774:EE_ X-MS-Office365-Filtering-Correlation-Id: b495c8e0-1e52-42c3-870c-08de238fa0ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?OUFQSUZlMXBMY2l6b3hnejlUcmIrZXNPMzBNYzRwQlpxR2MvRzUrZWk3WVpO?= =?utf-8?B?MVAzSHJOTGovTklFWm9HajJHZC93UFBWa3hlUVFqbm5FcXhLMVFoK2JMVEIx?= =?utf-8?B?anA3S0JzRkFuOFhqcmhxZ25vRlBNajZ6TXJPbktXMXZTSVhFRzRybDBvendz?= =?utf-8?B?L0dwdlN5QVA5K0VZWTNNOWpLNythZkpLYUlaNHdxNFhnVnlFekJxdzcwVTRE?= =?utf-8?B?NnhtTEVwM1IrSE04eWpYN21CN0RRN0VoVUFsYzNReEk0OEdnK0VTSVZrUDFV?= =?utf-8?B?MFNZR1luZHZKSzFibXNxWXBaRVNtRGk4VnpFSU9TdFRTaVFuc1phMVNIa2hB?= =?utf-8?B?UElGTW9qQ0FiMmp6bjYrNjFPTmFST1dYa3RWWlZvUG9pNXVlUXBqY3Y5MUZQ?= =?utf-8?B?SSsvMC9zRXliZHRIcVFuQ29IMjZKUzdKTFcyYnZzNXhzazVmY0l2V3laU3lz?= =?utf-8?B?bUpGaW91c0ZyRWRySXg2SWNQbzNuTjZTY1djYnNTaVFYRHNOOWFwNlZyT04v?= =?utf-8?B?blEvNzBGZUZPZ0NUSVh3RS9oZ0l3bStINzFXRERXVVhWRVVjSFlqR2hXbUNK?= =?utf-8?B?NFRleGc1TkduV2IxcVlhU2xZUDJLVU1VL1dzVnN0STF5SkE4SFBNMHVmTDg3?= =?utf-8?B?eHFSQ2Rwdis0TllKbFRyeXRzL1RxWXY0ZlZaaFlrYk5VNDZKRlFXSjQ3UDM1?= =?utf-8?B?U1ZPWHBGL2x0OW9yK0ZaZlFBbkNGM0lON3o5OHNmSHd5VUFTSmpnN3dvUk5w?= =?utf-8?B?UmVZKzJoTFE0UFVDSEYxc2gvenkxOElRcTB3MEl5N1lTTTZJeXcrdXZYUm95?= =?utf-8?B?VjRSdUJiL2NXL3lFcnMrcFFxNSs5Y3owZDRUWXhybkRlUHNHQkYrL3FVQVJw?= =?utf-8?B?V1NIWmc3OTdoeEx0bjAxV1hWR1JueTIrazZweGx5WTIvd1BoekdnSklGNFFS?= =?utf-8?B?QWQ5cjZWd2pOUkVISGY3SWkvQmw2R1J5RGszVUR4MER2NUt2NUdiQlE5TjRt?= =?utf-8?B?WnlEalp6M3RFdWhuUUY5TC8xZ3Y3MWRVaFdabGc1VW9MN0RsaSs5bmpwcjFZ?= =?utf-8?B?VHNRZFlmcTkwdjdFNllCSXVyRThKYUo0R0hpV0ZZRWd6THpRQzM4L1BOTko4?= =?utf-8?B?bFRmU2F4RytKS3JFWGduSEFqZVVlRHA4R1ZXTTRSMkdNVGI4Mm5hbkJwZUtq?= =?utf-8?B?bXhjanZWcEd6enM3UUZZS0J1Q3NQclprdXpMdm1wMStCcnJaMGNSTUwzVzlp?= =?utf-8?B?Z3Q5WVpFcmhzZXpSeWpZRnpmQUdJb1lKZHpBZUtzTyt0Z2JMQXR2UzZQSGww?= =?utf-8?B?YXdIODM4UXhZYjZSVTIwUnQ1RGg2dzJjV203VUwyM0QvbzBveTNSTzJFbnp1?= =?utf-8?B?dHpTaFg2Mk9EVGNSR3BVbGlIdS84S2UxWmtjVStnam5wb2psSHJNbmhCMEIw?= =?utf-8?B?UUtUcE95eWxPZmVoUDFjaHRQbXNkeXRtZXhxcmRrQTRvWnYrNjRyVU9HaCt3?= =?utf-8?B?UHQyZkRiNms0eHh0MXpXRi9pTXZHWDQrWFhjOFZEWEVCS2lDNlpud3Yvai8z?= =?utf-8?B?QWdaRGtVMVpDMUg3aXp0Zk5mSCtVODdXcEJneUw5czBPQ0JRaXpvQlJSZ0Jy?= =?utf-8?B?WlRYcmliTTdVUXQwTmFzUUhpZU0xbGdRK3FjMjI1NFhOZFgrMXdrd3RuMkND?= =?utf-8?B?NkhNN2tlR3RIOWY3UlVhSmtReW4wa1JiMFl5VWRTUUl3UGR5MUxIZEJBOFZX?= =?utf-8?B?QmxWMDNZSTBmM0dxaUVvczduUlFOWVIxSEtFUHBQS2djUUtIRWZNSk9kdG0v?= =?utf-8?B?WjR5djFucThuRU5Gc2RKQ3NIelJlUGVzdjlMOFBOOFhqTFArSDVtK0owNzdp?= =?utf-8?B?dnpyRE1lc2Fqc1F0VTkyOG40UTdpeEZqQ2tKOFhKcm1qcEpHbUYyWlJjelcv?= =?utf-8?B?bEp1RHRBQ2NIN2YxMmVTVVoxS0o3aVRIZXZGZlAxZXlnZlEzY2syeXM4MTYr?= =?utf-8?B?VTBzUjh1U01YZDBCTVc3NnRBOXhBUExJcytFOVRaQmFmMHplNDBER1lOYjdS?= =?utf-8?Q?y/1a6s?= 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)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TjRWdlZ5dHV5K0JzZ05BQU5qSzNpTXYzRE1KS01QTVIzTjB3MkxTRElUUERj?= =?utf-8?B?d3NvckdTRWRKVGd1RlQyNWZrbGdDVEg3WGR3d204eVFIY1I1eWNqcTZWNG00?= =?utf-8?B?VzVOOGpqUFE4Z1JIUG5maWFLQ3NraVVzbGVsandUc2dJVmxzdVlmeG10MkxR?= =?utf-8?B?aitGN0pZaVp6NnQyVGZOdENIdVBNQnQxcDMwR1l1SjZWcmg3Wm10eHJoMEI3?= =?utf-8?B?emwyVk9POUduWTRIQ2hMZThpb1pBZVgzc1dpVDdyMHBlTHZlaUFnZnorUzZO?= =?utf-8?B?eDlMV3duNUdDNk5xUm15SzkrZmFiTUxSNk9rM1MwZDk0YlMxQ2hNQVNVTFdq?= =?utf-8?B?UVVaMndlTnNIOUVxQVRIRlBHYy9YSnk2bncxRExuTm1oN1lVMjlzTEwrZEEz?= =?utf-8?B?U0dQUU5kNFB3Kzh1VFdCNXd4NEozSWIxOTZNVWZhNkhaamxkRGdWK0t3VHNi?= =?utf-8?B?ZUNzN0RJTVQyOEFXeEVXR1pTb0hmbC9aTFBTU0FUYlJ3a0ZiUG5vYzl0ekM2?= =?utf-8?B?N0NlTDlyOUhIZkVXL3ZjdEtjamdQYVZuL1E4anpXYnRudmxOZE5CSTFrRk0x?= =?utf-8?B?K2JrVVpsRlpOY09CdlFpSEZQUzkxUjlFZ2VwVzY3YnNjdkdoY2tOcmRnaGI2?= =?utf-8?B?bldLZVRCdHVzSHh4VmNEYXFXRXN5aXR2TFgxV2tLUklWL0Y5SGZyUTVZWkRU?= =?utf-8?B?QW54WkpaTVBzZldlS3YrMXR0QVZ4eStDdWNqdUhHZGdnV0k3dUlwaUxIZlhB?= =?utf-8?B?eUk5citFWFRPTU9JbGhiSGtVYnUrM0xLa2tRTEQ1cGZBNHU4eElGYmREcE1s?= =?utf-8?B?QzJJYTd5VU1QMVdTcExPY3JBUVZXRWgxd0swOWFHLzlqbW5jMUYydHg1SWo2?= =?utf-8?B?LysxV1lybXkyUXBkdk1qcUtHMy9URGRpWUk2eU11MEhOZXk4ME12cTB2emlq?= =?utf-8?B?azVodFQ4ditGcStQa2RaTzNRYUlQc0hoTTZDRlpDNDFJMHpXRXQ4cTdFR0Mz?= =?utf-8?B?NENYTWV1Mm00ZDViQXVTTW8zKzhIL1daWjJnVDRtN0RnRElEMGtDa0haZzZV?= =?utf-8?B?ckpFMUQzdXlnVGRLMEpxTTlVOEFBL3RlMHd2MHd3NWVaRjF3bGl6REYrbHgz?= =?utf-8?B?dGg4WWtsU0pqWHdSU3M3ZENHazIxcEJFK0NOQ0g1SzZ0d2RmT3MwT1ZtWDdr?= =?utf-8?B?ak80QUVkemx5RDNjSGtaK290N0djNkhFeHM2UXZ1OTlNVGwwQW1UdkNWNzQ4?= =?utf-8?B?ZVlnTVh5N0dXNlhZa2xFcWpKM2prR3FCQVhTdTltd2dvbGpkdFppdzVqSEdq?= =?utf-8?B?TkxvaVp2UW0xL3N4RkpieXV4bFpGOGVlZWY5VWNhTXR1dXJmL1hmNitHNVRP?= =?utf-8?B?ZjlLWUR0NjZtSmlQSFlsSFUrOE5UaEc0WnJCbW9hZmRSTE96THFsYjJwQkt6?= =?utf-8?B?cjBJU2orWVg3aHdlTlFWYXlaaldTb0dKKzRnNmx3cEFWV3kyRU5KdkR0NjVV?= =?utf-8?B?bjJkaCtEeW1uV3krdit4bUFuQmx3dFVaMnVpTXh3SkNrdDZoQ0ZqY2pWZzVv?= =?utf-8?B?SzJRY1ZTcWhFbjYxRHAxU3AwZTNDT0UxbEMxcGtlSjhOT3pwTi9xUUZERlpl?= =?utf-8?B?aWhEOWN0dUZCLzBjbkRyOTdYQ0FUcERmc0xDWDdFODcwMDNzcjZRLzQ2U0J0?= =?utf-8?B?bTBaS09FZjZMV3FEQjgzQ2RyUEtvVkJQdUNLYy9JR2RWZTdTZ1gzNFFzOFk1?= =?utf-8?B?REZqYU4xUjhVd1UvQ25QaHdyUDBCd1FvZHJVN2JvTUdaS1h1UDRqUVdXNWZP?= =?utf-8?B?NHJ6bG9uWTBsdThTc3RxMzNyNE1zV25YT012N3ZTMUJlK0F4VzRqY24veUVE?= =?utf-8?B?RmxUVFVrLzlLUWZKVkdLZjk0ZkI5ZnhGdmtlTGdSWktRS1FYaS9BdERHVGVV?= =?utf-8?B?UXN4MlIxRktFbFVZYlM3b3hGK2dLZXhKdFVONDJseHYxVEY0QlBZOWVaY3dK?= =?utf-8?B?emRhMVUrbkY4MUlKS1V5b1pWWklMU2JTZzdoSnd3dXFSZXNsUnphbk91QWxC?= =?utf-8?B?TDZOVEczbGtyS0x5ZDZHdEFZQnpROFVUK01ZYUlVYlptRnZrRHpQZ1NOcFBj?= =?utf-8?Q?mlk4LTulQYv++sxLtmcQMZgv1?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: b495c8e0-1e52-42c3-870c-08de238fa0ff X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB8205.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 15:08:12.5002 (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: RcM/eklVFRteZX49NiurP3+QUYTY1aDZiYS49+fJomKqkqUOGLgKWZmHCXvmlQ6ua+WTDufAHK3U2JjIsIKIOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8774 X-Proofpoint-ORIG-GUID: y8L6t2eTFt1ID7RsFFx7bGOsKzW8NpY4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE0MDEyMSBTYWx0ZWRfX+L2bo9VxnBva QT/L4pTkWBA7vk+FZTMRK3mE1RoutFCt8324vDZ9FXWW9f7rysjKSeMdO0DwdtdvT4si8V7URPy GhKlGqfNYW4krzvksG2QtJ7EwHC3xQLiZAQspKE64GqLMfEUz/CMxglJsqrTTs7HqYi2DWrpGi9 xHb1Ik3hrZiapa8sY7Gf6glRgxtareC2mZn+ko+N4UuzTgQw3iYQu1/qDqM7atqejyqtjD9mhvM wfgVy9IVtM+nsmm/of9vbQirPqKrsFUw7pIlr2OziC1Ipb2h5lNmuiqbfdZQlbYEfqFXgD0OT4V pii1CyF0VWXScR8Kec5OZqcivb9eX6m90bHxzqrvsAG27jgkz13OIkMJ0lIO4tKAoXE5PdL5qMg gAi2eYh1ArRKbIyD+p9oFN0Z3vp6lw== X-Authority-Analysis: v=2.4 cv=BYPVE7t2 c=1 sm=1 tr=0 ts=691745df cx=c_pps a=7ywGlyDdJUFJDTdbuALIzQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=M51BFTxLslgA:10 a=i1IsUcr2s-wA:10 a=VkNPw1HP01LnGYTKEx00:22 a=2AEO0YjSAAAA:8 a=UI2V7ICqOKO9W4d5kokA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-GUID: y8L6t2eTFt1ID7RsFFx7bGOsKzW8NpY4 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-11-14_04,2025-11-13_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 malwarescore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 priorityscore=1501 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511140121 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 85d02954307..7e032f6cf50 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 033ff7f0184..2ca938c2b48 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" @@ -39,6 +40,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) { @@ -46,7 +49,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) @@ -144,8 +158,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 @@ -181,12 +195,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 1c168cdd2bf..104d61e3bc5 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