2017-06-26 19:51:02

by Logan Gunthorpe

[permalink] [raw]
Subject: [PATCH] ntb: use correct mw_count function in ntb_tool and ntb_transport

After converting to the new API, both ntb_tool and ntb_transport are
using ntb_mw_count to iterate through ntb_peer_get_addr when they
should be using ntb_peer_mw_count.

This probably isn't an issue with the Intel and AMD drivers but
this will matter for any future driver with asymetric memory window
counts.

Signed-off-by: Logan Gunthorpe <[email protected]>
Cc: Jon Mason <[email protected]>
Cc: Dave Jiang <[email protected]>
Cc: Allen Hubbe <[email protected]>
Cc: Serge Semin <[email protected]>
---

Hi Guys,

I caught this issue while finishing up the switchtec rebase. (Which is
now working again and I'll send the updated series after doing a bit more
testing.)

However, seeing this is a bug in the new api patches I feel it should
be applied to ntb-next tree before it's merged upstream.

Thanks,

Logan

drivers/ntb/ntb_transport.c | 2 +-
drivers/ntb/test/ntb_tool.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
index 9a03c5871efe..b29558ddfe95 100644
--- a/drivers/ntb/ntb_transport.c
+++ b/drivers/ntb/ntb_transport.c
@@ -1059,7 +1059,7 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev)
int node;
int rc, i;

- mw_count = ntb_mw_count(ndev, PIDX);
+ mw_count = ntb_peer_mw_count(ndev);

if (!ndev->ops->mw_set_trans) {
dev_err(&ndev->dev, "Inbound MW based NTB API is required\n");
diff --git a/drivers/ntb/test/ntb_tool.c b/drivers/ntb/test/ntb_tool.c
index f002bf48a08d..a69815c45ce6 100644
--- a/drivers/ntb/test/ntb_tool.c
+++ b/drivers/ntb/test/ntb_tool.c
@@ -959,7 +959,7 @@ static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb)
tc->ntb = ntb;
init_waitqueue_head(&tc->link_wq);

- tc->mw_count = min(ntb_mw_count(tc->ntb, PIDX), MAX_MWS);
+ tc->mw_count = min(ntb_peer_mw_count(tc->ntb), MAX_MWS);
for (i = 0; i < tc->mw_count; i++) {
rc = tool_init_mw(tc, i);
if (rc)
--
2.11.0


2017-06-27 16:05:25

by Allen Hubbe

[permalink] [raw]
Subject: RE: [PATCH] ntb: use correct mw_count function in ntb_tool and ntb_transport

From: Logan Gunthorpe
> After converting to the new API, both ntb_tool and ntb_transport are
> using ntb_mw_count to iterate through ntb_peer_get_addr when they
> should be using ntb_peer_mw_count.
>
> This probably isn't an issue with the Intel and AMD drivers but
> this will matter for any future driver with asymetric memory window
> counts.
>
> Signed-off-by: Logan Gunthorpe <[email protected]>
> Cc: Jon Mason <[email protected]>
> Cc: Dave Jiang <[email protected]>
> Cc: Allen Hubbe <[email protected]>
> Cc: Serge Semin <[email protected]>

Acked-by: Allen Hubbe <[email protected]>

> ---
>
> Hi Guys,
>
> I caught this issue while finishing up the switchtec rebase. (Which is
> now working again and I'll send the updated series after doing a bit more
> testing.)
>
> However, seeing this is a bug in the new api patches I feel it should
> be applied to ntb-next tree before it's merged upstream.
>
> Thanks,
>
> Logan
>
> drivers/ntb/ntb_transport.c | 2 +-
> drivers/ntb/test/ntb_tool.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
> index 9a03c5871efe..b29558ddfe95 100644
> --- a/drivers/ntb/ntb_transport.c
> +++ b/drivers/ntb/ntb_transport.c
> @@ -1059,7 +1059,7 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev)
> int node;
> int rc, i;
>
> - mw_count = ntb_mw_count(ndev, PIDX);
> + mw_count = ntb_peer_mw_count(ndev);
>
> if (!ndev->ops->mw_set_trans) {
> dev_err(&ndev->dev, "Inbound MW based NTB API is required\n");
> diff --git a/drivers/ntb/test/ntb_tool.c b/drivers/ntb/test/ntb_tool.c
> index f002bf48a08d..a69815c45ce6 100644
> --- a/drivers/ntb/test/ntb_tool.c
> +++ b/drivers/ntb/test/ntb_tool.c
> @@ -959,7 +959,7 @@ static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb)
> tc->ntb = ntb;
> init_waitqueue_head(&tc->link_wq);
>
> - tc->mw_count = min(ntb_mw_count(tc->ntb, PIDX), MAX_MWS);
> + tc->mw_count = min(ntb_peer_mw_count(tc->ntb), MAX_MWS);
> for (i = 0; i < tc->mw_count; i++) {
> rc = tool_init_mw(tc, i);
> if (rc)
> --
> 2.11.0

2017-07-17 15:16:53

by Jon Mason

[permalink] [raw]
Subject: Re: [PATCH] ntb: use correct mw_count function in ntb_tool and ntb_transport

On Tue, Jun 27, 2017 at 12:04 PM, Allen Hubbe <[email protected]> wrote:
> From: Logan Gunthorpe
>> After converting to the new API, both ntb_tool and ntb_transport are
>> using ntb_mw_count to iterate through ntb_peer_get_addr when they
>> should be using ntb_peer_mw_count.
>>
>> This probably isn't an issue with the Intel and AMD drivers but
>> this will matter for any future driver with asymetric memory window
>> counts.
>>
>> Signed-off-by: Logan Gunthorpe <[email protected]>
>> Cc: Jon Mason <[email protected]>
>> Cc: Dave Jiang <[email protected]>
>> Cc: Allen Hubbe <[email protected]>
>> Cc: Serge Semin <[email protected]>
>
> Acked-by: Allen Hubbe <[email protected]>
>
>> ---
>>
>> Hi Guys,
>>
>> I caught this issue while finishing up the switchtec rebase. (Which is
>> now working again and I'll send the updated series after doing a bit more
>> testing.)
>>
>> However, seeing this is a bug in the new api patches I feel it should
>> be applied to ntb-next tree before it's merged upstream.

Per your request, this has been applied to my ntb-next branch.

Thanks,
Jon

>>
>> Thanks,
>>
>> Logan
>>
>> drivers/ntb/ntb_transport.c | 2 +-
>> drivers/ntb/test/ntb_tool.c | 2 +-
>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
>> index 9a03c5871efe..b29558ddfe95 100644
>> --- a/drivers/ntb/ntb_transport.c
>> +++ b/drivers/ntb/ntb_transport.c
>> @@ -1059,7 +1059,7 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev)
>> int node;
>> int rc, i;
>>
>> - mw_count = ntb_mw_count(ndev, PIDX);
>> + mw_count = ntb_peer_mw_count(ndev);
>>
>> if (!ndev->ops->mw_set_trans) {
>> dev_err(&ndev->dev, "Inbound MW based NTB API is required\n");
>> diff --git a/drivers/ntb/test/ntb_tool.c b/drivers/ntb/test/ntb_tool.c
>> index f002bf48a08d..a69815c45ce6 100644
>> --- a/drivers/ntb/test/ntb_tool.c
>> +++ b/drivers/ntb/test/ntb_tool.c
>> @@ -959,7 +959,7 @@ static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb)
>> tc->ntb = ntb;
>> init_waitqueue_head(&tc->link_wq);
>>
>> - tc->mw_count = min(ntb_mw_count(tc->ntb, PIDX), MAX_MWS);
>> + tc->mw_count = min(ntb_peer_mw_count(tc->ntb), MAX_MWS);
>> for (i = 0; i < tc->mw_count; i++) {
>> rc = tool_init_mw(tc, i);
>> if (rc)
>> --
>> 2.11.0
>

2017-07-17 16:36:51

by Logan Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] ntb: use correct mw_count function in ntb_tool and ntb_transport

Hi John,


On 17/07/17 09:16 AM, Jon Mason wrote:
> Per your request, this has been applied to my ntb-next branch.

This isn't a huge issue but I meant for this patch to fix the mistake in
the new ntb_api before it hit 4.13.

On the other hand, seeing there's no way to actually trigger the issue
until the switchtec driver is merged I guess it's okay to leave it the
way you did it.

Thanks,

Logan

2017-07-17 16:46:54

by Jon Mason

[permalink] [raw]
Subject: Re: [PATCH] ntb: use correct mw_count function in ntb_tool and ntb_transport

On Mon, Jul 17, 2017 at 12:36 PM, Logan Gunthorpe <[email protected]> wrote:
> Hi John,

s/John/Jon

>
>
> On 17/07/17 09:16 AM, Jon Mason wrote:
>> Per your request, this has been applied to my ntb-next branch.
>
> This isn't a huge issue but I meant for this patch to fix the mistake in
> the new ntb_api before it hit 4.13.

NP. I'll add a "Fixes: ..." to it. So, it'll get pulled into the
-stable trees.

Thanks,
Jon

>
> On the other hand, seeing there's no way to actually trigger the issue
> until the switchtec driver is merged I guess it's okay to leave it the
> way you did it.
>
> Thanks,
>
> Logan
>
> --
> You received this message because you are subscribed to the Google Groups "linux-ntb" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/msgid/linux-ntb/296b3d42-ce65-a521-b2de-db3459ac543a%40deltatee.com.
> For more options, visit https://groups.google.com/d/optout.

2017-07-17 16:50:41

by Logan Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] ntb: use correct mw_count function in ntb_tool and ntb_transport



On 17/07/17 10:46 AM, Jon Mason wrote:
> s/John/Jon

Apologies. Monday morning -- not fully awake yet.

> NP. I'll add a "Fixes: ..." to it. So, it'll get pulled into the
> -stable trees.

Ok, thanks, but it's not really the stable trees that need to see it
seeing 4.13 isn't released yet, it would just need to get into a
subsequent rc....

Logan

2017-07-17 16:52:49

by Jon Mason

[permalink] [raw]
Subject: Re: [PATCH] ntb: use correct mw_count function in ntb_tool and ntb_transport

On Mon, Jul 17, 2017 at 12:50 PM, Logan Gunthorpe <[email protected]> wrote:
>
>
> On 17/07/17 10:46 AM, Jon Mason wrote:
>> s/John/Jon
>
> Apologies. Monday morning -- not fully awake yet.
>
>> NP. I'll add a "Fixes: ..." to it. So, it'll get pulled into the
>> -stable trees.
>
> Ok, thanks, but it's not really the stable trees that need to see it
> seeing 4.13 isn't released yet, it would just need to get into a
> subsequent rc....

Yeah, I'm looking at this more now and I agree. It should go in
v4.13-rcX. I'll move this to my ntb branch for this purpose and wait
to see if any more bug fixes are coming in the next couple of weeks
(before I push it).

Thanks for the patch, and sorry about the confusion :)

Thanks,
Jon

> Logan
>
> --
> You received this message because you are subscribed to the Google Groups "linux-ntb" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/msgid/linux-ntb/ce6f1995-0a1b-d0cc-4ef8-77fc1791f557%40deltatee.com.
> For more options, visit https://groups.google.com/d/optout.