Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2175201/?format=api
{ "id": 2175201, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2175201/?format=api", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/1.0/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20251217151609.3162665-5-den@valinux.co.jp>", "date": "2025-12-17T15:15:38", "name": "[RFC,v3,04/35] NTB: Add offset parameter to MW translation APIs", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "fd04dea062fad50f4708cc176f0dd3963b25f58e", "submitter": { "id": 91573, "url": "http://patchwork.ozlabs.org/api/1.0/people/91573/?format=api", "name": "Koichiro Den", "email": "den@valinux.co.jp" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20251217151609.3162665-5-den@valinux.co.jp/mbox/", "series": [ { "id": 485709, "url": "http://patchwork.ozlabs.org/api/1.0/series/485709/?format=api", "date": "2025-12-17T15:15:53", "name": "NTB transport backed by endpoint DW eDMA", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/485709/mbox/" } ], "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2175201/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-pci+bounces-43177-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.a=rsa-sha256 header.s=selector1 header.b=gkDNkU88;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-43177-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=\"gkDNkU88\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.74.52", "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=valinux.co.jp", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=valinux.co.jp;" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dWcz45tjBz1xty\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 02:24:16 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id ADA8130F228D\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 17 Dec 2025 15:16:58 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 03B2733F36D;\n\tWed, 17 Dec 2025 15:16:29 +0000 (UTC)", "from OS0P286CU010.outbound.protection.outlook.com\n (mail-japanwestazon11011052.outbound.protection.outlook.com [40.107.74.52])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id D572A327C16;\n\tWed, 17 Dec 2025 15:16:25 +0000 (UTC)", "from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:24c::11)\n by OS9P286MB4633.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2fc::12) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec\n 2025 15:16:17 +0000", "from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03]) by TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03%5]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025\n 15:16:17 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1765984588; cv=fail;\n b=JJTmVgRsGAlp0+Wj0gzOVUGq2W5aZDVtemfPlon/2KFm5+DoRwn4j7NO681VFwJbuHiHgtpwKf3k6aHDlqsQopyslH3RcK3ymX5pZbzPTaSOJ/SiFQCLQ0p6HWV7oRnlxPIbFDzKnv8sKB6vtuit/0ziWAwe3HjGEYi2JzfeG4c=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=sUDuSmnp2c0WNPCXSYFkp/keXu+jZtOEutVeOnZJ3wH23WBgJDorVKxqwWTRNp324HwQ3s5Xc3RRuef8TcYHLyXiDYaJcUW8fRKkOdNkB3K+s7Bd/zMJ6z5t7Yh91KM+df/tvYbWIjHB6cb1Dfa7+cc23ItK15KJ4yP5cDGUpGpOw5gEPQ0vW5DEV7A2ClLVRdc5Hm6JdQFlm6Oz4sQV/vVI0xszeayiYgb2H2Ag7UBPiGzDb+RlmUpO/m3jh/JuD71c+TLOx35C/a87F9ahe0TBzLm684mzBean+YRyotvCO+LbklLVGPuGk5665Kml5xdOYrvRPpl6UVfZcUstXQ==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1765984588; c=relaxed/simple;\n\tbh=2u3lyzFsEoriGSBKZFVhMcyrxqLnTLHLtKL/GpAejm0=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=Gw1rRwTXv9cQ22UQwwtYQuJlQ9flw8fEe/l0P66ZySDyEcHcimZ9397X4JS7CFlySPvpQoUcjGZ/wV7BVmKh+E+3Wgdddmv5BMnWvgn5MRF/mmIiKup6ueRB1ArWQeexLDTinVmyOwIYbBQ8dGo8uLAxm5yrk9+2ZqbEFkOMfcQ=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=e0PeFBjEMLUdkexj1/MJOCFfd1OFOpcl4uLb7EqfGkg=;\n b=rv+aQTaWHVLQHAtqvhLJNFHrY0LTFscDkbrKBiWbE0kI86WdcorQzZw3Bgm9vyo4vXfpLGz+UivdMRbSV4Yl0+jcRqzGtgIoUzUNUKkblrg5OCQWbzRjuTeXPCfEczuln/9O7nlPYuSSWPvbUdU/gvhchFmnjtZAeKBNSJUcui5cQWxAP9Q9QRLukp3a8kJbeWCEqXGrFVmaTPz9/ISp2fP2s8j4K1G8srQlpcuoiT8AMPQ2AR590fg/UB5K+L7RDmXZ6XjqvMPJBfphgr6tTlSAa+Wz23Ev30Fv3vSe+Tiw5fGanbaXk8RdVCH1n3SJJ+ipbUoCX3wAMpMixXeOSw==" ], "ARC-Authentication-Results": [ "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp;\n spf=pass smtp.mailfrom=valinux.co.jp;\n dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=gkDNkU88; arc=fail smtp.client-ip=40.107.74.52", "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=valinux.co.jp; dmarc=pass action=none\n header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=e0PeFBjEMLUdkexj1/MJOCFfd1OFOpcl4uLb7EqfGkg=;\n b=gkDNkU8860YgprETxvbd4qJXUnfzJxNUkvH/cVJOcPw7FULUFynfGRaUAC3eSSiACPIpgMto+veGSV0RxcLHuGINtl4f7eZvgSJiv7XyB6/QbNy18ieqLfokZfafX2XvChYJOGIUC9VD0h5SRWoD3NYFqY4DbZAhlWfwPdvUrcU=", "From": "Koichiro Den <den@valinux.co.jp>", "To": "Frank.Li@nxp.com,\n\tdave.jiang@intel.com,\n\tntb@lists.linux.dev,\n\tlinux-pci@vger.kernel.org,\n\tdmaengine@vger.kernel.org,\n\tlinux-renesas-soc@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org", "Cc": "mani@kernel.org,\n\tkwilczynski@kernel.org,\n\tkishon@kernel.org,\n\tbhelgaas@google.com,\n\tcorbet@lwn.net,\n\tgeert+renesas@glider.be,\n\tmagnus.damm@gmail.com,\n\trobh@kernel.org,\n\tkrzk+dt@kernel.org,\n\tconor+dt@kernel.org,\n\tvkoul@kernel.org,\n\tjoro@8bytes.org,\n\twill@kernel.org,\n\trobin.murphy@arm.com,\n\tjdmason@kudzu.us,\n\tallenbh@gmail.com,\n\tandrew+netdev@lunn.ch,\n\tdavem@davemloft.net,\n\tedumazet@google.com,\n\tkuba@kernel.org,\n\tpabeni@redhat.com,\n\tBasavaraj.Natikar@amd.com,\n\tShyam-sundar.S-k@amd.com,\n\tkurt.schwemmer@microsemi.com,\n\tlogang@deltatee.com,\n\tjingoohan1@gmail.com,\n\tlpieralisi@kernel.org,\n\tutkarsh02t@gmail.com,\n\tjbrunet@baylibre.com,\n\tdlemoal@kernel.org,\n\tarnd@arndb.de,\n\telfring@users.sourceforge.net,\n\tden@valinux.co.jp", "Subject": "[RFC PATCH v3 04/35] NTB: Add offset parameter to MW translation APIs", "Date": "Thu, 18 Dec 2025 00:15:38 +0900", "Message-ID": "<20251217151609.3162665-5-den@valinux.co.jp>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "<20251217151609.3162665-1-den@valinux.co.jp>", "References": "<20251217151609.3162665-1-den@valinux.co.jp>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "TY4P286CA0003.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:405:26d::13) To TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:24c::11)", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "TYWP286MB2697:EE_|OS9P286MB4633:EE_", "X-MS-Office365-Filtering-Correlation-Id": "f3ec2af5-4910-4272-2f3b-08de3d7f3990", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|10070799003|376014|7416014|1800799024|366016;", "X-Microsoft-Antispam-Message-Info": "\n zQGnDVmMckRaUssL1uD9+uQ4TgsMfRmk1Q1HJCUvrJOwGY3C2OmVhNFZGEkPkthNWG8YVfnvxtdXGkbSI57WzhBS3i8O7isRInBefVDlkDd6YMWKOWyr5Q6r28hZuK0B9XCVsg/d44WySwcVkU/pDfAla0NJIgmdORXkXQ8yQu+S/cHQzzp306RL1ALxnkDLKf16VsIASilJu1xnucofNXfaY73zpzKbHr8XxENLe8uz5f/fyjnczuXmezJct+TqChAo3C27wd+PcwLwK82NvtQjUh1HACG+4/AozgOVq+dXLMbLbjzKUM5dXNCVsq6VPv4WaiHWacNEnKnJ+str7qyvO9KowfQ1q/AM2T1NO+Qr3PVMek7TeMYaruC97LnESPOn5Ycr+fLt4ntACtXZ7L94SWZuZCs+naTz6vwHW+TCOqIFIgXllp5LYnxDybqvh0j02vI04G4bxpTUcahcJ0UeDV/MtgNlIyXdwppm+J6xr24F3OaiTpxRcaqs62XaJIuaTByXfkI1GyZHEEI5xGvj9OqHcYQzSTE1HtUx0Oz4LKzfPXt5+m/wNXLjnoGHVJCLlpa/S64UuBc2YyyRmywpYPI7ThktE14h8E8mQD/aDUdsKOkGx/wYLsCmVa5YzZwHn1CrdRt7I8pIUkBNScNNtSfGwxX1EhZGTCdNVvckDTiqVV4h8nmPKcNmH0tVE5IfEVLX/qBphLwuM8VAtI4zdDoEv+Z8rA3++7LlGqbMO3I5bR6NIFfmYKGfPNT8bUx9Phvd5Dh704ZdldmDQAqqILWkZScv8pdsQeFXhEW6ax7QmHAzolMKuHAyK3sBG1dKxuWjC/C1Yu7s+yIkmIzy6hrtibWU6j9TybXdr50yJlR+kVvaeumAaWLeBUsfnISm3RxLNkvAQmQUt75AWhTurO7uoshSTOSZGM1jrZgQNTfOA6O/kX5zzUOl+6JrKg+kKSLIaCyD2y/2qqcJwaGpGXKnbD9Vrpj4xSOCDfATb+fBHBsEdbcH0roNaesCXKCw4NYqlbc9F35WN//ImS7eMgNEHv9se0zE799a4xx5sQ0p3e13Bagll4o1zFz6CRbMuleKg3bndXRkkQZqvv9IvvO/4schPB+4XFWLiL7opYh1O1m/YdiMN/H5f63TtG3XbPJb6H7CDN7qOfcd6HQ92wfL0ckvL7qz3a9fR/NcSggtVgV5JdZGy4ri3M0eFs/9nlxgoWIOfEMc3GZx4/kxilp5AbhVmwEsNusEgSTe+rudUDjFWwo9PgLQjuOtbgP0QVYWyvoI4R3hJx40fhXf0c2EtDMTH9PauGBnnl+BwuAsLQAUGI7X4brJ30uZhgUgr6jFg5IY2OX/jt67BZnXixn52OzDli45WUhGmr/IPTlsEfDDAqMshB/Dmyw8U6La+uo8DlfgyyfFsHX01hGhlSQnCMuu+d3ByPM8EchweTlnBT6JjVwCR1GpHk5C", "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n YU1tMIj+fo0qo2/9bNef4vIoQkV1pNoR4Dp01atiKxoMK9vqpTSNa993ctiyg8D4rV8vOTC9SM+bzEAdLpXe6jwFI/qpUgkNgiD5xRgr+PSH+s7dk+69zNNud8eEElnvmTAKaLLENtTjMwkoq5Nbqo2sh60nxSaBgtGMqmwRW2suyG/G0CwYd9GJTFsSjZLOZrhT7TH0WdT6DleWpJHDBcMVVk21pkHiQtk8Oe5x4qxCQzqLrKD6uImA+1Y8bLtHEEB075mdeOWChp0WOF+wkG4umoWEuKZUs5sV1o9Lcu9E2NiX2r0PUYRx+rk234r5w9//PgdQwEm/RZLVUSz9Zb/Znu0v8Vrm2rRNj4wzLxld47WKQO5eoKovc4DW+A9bYdt35ItoPfHX9hcN380t62lHYNArjGH0teijgg7PPLcDZAy0ZUEyj2izh4aHickLRVP9xdXRJBZysAAykFyOpBgbgqRJAy5QxfRTLN0/x5bAO+ooW4LMt08dk6uWg+R5zXLAWLFI5Ga2jgak4ZV353sPxFbLT+NQk9ycMN+u+upSEF3+TBEDyZG08O9FLurLZv76Ofg59KXMo5glco3cZqfrStM1Qak5k1/UD3JAlEqdBZix4uWBjoP/iPvQHnWSHhFQK8WyNg/gw1FFFwoKyA6GMpPhpZkv+5tu/RnK8ZM9LML48VYNZCvDHxtucsENdWmtzWMBpkKVZ+QM44R81ib9o7jNrPHqFWLJhXnj2vgqCleJ3j+ZjYflCn+qDwqQ3r4YQQQjt1IuxPEJkGDKDycSU1YJNLqfSvadm41NGaubFCQw38pSB5kpbrZrERWI1Ju0Xxf4JIxnoWCi8ArAD0937kI6hOQobvcR2b/tKaBGaTtlfQ8h9fTIKdLKrsvH3GDmnVrcmrduiXV6Hh0XHp783OPjHPlE/DDmTjiItgMOJn0lEp8aRNFOQuI4tYg9fPfJS3FKd7j1txAjuW0ZUTTvyHad1uOh82sy5+FqREOCSnlzfqJJg1Eo2RDtkoYks4pciSPFSxLxKwOB7JsHrnk6QpZ76tYP8rx1jmcvtZS0RxQQsgzS8hHeLwKdfn0FyJvBpk6Afkucy0J58x6cndosFtwvwNkSKiHm3smRkn5DzdA4M4gZsDIlJZsC8YxB8gpqF3RWcGmrx5nfP3C1oaYjkDBwBM7JZfMPhn47hjAoeYEYZOTk67xin+WhBqJ6VMjJ6D77irfJXQigScmptq0NSwdKhKu10q8njupwZTh2tYaj3QzgUlVfeO6tnLRVFWBhf0BMbHXK0dcPYB8MT/Yuuaat0OgEsODB0cg09H7A1Zb3ZE8+fZvXfjGR3Lkjq0R2tEU+MKsEa1Bq3IQwTdkWmV9lHG7xVEiIxmkmTTwiOX2qfBezcIUF0cr+eSPY2Stk1Dm67DUtBo2OqfFQMAQGpaRCNgsCEuG/B+/rJaRKJMvspash+FJ+YzIkjpSAD0Rxqmm1GqDpVZPlvyHNJbdHH8qi5aiFFcSLDHr+rfMlidGDatj+MI09NJJM67mt4sihDzUA2ApA6wkCYV5y2t63hoNvnu97RshbTqRq+vjcYJLfkvI6HgrisVv/t8s0RoDaMmw4HaZa0/7nvnUbjVw20j2NfQpySgfqpJ2gMv0=", "X-OriginatorOrg": "valinux.co.jp", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n f3ec2af5-4910-4272-2f3b-08de3d7f3990", "X-MS-Exchange-CrossTenant-AuthSource": "TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "17 Dec 2025 15:16:16.9787\n (UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "7a57bee8-f73d-4c5f-a4f7-d72c91c8c111", "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED", "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n L5dAGYJD9XIeEwDXzDIutLNUxMMhcvCO4DGuNQngss/tPti/s8/Hs2u8nGNaApAMABWEuJr2QFBhOQd3TFz5vA==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "OS9P286MB4633" }, "content": "Extend ntb_mw_set_trans() and ntb_mw_get_align() with an offset\nargument. This supports subrange mapping inside a BAR for platforms that\nrequire offset-based translations.\n\nSigned-off-by: Koichiro Den <den@valinux.co.jp>\n---\n drivers/ntb/hw/amd/ntb_hw_amd.c | 6 ++++--\n drivers/ntb/hw/epf/ntb_hw_epf.c | 6 ++++--\n drivers/ntb/hw/idt/ntb_hw_idt.c | 3 ++-\n drivers/ntb/hw/intel/ntb_hw_gen1.c | 6 ++++--\n drivers/ntb/hw/intel/ntb_hw_gen1.h | 2 +-\n drivers/ntb/hw/intel/ntb_hw_gen3.c | 3 ++-\n drivers/ntb/hw/intel/ntb_hw_gen4.c | 6 ++++--\n drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 6 ++++--\n drivers/ntb/msi.c | 6 +++---\n drivers/ntb/ntb_transport.c | 4 ++--\n drivers/ntb/test/ntb_perf.c | 4 ++--\n drivers/ntb/test/ntb_tool.c | 6 +++---\n drivers/pci/endpoint/functions/pci-epf-vntb.c | 5 +++--\n include/linux/ntb.h | 18 +++++++++++-------\n 14 files changed, 49 insertions(+), 32 deletions(-)", "diff": "diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c\nindex 1a163596ddf5..c0137df413c4 100644\n--- a/drivers/ntb/hw/amd/ntb_hw_amd.c\n+++ b/drivers/ntb/hw/amd/ntb_hw_amd.c\n@@ -92,7 +92,8 @@ static int amd_ntb_mw_count(struct ntb_dev *ntb, int pidx)\n static int amd_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx,\n \t\t\t\tresource_size_t *addr_align,\n \t\t\t\tresource_size_t *size_align,\n-\t\t\t\tresource_size_t *size_max)\n+\t\t\t\tresource_size_t *size_max,\n+\t\t\t\tresource_size_t *offset)\n {\n \tstruct amd_ntb_dev *ndev = ntb_ndev(ntb);\n \tint bar;\n@@ -117,7 +118,8 @@ static int amd_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx,\n }\n \n static int amd_ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx,\n-\t\t\t\tdma_addr_t addr, resource_size_t size)\n+\t\t\t\tdma_addr_t addr, resource_size_t size,\n+\t\t\t\tresource_size_t offset)\n {\n \tstruct amd_ntb_dev *ndev = ntb_ndev(ntb);\n \tunsigned long xlat_reg, limit_reg = 0;\ndiff --git a/drivers/ntb/hw/epf/ntb_hw_epf.c b/drivers/ntb/hw/epf/ntb_hw_epf.c\nindex 126ba38e32ea..89a536562abf 100644\n--- a/drivers/ntb/hw/epf/ntb_hw_epf.c\n+++ b/drivers/ntb/hw/epf/ntb_hw_epf.c\n@@ -167,7 +167,8 @@ static int ntb_epf_mw_count(struct ntb_dev *ntb, int pidx)\n static int ntb_epf_mw_get_align(struct ntb_dev *ntb, int pidx, int idx,\n \t\t\t\tresource_size_t *addr_align,\n \t\t\t\tresource_size_t *size_align,\n-\t\t\t\tresource_size_t *size_max)\n+\t\t\t\tresource_size_t *size_max,\n+\t\t\t\tresource_size_t *offset)\n {\n \tstruct ntb_epf_dev *ndev = ntb_ndev(ntb);\n \tstruct device *dev = ndev->dev;\n@@ -405,7 +406,8 @@ static int ntb_epf_db_set_mask(struct ntb_dev *ntb, u64 db_bits)\n }\n \n static int ntb_epf_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx,\n-\t\t\t\tdma_addr_t addr, resource_size_t size)\n+\t\t\t\tdma_addr_t addr, resource_size_t size,\n+\t\t\t\tresource_size_t offset)\n {\n \tstruct ntb_epf_dev *ndev = ntb_ndev(ntb);\n \tstruct device *dev = ndev->dev;\ndiff --git a/drivers/ntb/hw/idt/ntb_hw_idt.c b/drivers/ntb/hw/idt/ntb_hw_idt.c\nindex f27df8d7f3b9..8c2cf149b99b 100644\n--- a/drivers/ntb/hw/idt/ntb_hw_idt.c\n+++ b/drivers/ntb/hw/idt/ntb_hw_idt.c\n@@ -1190,7 +1190,8 @@ static int idt_ntb_mw_count(struct ntb_dev *ntb, int pidx)\n static int idt_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int widx,\n \t\t\t\tresource_size_t *addr_align,\n \t\t\t\tresource_size_t *size_align,\n-\t\t\t\tresource_size_t *size_max)\n+\t\t\t\tresource_size_t *size_max,\n+\t\t\t\tresource_size_t *offset)\n {\n \tstruct idt_ntb_dev *ndev = to_ndev_ntb(ntb);\n \tstruct idt_ntb_peer *peer;\ndiff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.c b/drivers/ntb/hw/intel/ntb_hw_gen1.c\nindex 079b8cd79785..6cbbd6cdf4c0 100644\n--- a/drivers/ntb/hw/intel/ntb_hw_gen1.c\n+++ b/drivers/ntb/hw/intel/ntb_hw_gen1.c\n@@ -804,7 +804,8 @@ int intel_ntb_mw_count(struct ntb_dev *ntb, int pidx)\n int intel_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx,\n \t\t\t resource_size_t *addr_align,\n \t\t\t resource_size_t *size_align,\n-\t\t\t resource_size_t *size_max)\n+\t\t\t resource_size_t *size_max,\n+\t\t\t resource_size_t *offset)\n {\n \tstruct intel_ntb_dev *ndev = ntb_ndev(ntb);\n \tresource_size_t bar_size, mw_size;\n@@ -840,7 +841,8 @@ int intel_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx,\n }\n \n static int intel_ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx,\n-\t\t\t\t dma_addr_t addr, resource_size_t size)\n+\t\t\t\t dma_addr_t addr, resource_size_t size,\n+\t\t\t\t resource_size_t offset)\n {\n \tstruct intel_ntb_dev *ndev = ntb_ndev(ntb);\n \tunsigned long base_reg, xlat_reg, limit_reg;\ndiff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.h b/drivers/ntb/hw/intel/ntb_hw_gen1.h\nindex 344249fc18d1..f9ebd2780b7f 100644\n--- a/drivers/ntb/hw/intel/ntb_hw_gen1.h\n+++ b/drivers/ntb/hw/intel/ntb_hw_gen1.h\n@@ -159,7 +159,7 @@ int ndev_mw_to_bar(struct intel_ntb_dev *ndev, int idx);\n int intel_ntb_mw_count(struct ntb_dev *ntb, int pidx);\n int intel_ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int idx,\n \t\tresource_size_t *addr_align, resource_size_t *size_align,\n-\t\tresource_size_t *size_max);\n+\t\tresource_size_t *size_max, resource_size_t *offset);\n int intel_ntb_peer_mw_count(struct ntb_dev *ntb);\n int intel_ntb_peer_mw_get_addr(struct ntb_dev *ntb, int idx,\n \t\tphys_addr_t *base, resource_size_t *size);\ndiff --git a/drivers/ntb/hw/intel/ntb_hw_gen3.c b/drivers/ntb/hw/intel/ntb_hw_gen3.c\nindex a5aa96a31f4a..98722032ca5d 100644\n--- a/drivers/ntb/hw/intel/ntb_hw_gen3.c\n+++ b/drivers/ntb/hw/intel/ntb_hw_gen3.c\n@@ -444,7 +444,8 @@ int intel_ntb3_link_enable(struct ntb_dev *ntb, enum ntb_speed max_speed,\n \treturn 0;\n }\n static int intel_ntb3_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx,\n-\t\t\t\t dma_addr_t addr, resource_size_t size)\n+\t\t\t\t dma_addr_t addr, resource_size_t size,\n+\t\t\t\t resource_size_t offset)\n {\n \tstruct intel_ntb_dev *ndev = ntb_ndev(ntb);\n \tunsigned long xlat_reg, limit_reg;\ndiff --git a/drivers/ntb/hw/intel/ntb_hw_gen4.c b/drivers/ntb/hw/intel/ntb_hw_gen4.c\nindex 22cac7975b3c..8df90ea04c7c 100644\n--- a/drivers/ntb/hw/intel/ntb_hw_gen4.c\n+++ b/drivers/ntb/hw/intel/ntb_hw_gen4.c\n@@ -335,7 +335,8 @@ ssize_t ndev_ntb4_debugfs_read(struct file *filp, char __user *ubuf,\n }\n \n static int intel_ntb4_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx,\n-\t\t\t\t dma_addr_t addr, resource_size_t size)\n+\t\t\t\t dma_addr_t addr, resource_size_t size,\n+\t\t\t\t resource_size_t offset)\n {\n \tstruct intel_ntb_dev *ndev = ntb_ndev(ntb);\n \tunsigned long xlat_reg, limit_reg, idx_reg;\n@@ -524,7 +525,8 @@ static int intel_ntb4_link_disable(struct ntb_dev *ntb)\n static int intel_ntb4_mw_get_align(struct ntb_dev *ntb, int pidx, int idx,\n \t\t\t\t resource_size_t *addr_align,\n \t\t\t\t resource_size_t *size_align,\n-\t\t\t\t resource_size_t *size_max)\n+\t\t\t\t resource_size_t *size_max,\n+\t\t\t\t resource_size_t *offset)\n {\n \tstruct intel_ntb_dev *ndev = ntb_ndev(ntb);\n \tresource_size_t bar_size, mw_size;\ndiff --git a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c\nindex e38540b92716..5d8bace78d4f 100644\n--- a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c\n+++ b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c\n@@ -191,7 +191,8 @@ static int peer_lut_index(struct switchtec_ntb *sndev, int mw_idx)\n static int switchtec_ntb_mw_get_align(struct ntb_dev *ntb, int pidx,\n \t\t\t\t int widx, resource_size_t *addr_align,\n \t\t\t\t resource_size_t *size_align,\n-\t\t\t\t resource_size_t *size_max)\n+\t\t\t\t resource_size_t *size_max,\n+\t\t\t\t resource_size_t *offset)\n {\n \tstruct switchtec_ntb *sndev = ntb_sndev(ntb);\n \tint lut;\n@@ -268,7 +269,8 @@ static void switchtec_ntb_mw_set_lut(struct switchtec_ntb *sndev, int idx,\n }\n \n static int switchtec_ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx,\n-\t\t\t\t dma_addr_t addr, resource_size_t size)\n+\t\t\t\t dma_addr_t addr, resource_size_t size,\n+\t\t\t\t resource_size_t offset)\n {\n \tstruct switchtec_ntb *sndev = ntb_sndev(ntb);\n \tstruct ntb_ctrl_regs __iomem *ctl = sndev->mmio_peer_ctrl;\ndiff --git a/drivers/ntb/msi.c b/drivers/ntb/msi.c\nindex 6817d504c12a..8875bcbf2ea4 100644\n--- a/drivers/ntb/msi.c\n+++ b/drivers/ntb/msi.c\n@@ -117,7 +117,7 @@ int ntb_msi_setup_mws(struct ntb_dev *ntb)\n \t\t\treturn peer_widx;\n \n \t\tret = ntb_mw_get_align(ntb, peer, peer_widx, &addr_align,\n-\t\t\t\t NULL, NULL);\n+\t\t\t\t NULL, NULL, NULL);\n \t\tif (ret)\n \t\t\treturn ret;\n \n@@ -132,7 +132,7 @@ int ntb_msi_setup_mws(struct ntb_dev *ntb)\n \t\t}\n \n \t\tret = ntb_mw_get_align(ntb, peer, peer_widx, NULL,\n-\t\t\t\t &size_align, &size_max);\n+\t\t\t\t &size_align, &size_max, NULL);\n \t\tif (ret)\n \t\t\tgoto error_out;\n \n@@ -142,7 +142,7 @@ int ntb_msi_setup_mws(struct ntb_dev *ntb)\n \t\t\tmw_min_size = mw_size;\n \n \t\tret = ntb_mw_set_trans(ntb, peer, peer_widx,\n-\t\t\t\t addr, mw_size);\n+\t\t\t\t addr, mw_size, 0);\n \t\tif (ret)\n \t\t\tgoto error_out;\n \t}\ndiff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c\nindex d5a544bf8fd6..e16a8147ddc5 100644\n--- a/drivers/ntb/ntb_transport.c\n+++ b/drivers/ntb/ntb_transport.c\n@@ -829,7 +829,7 @@ static int ntb_set_mw(struct ntb_transport_ctx *nt, int num_mw,\n \t\treturn -EINVAL;\n \n \trc = ntb_mw_get_align(nt->ndev, PIDX, num_mw, &xlat_align,\n-\t\t\t &xlat_align_size, NULL);\n+\t\t\t &xlat_align_size, NULL, NULL);\n \tif (rc)\n \t\treturn rc;\n \n@@ -864,7 +864,7 @@ static int ntb_set_mw(struct ntb_transport_ctx *nt, int num_mw,\n \n \t/* Notify HW the memory location of the receive buffer */\n \trc = ntb_mw_set_trans(nt->ndev, PIDX, num_mw, mw->dma_addr,\n-\t\t\t mw->xlat_size);\n+\t\t\t mw->xlat_size, 0);\n \tif (rc) {\n \t\tdev_err(&pdev->dev, \"Unable to set mw%d translation\", num_mw);\n \t\tntb_free_mw(nt, num_mw);\ndiff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c\nindex dfd175f79e8f..b842b69e4242 100644\n--- a/drivers/ntb/test/ntb_perf.c\n+++ b/drivers/ntb/test/ntb_perf.c\n@@ -573,7 +573,7 @@ static int perf_setup_inbuf(struct perf_peer *peer)\n \n \t/* Get inbound MW parameters */\n \tret = ntb_mw_get_align(perf->ntb, peer->pidx, perf->gidx,\n-\t\t\t &xlat_align, &size_align, &size_max);\n+\t\t\t &xlat_align, &size_align, &size_max, NULL);\n \tif (ret) {\n \t\tdev_err(&perf->ntb->dev, \"Couldn't get inbuf restrictions\\n\");\n \t\treturn ret;\n@@ -604,7 +604,7 @@ static int perf_setup_inbuf(struct perf_peer *peer)\n \t}\n \n \tret = ntb_mw_set_trans(perf->ntb, peer->pidx, peer->gidx,\n-\t\t\t peer->inbuf_xlat, peer->inbuf_size);\n+\t\t\t peer->inbuf_xlat, peer->inbuf_size, 0);\n \tif (ret) {\n \t\tdev_err(&perf->ntb->dev, \"Failed to set inbuf translation\\n\");\n \t\tgoto err_free_inbuf;\ndiff --git a/drivers/ntb/test/ntb_tool.c b/drivers/ntb/test/ntb_tool.c\nindex 641cb7e05a47..7a7ba486bba7 100644\n--- a/drivers/ntb/test/ntb_tool.c\n+++ b/drivers/ntb/test/ntb_tool.c\n@@ -578,7 +578,7 @@ static int tool_setup_mw(struct tool_ctx *tc, int pidx, int widx,\n \t\treturn 0;\n \n \tret = ntb_mw_get_align(tc->ntb, pidx, widx, &addr_align,\n-\t\t\t\t&size_align, &size);\n+\t\t\t\t&size_align, &size, NULL);\n \tif (ret)\n \t\treturn ret;\n \n@@ -595,7 +595,7 @@ static int tool_setup_mw(struct tool_ctx *tc, int pidx, int widx,\n \t\tgoto err_free_dma;\n \t}\n \n-\tret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size);\n+\tret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size, 0);\n \tif (ret)\n \t\tgoto err_free_dma;\n \n@@ -652,7 +652,7 @@ static ssize_t tool_mw_trans_read(struct file *filep, char __user *ubuf,\n \t\treturn -ENOMEM;\n \n \tret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx,\n-\t\t\t &addr_align, &size_align, &size_max);\n+\t\t\t &addr_align, &size_align, &size_max, NULL);\n \tif (ret)\n \t\tgoto err;\n \ndiff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/endpoint/functions/pci-epf-vntb.c\nindex 4dfb3e40dffa..4db1fabfd8a4 100644\n--- a/drivers/pci/endpoint/functions/pci-epf-vntb.c\n+++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c\n@@ -1384,7 +1384,7 @@ static int vntb_epf_db_set_mask(struct ntb_dev *ntb, u64 db_bits)\n }\n \n static int vntb_epf_mw_set_trans(struct ntb_dev *ndev, int pidx, int idx,\n-\t\tdma_addr_t addr, resource_size_t size)\n+\t\tdma_addr_t addr, resource_size_t size, resource_size_t offset)\n {\n \tstruct epf_ntb *ntb = ntb_ndev(ndev);\n \tstruct pci_epf_bar *epf_bar;\n@@ -1507,7 +1507,8 @@ static u64 vntb_epf_db_read(struct ntb_dev *ndev)\n static int vntb_epf_mw_get_align(struct ntb_dev *ndev, int pidx, int idx,\n \t\t\tresource_size_t *addr_align,\n \t\t\tresource_size_t *size_align,\n-\t\t\tresource_size_t *size_max)\n+\t\t\tresource_size_t *size_max,\n+\t\t\tresource_size_t *offset)\n {\n \tstruct epf_ntb *ntb = ntb_ndev(ndev);\n \ndiff --git a/include/linux/ntb.h b/include/linux/ntb.h\nindex 8ff9d663096b..d7ce5d2e60d0 100644\n--- a/include/linux/ntb.h\n+++ b/include/linux/ntb.h\n@@ -273,9 +273,11 @@ struct ntb_dev_ops {\n \tint (*mw_get_align)(struct ntb_dev *ntb, int pidx, int widx,\n \t\t\t resource_size_t *addr_align,\n \t\t\t resource_size_t *size_align,\n-\t\t\t resource_size_t *size_max);\n+\t\t\t resource_size_t *size_max,\n+\t\t\t resource_size_t *offset);\n \tint (*mw_set_trans)(struct ntb_dev *ntb, int pidx, int widx,\n-\t\t\t dma_addr_t addr, resource_size_t size);\n+\t\t\t dma_addr_t addr, resource_size_t size,\n+\t\t\t resource_size_t offset);\n \tint (*mw_clear_trans)(struct ntb_dev *ntb, int pidx, int widx);\n \tint (*peer_mw_count)(struct ntb_dev *ntb);\n \tint (*peer_mw_get_addr)(struct ntb_dev *ntb, int widx,\n@@ -823,13 +825,14 @@ static inline int ntb_mw_count(struct ntb_dev *ntb, int pidx)\n static inline int ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int widx,\n \t\t\t\t resource_size_t *addr_align,\n \t\t\t\t resource_size_t *size_align,\n-\t\t\t\t resource_size_t *size_max)\n+\t\t\t\t resource_size_t *size_max,\n+\t\t\t\t resource_size_t *offset)\n {\n \tif (!(ntb_link_is_up(ntb, NULL, NULL) & BIT_ULL(pidx)))\n \t\treturn -ENOTCONN;\n \n \treturn ntb->ops->mw_get_align(ntb, pidx, widx, addr_align, size_align,\n-\t\t\t\t size_max);\n+\t\t\t\t size_max, offset);\n }\n \n /**\n@@ -852,12 +855,13 @@ static inline int ntb_mw_get_align(struct ntb_dev *ntb, int pidx, int widx,\n * Return: Zero on success, otherwise an error number.\n */\n static inline int ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx,\n-\t\t\t\t dma_addr_t addr, resource_size_t size)\n+\t\t\t\t dma_addr_t addr, resource_size_t size,\n+\t\t\t\t resource_size_t offset)\n {\n \tif (!ntb->ops->mw_set_trans)\n \t\treturn 0;\n \n-\treturn ntb->ops->mw_set_trans(ntb, pidx, widx, addr, size);\n+\treturn ntb->ops->mw_set_trans(ntb, pidx, widx, addr, size, offset);\n }\n \n /**\n@@ -875,7 +879,7 @@ static inline int ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx,\n static inline int ntb_mw_clear_trans(struct ntb_dev *ntb, int pidx, int widx)\n {\n \tif (!ntb->ops->mw_clear_trans)\n-\t\treturn ntb_mw_set_trans(ntb, pidx, widx, 0, 0);\n+\t\treturn ntb_mw_set_trans(ntb, pidx, widx, 0, 0, 0);\n \n \treturn ntb->ops->mw_clear_trans(ntb, pidx, widx);\n }\n", "prefixes": [ "RFC", "v3", "04/35" ] }