| From 61b260a23269401e98311ed11c3f314ae82b9b4d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 9 Jan 2019 12:22:28 -0700 |
| Subject: NTB: Fix the default port and peer numbers for legacy drivers |
| |
| From: Logan Gunthorpe <logang@deltatee.com> |
| |
| [ Upstream commit fc8b086d9dbd57458d136c4fa70ee26f832c3a2e ] |
| |
| When the commit adding ntb_default_port_number() and |
| ntb_default_peer_port_number() entered the kernel there was no |
| users of it so it was impossible to tell what the API needed. |
| |
| When a user finally landed a year later (ntb_pingpong) there were |
| more NTB topologies were created and no consideration was considered |
| to how other drivers had changed. |
| |
| Now that there is a user it can be fixed to provide a sensible default |
| for the legacy drivers that do not implement ntb_{peer_}port_number(). |
| Seeing ntb_pingpong doesn't check error codes returning EINVAL was also |
| not sensible. |
| |
| Patches for ntb_pingpong and ntb_perf follow (which are broken |
| otherwise) to support hardware that doesn't have port numbers. This is |
| important not only to not break support with existing drivers but for |
| the cross link topology which, due to its perfect symmetry, cannot |
| assign unique port numbers to each side. |
| |
| Fixes: 1e5301196a88 ("NTB: Add indexed ports NTB API") |
| Signed-off-by: Logan Gunthorpe <logang@deltatee.com> |
| Acked-by: Allen Hubbe <allenbh@gmail.com> |
| Tested-by: Alexander Fomichev <fomichev.ru@gmail.com> |
| Signed-off-by: Jon Mason <jdmason@kudzu.us> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/ntb/ntb.c | 8 ++------ |
| 1 file changed, 2 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/ntb/ntb.c b/drivers/ntb/ntb.c |
| index 03b80d89b9800..b75ec229b39a5 100644 |
| --- a/drivers/ntb/ntb.c |
| +++ b/drivers/ntb/ntb.c |
| @@ -216,10 +216,8 @@ int ntb_default_port_number(struct ntb_dev *ntb) |
| case NTB_TOPO_B2B_DSD: |
| return NTB_PORT_SEC_DSD; |
| default: |
| - break; |
| + return 0; |
| } |
| - |
| - return -EINVAL; |
| } |
| EXPORT_SYMBOL(ntb_default_port_number); |
| |
| @@ -242,10 +240,8 @@ int ntb_default_peer_port_number(struct ntb_dev *ntb, int pidx) |
| case NTB_TOPO_B2B_DSD: |
| return NTB_PORT_PRI_USD; |
| default: |
| - break; |
| + return 0; |
| } |
| - |
| - return -EINVAL; |
| } |
| EXPORT_SYMBOL(ntb_default_peer_port_number); |
| |
| -- |
| 2.25.1 |
| |