diff mbox

IB/cma: Fix RDMA port validation for iWarp

Message ID 1452085579-7421-1-git-send-email-matanb@mellanox.com (mailing list archive)
State Superseded
Headers show

Commit Message

Matan Barak Jan. 6, 2016, 1:06 p.m. UTC
cma_validate_port wrongly assumed that Ethernet devices are RoCE
devices and thus their ndev should be matched in the GID table.
This broke the iWrap support. Fixing that matching the ndev only if
we work on a RoCE port.

Fixes: abae1b71dd37 ('IB/cma: cma_validate_port should verify the port
		     and netdevice')
Reported-by: Hariprasad Shenai <hariprasad@chelsio.com>
Tested-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: Matan Barak <matanb@mellanox.com>
---

Hi Doug,

This patch fixes an iWarp issue that was introduced in the RoCE
refactoring series.

Regards,
Matan

 drivers/infiniband/core/cma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Steve Wise Jan. 6, 2016, 4:50 p.m. UTC | #1
On 1/6/2016 7:06 AM, Matan Barak wrote:
> cma_validate_port wrongly assumed that Ethernet devices are RoCE
> devices and thus their ndev should be matched in the GID table.
> This broke the iWrap support. Fixing that matching the ndev only if

Typo "iWrap"

Reviewed-by: Steve Wise <swise@opengridcomputing.com>

> we work on a RoCE port.
>
> Fixes: abae1b71dd37 ('IB/cma: cma_validate_port should verify the port
> 		     and netdevice')
> Reported-by: Hariprasad Shenai <hariprasad@chelsio.com>
> Tested-by: Hariprasad Shenai <hariprasad@chelsio.com>
> Signed-off-by: Matan Barak <matanb@mellanox.com>
> ---
>
> Hi Doug,
>
> This patch fixes an iWarp issue that was introduced in the RoCE
> refactoring series.
>
> Regards,
> Matan
>
>   drivers/infiniband/core/cma.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
> index 2d762a2..17a15c5 100644
> --- a/drivers/infiniband/core/cma.c
> +++ b/drivers/infiniband/core/cma.c
> @@ -453,7 +453,7 @@ static inline int cma_validate_port(struct ib_device *device, u8 port,
>   	if ((dev_type != ARPHRD_INFINIBAND) && rdma_protocol_ib(device, port))
>   		return ret;
>   
> -	if (dev_type == ARPHRD_ETHER)
> +	if (dev_type == ARPHRD_ETHER && rdma_protocol_roce(device, port))
>   		ndev = dev_get_by_index(&init_net, bound_if_index);
>   
>   	ret = ib_find_cached_gid_by_port(device, gid, port, ndev, NULL);

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Matan Barak Jan. 7, 2016, 9:21 a.m. UTC | #2
On Wed, Jan 6, 2016 at 6:50 PM, Steve Wise <swise@opengridcomputing.com> wrote:
> On 1/6/2016 7:06 AM, Matan Barak wrote:
>>
>> cma_validate_port wrongly assumed that Ethernet devices are RoCE
>> devices and thus their ndev should be matched in the GID table.
>> This broke the iWrap support. Fixing that matching the ndev only if
>
>
> Typo "iWrap"
>

Thanks, I fixed the spelling mistake.

> Reviewed-by: Steve Wise <swise@opengridcomputing.com>
>
>
>> we work on a RoCE port.
>>
>> Fixes: abae1b71dd37 ('IB/cma: cma_validate_port should verify the port
>>                      and netdevice')
>> Reported-by: Hariprasad Shenai <hariprasad@chelsio.com>
>> Tested-by: Hariprasad Shenai <hariprasad@chelsio.com>
>> Signed-off-by: Matan Barak <matanb@mellanox.com>
>> ---
>>
>> Hi Doug,
>>
>> This patch fixes an iWarp issue that was introduced in the RoCE
>> refactoring series.
>>
>> Regards,
>> Matan
>>
>>   drivers/infiniband/core/cma.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
>> index 2d762a2..17a15c5 100644
>> --- a/drivers/infiniband/core/cma.c
>> +++ b/drivers/infiniband/core/cma.c
>> @@ -453,7 +453,7 @@ static inline int cma_validate_port(struct ib_device
>> *device, u8 port,
>>         if ((dev_type != ARPHRD_INFINIBAND) && rdma_protocol_ib(device,
>> port))
>>                 return ret;
>>   -     if (dev_type == ARPHRD_ETHER)
>> +       if (dev_type == ARPHRD_ETHER && rdma_protocol_roce(device, port))
>>                 ndev = dev_get_by_index(&init_net, bound_if_index);
>>         ret = ib_find_cached_gid_by_port(device, gid, port, ndev, NULL);
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 2d762a2..17a15c5 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -453,7 +453,7 @@  static inline int cma_validate_port(struct ib_device *device, u8 port,
 	if ((dev_type != ARPHRD_INFINIBAND) && rdma_protocol_ib(device, port))
 		return ret;
 
-	if (dev_type == ARPHRD_ETHER)
+	if (dev_type == ARPHRD_ETHER && rdma_protocol_roce(device, port))
 		ndev = dev_get_by_index(&init_net, bound_if_index);
 
 	ret = ib_find_cached_gid_by_port(device, gid, port, ndev, NULL);