diff options
author | Ralph Campbell <ralph.campbell@qlogic.com> | 2008-07-15 02:48:52 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-07-15 02:48:52 -0400 |
commit | df8666198dd058b9498ebdbc52c61957206d30a5 (patch) | |
tree | 7d2c8cacb34aa9e518f77b7b16587e2406e1571a /drivers/infiniband | |
parent | bd3606715effbf37df986548c43bbed0842b49d5 (diff) |
IB/ipath: Use IEEE OUI for vendor_id reported by ibv_query_device()
The IB spe. for SubnGet(NodeInfo) and query HCA says that the vendor
ID field should be the IEEE OUI assigned to the vendor. The ipath
driver was returning the PCI vendor ID instead. This will affect
applications which call ibv_query_device(). The old value was
0x001fc1 or 0x001077, the new value is 0x001175.
The vendor ID doesn't appear to be exported via /sys so that should
reduce possible compatibility issues. I'm only aware of Open MPI as a
major application which depends on this change, and they have made
necessary adjustments.
Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_mad.c | 6 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_verbs.c | 3 |
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_mad.c b/drivers/infiniband/hw/ipath/ipath_mad.c index 5f9315d77a43..be4fc9ada8e7 100644 --- a/drivers/infiniband/hw/ipath/ipath_mad.c +++ b/drivers/infiniband/hw/ipath/ipath_mad.c | |||
@@ -111,9 +111,9 @@ static int recv_subn_get_nodeinfo(struct ib_smp *smp, | |||
111 | nip->revision = cpu_to_be32((majrev << 16) | minrev); | 111 | nip->revision = cpu_to_be32((majrev << 16) | minrev); |
112 | nip->local_port_num = port; | 112 | nip->local_port_num = port; |
113 | vendor = dd->ipath_vendorid; | 113 | vendor = dd->ipath_vendorid; |
114 | nip->vendor_id[0] = 0; | 114 | nip->vendor_id[0] = IPATH_SRC_OUI_1; |
115 | nip->vendor_id[1] = vendor >> 8; | 115 | nip->vendor_id[1] = IPATH_SRC_OUI_2; |
116 | nip->vendor_id[2] = vendor; | 116 | nip->vendor_id[2] = IPATH_SRC_OUI_3; |
117 | 117 | ||
118 | return reply(smp); | 118 | return reply(smp); |
119 | } | 119 | } |
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c index 7779165b2c2c..9e23ab0b51a1 100644 --- a/drivers/infiniband/hw/ipath/ipath_verbs.c +++ b/drivers/infiniband/hw/ipath/ipath_verbs.c | |||
@@ -1497,7 +1497,8 @@ static int ipath_query_device(struct ib_device *ibdev, | |||
1497 | IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_RC_RNR_NAK_GEN | | 1497 | IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_RC_RNR_NAK_GEN | |
1498 | IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SRQ_RESIZE; | 1498 | IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SRQ_RESIZE; |
1499 | props->page_size_cap = PAGE_SIZE; | 1499 | props->page_size_cap = PAGE_SIZE; |
1500 | props->vendor_id = dev->dd->ipath_vendorid; | 1500 | props->vendor_id = |
1501 | IPATH_SRC_OUI_1 << 16 | IPATH_SRC_OUI_2 << 8 | IPATH_SRC_OUI_3; | ||
1501 | props->vendor_part_id = dev->dd->ipath_deviceid; | 1502 | props->vendor_part_id = dev->dd->ipath_deviceid; |
1502 | props->hw_ver = dev->dd->ipath_pcirev; | 1503 | props->hw_ver = dev->dd->ipath_pcirev; |
1503 | 1504 | ||