• Zhu Yanjun's avatar
    RDMA/rxe: Set default vendor ID · 0184afd1
    Zhu Yanjun authored
    The RXE driver doesn't set vendor_id and user space applications see
    zeros. This causes to pyverbs tests to fail with the following traceback,
    because the expectation is to have valid vendor_id.
    
    Traceback (most recent call last):
      File "tests/test_device.py", line 51, in test_query_device
        self.verify_device_attr(attr)
      File "tests/test_device.py", line 77, in verify_device_attr
        assert attr.vendor_id != 0
    
    In order to fix it, we will set vendor_id 0XFFFFFF, according to the IBTA
    v1.4 A3.3.1 VENDOR INFORMATION section.
    
    """
    A vendor that produces a generic controller (i.e., one that supports a
    standard I/O protocol such as SRP), which does not have vendor specific
    device drivers, may use the value of 0xFFFFFF in the VendorID field.
    """
    
    Before:
    
    hca_id: rxe0
            transport:                      InfiniBand (0)
            fw_ver:                         0.0.0
            node_guid:                      5054:00ff:feaa:5363
            sys_image_guid:                 5054:00ff:feaa:5363
            vendor_id:                      0x0000
    
    After:
    
    hca_id: rxe0
            transport:                      InfiniBand (0)
            fw_ver:                         0.0.0
            node_guid:                      5054:00ff:feaa:5363
            sys_image_guid:                 5054:00ff:feaa:5363
            vendor_id:                      0xffffff
    
    Fixes: 8700e3e7 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20200406173501.1466273-1-leon@kernel.orgSigned-off-by: default avatarZhu Yanjun <yanjunz@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    0184afd1
rxe_param.h 4.7 KB