[ofw] patch: Remove livefish support from mthca
Fab Tillier
ftillier at microsoft.com
Tue Aug 31 09:59:18 PDT 2010
More details please? How do you update FW if you end up with out-of-date FW on MTHCA? What replaces the live fish functionality?
-Fab
From: ofw-bounces at lists.openfabrics.org [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
Sent: Tuesday, August 31, 2010 2:02 AM
To: ofw at lists.openfabrics.org
Subject: [ofw] patch: Remove livefish support from mthca
--- hw/mthca/kernel/hca_data.h Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/hca_data.h Mon Jun 28 10:52:26 2010
@@ -28,7 +28,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: hca_data.h 1630 2008-10-05 19:29:40Z leonidk $
+ * $Id: hca_data.h 5526 2010-02-03 10:10:56Z leonid $
*/
#ifndef __HCA_DATA_H__
@@ -239,7 +239,6 @@
void
setup_ci_interface(
IN const ib_net64_t ca_guid,
- IN const int is_livefish,
OUT ci_interface_t *p_interface );
void
@@ -324,10 +323,6 @@
void
mlnx_memory_if(
- IN OUT ci_interface_t *p_interface );
-
-void
-mlnx_memory_if_livefish(
IN OUT ci_interface_t *p_interface );
void
--- hw/mthca/kernel/hca_memory.c Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/hca_memory.c Mon Jun 28 10:52:26 2010
@@ -28,7 +28,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: hca_memory.c 2019 2009-03-09 08:36:31Z leonidk $
+ * $Id: hca_memory.c 5526 2010-02-03 10:10:56Z leonid $
*/
@@ -136,17 +136,6 @@
HCA_ENTER(HCA_DBG_MEMORY);
- if (mthca_is_livefish(to_mdev(ib_pd_p->device))) {
- mr_p = kzalloc(sizeof *mr_p, GFP_KERNEL);
- if (!mr_p) {
- status = IB_INSUFFICIENT_MEMORY;
- goto err_mem;
- }
- mr_p->device = ib_pd_p->device;
- mr_p->pd = ib_pd_p;
- goto done;
- }
-
// sanity checks
if( !cl_is_blockable() ) {
status = IB_UNSUPPORTED;
@@ -181,7 +170,6 @@
}
// results
-done:
if (ph_mr) *ph_mr = (ib_mr_handle_t)mr_p;
*p_lkey = mr_p->lkey;
*p_rkey = cl_hton32( mr_p->rkey );
@@ -191,7 +179,6 @@
err_reg_phys_mr:
err_invalid_parm:
err_unsupported:
-err_mem:
if (status != IB_SUCCESS)
{
HCA_PRINT(TRACE_LEVEL_ERROR ,HCA_DBG_MEMORY,
@@ -288,15 +275,9 @@
{
ib_api_status_t status;
int err;
- struct ib_mr *ib_mr = (struct ib_mr *)h_mr;
HCA_ENTER(HCA_DBG_SHIM);
- if (mthca_is_livefish(to_mdev(ib_mr->device))) {
- kfree(ib_mr);
- goto done;
- }
-
// sanity checks
if( !cl_is_blockable() ) {
status = IB_UNSUPPORTED;
@@ -312,7 +293,6 @@
goto err_dereg_mr;
}
-done:
status = IB_SUCCESS;
err_dereg_mr:
@@ -589,13 +569,4 @@
p_interface->query_mw = mlnx_query_mw;
p_interface->destroy_mw = mlnx_destroy_mw;
}
-
-void
-mlnx_memory_if_livefish(
- IN OUT ci_interface_t *p_interface )
-{
- p_interface->register_pmr = mlnx_register_pmr;
- p_interface->deregister_mr = mlnx_deregister_mr;
-}
-
--- hw/mthca/kernel/hca_pnp.c Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/hca_pnp.c Mon Jun 28 10:52:26 2010
@@ -238,9 +238,7 @@
return NULL;
}
- setup_ci_interface( p_ext->hca.guid,
- !!mthca_is_livefish(p_ext->hca.mdev),
- pIfc );
+ setup_ci_interface( p_ext->hca.guid, pIfc );
pIfc->p_hca_obj = &p_ext->hca.hob;
pIfc->vend_id = (uint32_t)p_ext->hcaConfig.VendorID;
@@ -276,10 +274,6 @@
HCA_ENTER( HCA_DBG_PNP );
- // there will be no resources for "livefish" (PCI memory controller mode)
- if (!pHcaResList || !pHostResList)
- goto done;
-
p_ext = (hca_dev_ext_t*)p_dev_obj->DeviceExtension;
// store the bus number for reset of Tavor
@@ -304,16 +298,16 @@
if( pHcaRes->Type == CmResourceTypeInterrupt )
{
p_ext->interruptInfo = *pHostRes;
- if ( g_processor_affinity == 0xFFFFFFFF )
+ if ( g_processor_affinity == 0xFFFFFFFF )
{
- /*
+ /*
* Calculate the mask of the last processor
*/
KAFFINITY n_active_processors_bitmask;
uint32_t last_processor_mask = 0 , tmp_processor_mask = 1;
n_active_processors_bitmask = KeQueryActiveProcessors();
- while ( tmp_processor_mask & n_active_processors_bitmask )
+ while ( tmp_processor_mask & n_active_processors_bitmask )
{
last_processor_mask = tmp_processor_mask;
tmp_processor_mask = tmp_processor_mask << 1;
@@ -383,7 +377,6 @@
status = STATUS_UNSUCCESSFUL;
}
-done:
HCA_EXIT( HCA_DBG_PNP );
return status;
}
@@ -413,14 +406,6 @@
}
-static int mthca_get_livefish_info(struct mthca_dev *mdev, __be64 *node_guid, u32 *hw_id)
-{
- *node_guid = cl_hton64((uint64_t)(ULONG_PTR)mdev);
- mdev->ib_dev.node_guid = *node_guid;
- *hw_id = 0;
- return 0;
-}
-
static NTSTATUS
hca_start(
IN DEVICE_OBJECT* const p_dev_obj,
@@ -432,6 +417,7 @@
IO_STACK_LOCATION *pIoStack;
POWER_STATE powerState;
DEVICE_DESCRIPTION devDesc;
+ int err;
HCA_ENTER( HCA_DBG_PNP );
@@ -504,21 +490,13 @@
return status;
}
- /*leo: get node GUID */
- {
- int err;
- if (mthca_is_livefish(p_ext->hca.mdev))
- err = mthca_get_livefish_info( p_ext->hca.mdev, &p_ext->hca.guid, &p_ext->hca.hw_ver );
- else
- err = mthca_get_dev_info( p_ext->hca.mdev, &p_ext->hca.guid, &p_ext->hca.hw_ver );
-
- if (err) {
-
- //TODO: no cleanup on error
- HCA_PRINT( TRACE_LEVEL_ERROR,HCA_DBG_PNP,
- ("can't get guid - mthca_query_port()"));
- return STATUS_INSUFFICIENT_RESOURCES;
- }
+ err = mthca_get_dev_info( p_ext->hca.mdev, &p_ext->hca.guid, &p_ext->hca.hw_ver );
+ if (err) {
+
+ //TODO: no cleanup on error
+ HCA_PRINT( TRACE_LEVEL_ERROR,HCA_DBG_PNP,
+ ("can't get guid - mthca_query_port()"));
+ return STATUS_INSUFFICIENT_RESOURCES;
}
/* queue HCA */
@@ -549,8 +527,7 @@
DRV_VERSION, DRV_RELDATE
));
HCA_PRINT_EV(TRACE_LEVEL_INFORMATION ,HCA_DBG_LOW ,
- ("Flags %s%s%s%s%s%s%s\n",
- (mdev->mthca_flags & MTHCA_FLAG_LIVEFISH) ? "Flash Recovery Mode:" : "",
+ ("Flags %s%s%s%s%s%s\n",
(mdev->mthca_flags & MTHCA_FLAG_MEMFREE) ? "MemFree:" : "",
(mdev->mthca_flags & MTHCA_FLAG_NO_LAM) ? "NoLam:" : "",
(mdev->mthca_flags & MTHCA_FLAG_FMR) ? "Fmr:" : "",
--- hw/mthca/kernel/hca_verbs.c Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/hca_verbs.c Mon Jun 28 10:52:26 2010
@@ -28,7 +28,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: hca_verbs.c 2166 2009-05-12 13:24:37Z leonidk $
+ * $Id: hca_verbs.c 5526 2010-02-03 10:10:56Z leonid $
*/
@@ -85,24 +85,20 @@
ib_dev = &p_hca->mdev->ib_dev;
- if (mthca_is_livefish(p_hca->mdev))
- goto done;
-
HCA_PRINT(TRACE_LEVEL_INFORMATION ,HCA_DBG_SHIM,
("context 0x%p\n", ca_context));
if (pfn_async_event_cb) {
- status = mlnx_hobs_set_cb(&p_hca->hob,
- pfn_async_event_cb,
- ca_context);
- if (IB_SUCCESS != status) {
- goto err_set_cb;
- }
+ status = mlnx_hobs_set_cb(&p_hca->hob,
+ pfn_async_event_cb,
+ ca_context);
+ if (IB_SUCCESS != status) {
+ goto err_set_cb;
+ }
}
//TODO: do we need something for kernel users ?
// Return pointer to HOB object
-done:
if (ph_ca) *ph_ca = &p_hca->hob;
status = IB_SUCCESS;
@@ -417,17 +413,9 @@
mlnx_close_ca (
IN ib_ca_handle_t h_ca)
{
- mlnx_hob_t *hob_p = (mlnx_hob_t *)h_ca;
HCA_ENTER(HCA_DBG_SHIM);
-
- if (mthca_is_livefish(MDEV_FROM_HOB( hob_p )))
- goto done;
-
mlnx_hobs_remove(h_ca);
-
-done:
HCA_EXIT(HCA_DBG_SHIM);
-
return IB_SUCCESS;
}
@@ -541,10 +529,7 @@
mlnx_hob_t *hob_p = (mlnx_hob_t *)h_ca;
hca_dev_ext_t *ext_p = EXT_FROM_HOB( hob_p );
- if (mthca_is_livefish(to_mdev(p_ucontext->device)))
- goto done;
unmap_crspace_for_all(p_ucontext);
-done:
cl_spinlock_acquire( &ext_p->uctx_lock );
cl_qlist_remove_item( &ext_p->uctx_list, &p_ucontext->list_item );
cl_atomic_dec(&ext_p->usecnt);
@@ -931,7 +916,7 @@
ib_api_status_t status = IB_SUCCESS;
struct ib_srq *ib_srq = (struct ib_srq *)h_srq;
UNUSED_PARAM(p_umv_buf);
-
+
HCA_ENTER(HCA_DBG_SRQ);
err = ibv_modify_srq(ib_srq, (void*)p_srq_attr, srq_attr_mask);
@@ -1649,7 +1634,6 @@
void
setup_ci_interface(
IN const ib_net64_t ca_guid,
- IN const int is_livefish,
IN OUT ci_interface_t *p_interface )
{
cl_memclr(p_interface, sizeof(*p_interface));
@@ -1667,6 +1651,7 @@
/* The real interface. */
p_interface->open_ca = mlnx_open_ca;
+ p_interface->modify_ca = mlnx_modify_ca;
p_interface->query_ca = mlnx_query_ca;
p_interface->close_ca = mlnx_close_ca;
p_interface->um_open_ca = mlnx_um_open;
@@ -1678,41 +1663,34 @@
p_interface->deallocate_pd = mlnx_deallocate_pd;
p_interface->vendor_call = fw_access_ctrl;
- if (is_livefish) {
- mlnx_memory_if_livefish(p_interface);
- }
- else {
- p_interface->modify_ca = mlnx_modify_ca;
-
- p_interface->create_av = mlnx_create_av;
- p_interface->query_av = mlnx_query_av;
- p_interface->modify_av = mlnx_modify_av;
- p_interface->destroy_av = mlnx_destroy_av;
-
- p_interface->create_srq = mlnx_create_srq;
- p_interface->modify_srq = mlnx_modify_srq;
- p_interface->query_srq = mlnx_query_srq;
- p_interface->destroy_srq = mlnx_destroy_srq;
-
- p_interface->create_qp = mlnx_create_qp;
- p_interface->create_spl_qp = mlnx_create_spl_qp;
- p_interface->modify_qp = mlnx_modify_qp;
- p_interface->ndi_modify_qp = mlnx_ndi_modify_qp;
- p_interface->query_qp = mlnx_query_qp;
- p_interface->destroy_qp = mlnx_destroy_qp;
-
- p_interface->create_cq = mlnx_create_cq;
- p_interface->resize_cq = mlnx_resize_cq;
- p_interface->query_cq = mlnx_query_cq;
- p_interface->destroy_cq = mlnx_destroy_cq;
-
- p_interface->local_mad = mlnx_local_mad;
-
-
- mlnx_memory_if(p_interface);
- mlnx_direct_if(p_interface);
- mlnx_mcast_if(p_interface);
- }
+ p_interface->create_av = mlnx_create_av;
+ p_interface->query_av = mlnx_query_av;
+ p_interface->modify_av = mlnx_modify_av;
+ p_interface->destroy_av = mlnx_destroy_av;
+
+ p_interface->create_srq = mlnx_create_srq;
+ p_interface->modify_srq = mlnx_modify_srq;
+ p_interface->query_srq = mlnx_query_srq;
+ p_interface->destroy_srq = mlnx_destroy_srq;
+
+ p_interface->create_qp = mlnx_create_qp;
+ p_interface->create_spl_qp = mlnx_create_spl_qp;
+ p_interface->modify_qp = mlnx_modify_qp;
+ p_interface->ndi_modify_qp = mlnx_ndi_modify_qp;
+ p_interface->query_qp = mlnx_query_qp;
+ p_interface->destroy_qp = mlnx_destroy_qp;
+
+ p_interface->create_cq = mlnx_create_cq;
+ p_interface->resize_cq = mlnx_resize_cq;
+ p_interface->query_cq = mlnx_query_cq;
+ p_interface->destroy_cq = mlnx_destroy_cq;
+
+ p_interface->local_mad = mlnx_local_mad;
+
+
+ mlnx_memory_if(p_interface);
+ mlnx_direct_if(p_interface);
+ mlnx_mcast_if(p_interface);
return;
}
--- hw/mthca/kernel/mt_memory.h Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/mt_memory.h Mon Jun 28 10:52:26 2010
@@ -52,13 +52,13 @@
MT_ASSERT( KeGetCurrentIrql() <= DISPATCH_LEVEL );
switch (gfp_mask) {
case GFP_ATOMIC:
- ptr = ExAllocatePoolWithTag( NonPagedPool, bsize, MT_TAG_ATOMIC );
+ ptr = ExAllocatePoolWithTagSafeEx( NonPagedPool, bsize, MT_TAG_ATOMIC );
break;
case GFP_KERNEL:
- ptr = ExAllocatePoolWithTag( NonPagedPool, bsize, MT_TAG_KERNEL );
+ ptr = ExAllocatePoolWithTagSafeEx( NonPagedPool, bsize, MT_TAG_KERNEL );
break;
case GFP_HIGHUSER:
- ptr = ExAllocatePoolWithTag( NonPagedPool, bsize, MT_TAG_HIGH );
+ ptr = ExAllocatePoolWithTagSafeEx( NonPagedPool, bsize, MT_TAG_HIGH );
break;
default:
cl_dbg_out("kmalloc: unsupported flag %d\n", gfp_mask);
--- hw/mthca/kernel/mt_verbs.c Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/mt_verbs.c Mon Jun 28 10:52:26 2010
@@ -33,7 +33,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: mt_verbs.c 1435 2008-07-23 20:09:45Z shefty $
+ * $Id: mt_verbs.c 5526 2010-02-03 10:10:56Z leonid $
*/
#include <ib_verbs.h>
@@ -123,9 +123,6 @@
int ibv_dealloc_pd(struct ib_pd *pd)
{
- if (mthca_is_livefish(to_mdev(pd->device)))
- goto done;
-
// we need first to release list of AV MRs to decrease pd->usecnt
if (pd->ucontext) {
struct ib_mr *ib_mr, *tmp;
@@ -141,7 +138,6 @@
return -EBUSY;
}
-done:
HCA_PRINT(TRACE_LEVEL_INFORMATION ,HCA_DBG_CQ ,("PD%d use cnt %d, pd_handle %p, ctx %p \n",
((struct mthca_pd*)pd)->pd_num, pd->usecnt, pd, pd->ucontext));
// direct call is a must, because "lifefish" devices doesn't fill driver i/f table
--- hw/mthca/kernel/mthca.inx Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/mthca.inx Tue Aug 31 11:59:17 2010
@@ -122,36 +122,24 @@
[HCA.DeviceSection.ntx86]
%MT23108.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5A44
-%MT23109.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5A45
%MT25208.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6278
-%MT25209.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6279
%MT25218.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6282
%MT24204.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5E8C
-%MT24205.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5E8D
%MT25204.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6274
-%MT25205.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6275
[HCA.DeviceSection.ntamd64]
%MT23108.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5A44
-%MT23109.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5A45
%MT25208.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6278
-%MT25209.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6279
%MT25218.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6282
%MT24204.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5E8C
-%MT24205.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5E8D
%MT25204.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6274
-%MT25205.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6275
[HCA.DeviceSection.ntia64]
%MT23108.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5A44
-%MT23109.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5A45
%MT25208.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6278
-%MT25209.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6279
%MT25218.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6282
%MT24204.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5E8C
-%MT24205.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_5E8D
%MT25204.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6274
-%MT25205.DeviceDesc%=MTHCA.DDInstall, PCI\VEN_15B3&DEV_6275
[MTHCA.DDInstall.ntx86]
CopyFiles = MTHCA.CopyFiles
@@ -449,14 +437,10 @@
MTL="Mellanox Technologies Ltd."
MTHCA.ServiceDesc = "Driver for Mellanox InfiniHost Devices"
MT23108.DeviceDesc="InfiniHost (MT23108) - Mellanox InfiniBand HCA"
-MT23109.DeviceDesc="InfiniHost (MT23109) - Mellanox InfiniBand HCA (burner device)"
MT25208.DeviceDesc="InfiniHost (MT25208) - Mellanox InfiniBand HCA for PCI Express"
-MT25209.DeviceDesc="InfiniHost (MT25209) - Mellanox InfiniBand HCA for PCI Express (burner device)"
MT25218.DeviceDesc="InfiniHost III Ex (MT25218) - Mellanox InfiniBand HCA for PCI Express"
MT24204.DeviceDesc="InfiniHost III Lx (MT24204) - Mellanox InfiniBand HCA for PCI Express"
-MT24205.DeviceDesc="InfiniHost III Lx (MT24205) - Mellanox InfiniBand HCA for PCI Express (burner device)"
MT25204.DeviceDesc="InfiniHost III Lx (MT25204) - Mellanox InfiniBand HCA for PCI Express"
-MT25205.DeviceDesc="InfiniHost III Lx (MT25205) - Mellanox InfiniBand HCA for PCI Express (burner device)"
DiskId = "Mellanox InfiniBand HCA installation disk"
Ibbus.ServiceDesc = "InfiniBand Bus/AL (Filter Driver)"
WinVerbs.ServiceDesc = "WinVerbs Service"
--- hw/mthca/kernel/mthca_dev.h Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/mthca_dev.h Mon Jun 28 10:52:26 2010
@@ -34,7 +34,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: mthca_dev.h 1942 2009-02-11 10:49:02Z tzachid $
+ * $Id: mthca_dev.h 5526 2010-02-03 10:10:56Z leonid $
*/
#ifndef MTHCA_DEV_H
@@ -64,7 +64,6 @@
MTHCA_FLAG_MEMFREE = 1 << 7,
MTHCA_FLAG_PCIE = 1 << 8,
MTHCA_FLAG_SINAI_OPT = 1 << 9,
- MTHCA_FLAG_LIVEFISH = 1 << 10
};
enum {
@@ -594,15 +593,6 @@
ULONG pi_nDataItems,
...
);
-
-
-static inline int mthca_is_livefish(struct mthca_dev *mdev)
-{
- if(mdev == NULL) {
- return TRUE;
- }
- return mdev->mthca_flags & MTHCA_FLAG_LIVEFISH;
-}
void mthca_get_av_params( struct mthca_ah *ah_p, u8 *port_num, __be16 *dlid, u8 *sr, u8 *path_bits );
--- hw/mthca/kernel/mthca_main.c Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/mthca_main.c Mon Jun 28 10:52:26 2010
@@ -31,7 +31,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: mthca_main.c 2142 2009-05-03 09:32:01Z leonidk $
+ * $Id: mthca_main.c 5526 2010-02-03 10:10:56Z leonid $
*/
#include "mthca_dev.h"
@@ -69,8 +69,7 @@
TAVOR, /* MT23108 */
ARBEL_COMPAT, /* MT25208 in Tavor compat mode */
ARBEL_NATIVE, /* MT25218 with extended features */
- SINAI, /* MT25204 */
- LIVEFISH /* a burning device */
+ SINAI /* MT25204 */
};
#define MTHCA_FW_VER(major, minor, subminor) \
@@ -85,8 +84,7 @@
{ MTHCA_FW_VER(3, 3, 2), MTHCA_FW_VER(3, 5, 0), 0, 0 }, /* TAVOR */
{ MTHCA_FW_VER(4, 7, 0), MTHCA_FW_VER(4, 8, 200), 0, 1 }, /* ARBEL_COMPAT */
{ MTHCA_FW_VER(5, 1, 0), MTHCA_FW_VER(5, 3, 0), 1, 1 }, /* ARBEL_NATIVE */
- { MTHCA_FW_VER(1, 0, 800), MTHCA_FW_VER(1, 2, 0), 1, 1 }, /* SINAI */
- { MTHCA_FW_VER(0, 0, 0), MTHCA_FW_VER(0, 0, 0), 0, 0 } /* LIVEFISH */
+ { MTHCA_FW_VER(1, 0, 800), MTHCA_FW_VER(1, 2, 0), 1, 1 } /* SINAI */
};
@@ -108,15 +106,6 @@
HCA(TOPSPIN, ARBEL, ARBEL_NATIVE),
HCA(TOPSPIN, SINAI_OLD, SINAI),
HCA(TOPSPIN, SINAI, SINAI),
- // live fishes
- HCA(MELLANOX, TAVOR_BD, LIVEFISH),
- HCA(MELLANOX, ARBEL_BD, LIVEFISH),
- HCA(MELLANOX, SINAI_OLD_BD, LIVEFISH),
- HCA(MELLANOX, SINAI_BD, LIVEFISH),
- HCA(TOPSPIN, TAVOR_BD, LIVEFISH),
- HCA(TOPSPIN, ARBEL_BD, LIVEFISH),
- HCA(TOPSPIN, SINAI_OLD_BD, LIVEFISH),
- HCA(TOPSPIN, SINAI_BD, LIVEFISH),
};
#define MTHCA_PCI_TABLE_SIZE (sizeof(mthca_pci_table)/sizeof(struct pci_device_id))
@@ -967,7 +956,6 @@
InitializeListHead(&ext->hca.hob.event_list);
KeInitializeSpinLock(&ext->hca.hob.event_list_lock);
-run_as_livefish:
/* allocate mdev structure */
mdev = kzalloc(sizeof *mdev, GFP_KERNEL);
if (!mdev) {
@@ -982,10 +970,6 @@
mdev->ext = ext; /* pointer to DEVICE OBJECT extension */
mdev->hca_type = p_id->driver_data;
mdev->ib_dev.mdev = mdev;
- if (p_id->driver_data == LIVEFISH)
- mdev->mthca_flags |= MTHCA_FLAG_LIVEFISH;
- if (mthca_is_livefish(mdev))
- goto done;
if (ext->hca_hidden)
mdev->mthca_flags |= MTHCA_FLAG_DDR_HIDDEN;
if (mthca_hca_table[p_id->driver_data].is_memfree)
@@ -1042,7 +1026,6 @@
goto err_cleanup;
}
- done:
ext->hca.mdev = mdev;
mdev->state = MTHCA_DEV_INITIALIZED;
return 0;
@@ -1071,20 +1054,6 @@
err_free_dev:
kfree(mdev);
- /* we failed device initialization - try to simulate "livefish" device to facilitate using FW burning tools */
- {
- USHORT dev_id = ext->hcaConfig.DeviceID;
-
- if (dev_id == PCI_DEVICE_ID_MELLANOX_ARBEL)
- dev_id = PCI_DEVICE_ID_MELLANOX_ARBEL_COMPAT;
- p_id = mthca_find_pci_dev( (unsigned)ext->hcaConfig.VendorID, dev_id + 1 );
- if (p_id == NULL) {
- status = STATUS_NO_SUCH_DEVICE;
- goto end;
- }
- goto run_as_livefish;
- }
-
end:
return status;
}
@@ -1098,8 +1067,6 @@
ext->hca.mdev = NULL;
if (mdev) {
mdev->state = MTHCA_DEV_UNINITIALIZED;
- if (mthca_is_livefish(mdev))
- goto done;
mthca_unregister_device(mdev);
for (p = 1; p <= mdev->limits.num_ports; ++p)
@@ -1120,7 +1087,6 @@
mthca_cleanup_uar_table(mdev);
mthca_close_hca(mdev);
mthca_cmd_cleanup(mdev);
-done:
kfree(mdev);
}
}
--- hw/mthca/kernel/mthca_provider.c Tue Apr 27 18:49:06 2010
+++ hw/mthca/kernel/mthca_provider.c Mon Jun 28 10:52:26 2010
@@ -31,7 +31,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: mthca_provider.c 2033 2009-03-17 16:05:55Z stansmith $
+ * $Id: mthca_provider.c 5526 2010-02-03 10:10:56Z leonid $
*/
#include <ib_smi.h>
@@ -69,15 +69,6 @@
RtlZeroMemory(props, sizeof *props);
- if (mthca_is_livefish(mdev)) {
- props->max_pd = 1;
- if ( !mdev || !mdev->ext )
- return err;
- props->vendor_id = mdev->ext->hcaConfig.VendorID;
- props->vendor_part_id = mdev->ext->hcaConfig.DeviceID;
- return 0;
- }
-
in_mad = kzalloc(sizeof *in_mad, GFP_KERNEL);
out_mad = kmalloc(sizeof *out_mad, GFP_KERNEL);
if (!in_mad || !out_mad)
@@ -354,9 +345,6 @@
goto err_nomem;
}
- if (mthca_is_livefish(to_mdev(ibdev)))
- goto done;
-
err = mthca_uar_alloc(to_mdev(ibdev), &context->uar);
if (err)
goto err_uar_alloc;
@@ -399,7 +387,6 @@
goto err_init_user;
}
-done:
err = ib_copy_to_umv_buf(p_umv_buf, &uresp, sizeof uresp);
if (err)
goto err_copy_to_umv_buf;
@@ -428,17 +415,14 @@
int mthca_dealloc_ucontext(struct ib_ucontext *context)
{
- struct mthca_ucontext *mucontext = to_mucontext(context);
+ struct mthca_ucontext *mucontext = to_mucontext(context);
- if (mthca_is_livefish(to_mdev(context->device)))
- goto done;
mthca_cleanup_user_db_tab(to_mdev(context->device), &mucontext->uar,
- mucontext->db_tab);
+ mucontext->db_tab);
MmUnmapLockedPages( mucontext->ibucontext.user_uar, mucontext->mdl );
IoFreeMdl(mucontext->mdl);
iounmap(mucontext->kva, PAGE_SIZE);
mthca_uar_free(to_mdev(context->device), &mucontext->uar);
-done:
kfree(mucontext);
return 0;
@@ -466,15 +450,11 @@
goto err_mem;
}
- if (mthca_is_livefish(to_mdev(ibdev)))
- goto done;
-
err = mthca_pd_alloc(to_mdev(ibdev), !context, pd);
if (err) {
goto err_pd_alloc;
}
-done:
if (p_umv_buf && p_umv_buf->command) {
resp.pd_handle = (u64)(UINT_PTR)pd;
resp.pdn = pd->pd_num;
@@ -497,12 +477,7 @@
int mthca_dealloc_pd(struct ib_pd *pd)
{
- if (mthca_is_livefish(to_mdev(pd->device)))
- goto done;
-
mthca_pd_free(to_mdev(pd->device), to_mpd(pd));
-
-done:
kfree(pd);
return 0;
}
--- hw/mthca/user/mlnx_uvp.c Tue Apr 27 18:49:27 2010
+++ hw/mthca/user/mlnx_uvp.c Mon Jun 28 10:52:27 2010
@@ -29,7 +29,7 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
- * $Id: mlnx_uvp.c 593 2007-02-15 07:39:49Z sleybo $
+ * $Id: mlnx_uvp.c 5526 2010-02-03 10:10:56Z leonid $
*/
#include "mt_l2w.h"
@@ -71,23 +71,6 @@
#define PCI_VENDOR_ID_TOPSPIN 0x1867
#endif
-/* live fishes */
-#ifndef PCI_DEVICE_ID_MELLANOX_TAVOR_BD
-#define PCI_DEVICE_ID_MELLANOX_TAVOR_BD 0x5a45
-#endif
-
-#ifndef PCI_DEVICE_ID_MELLANOX_ARBEL_BD
-#define PCI_DEVICE_ID_MELLANOX_ARBEL_BD 0x6279
-#endif
-
-#ifndef PCI_DEVICE_ID_MELLANOX_SINAI_OLD_BD
-#define PCI_DEVICE_ID_MELLANOX_SINAI_OLD_BD 0x5e8d
-#endif
-
-#ifndef PCI_DEVICE_ID_MELLANOX_SINAI_BD
-#define PCI_DEVICE_ID_MELLANOX_SINAI_BD 0x6275
-#endif
-
#define HCA(v, d, t) \
{ PCI_VENDOR_ID_##v, PCI_DEVICE_ID_MELLANOX_##d, MTHCA_##t }
@@ -107,15 +90,6 @@
HCA( TOPSPIN, ARBEL, ARBEL),
HCA( TOPSPIN, SINAI_OLD, ARBEL),
HCA( TOPSPIN, SINAI, ARBEL),
- // live fishes
- HCA(MELLANOX, TAVOR_BD, LIVEFISH),
- HCA(MELLANOX, ARBEL_BD, LIVEFISH),
- HCA(MELLANOX, SINAI_OLD_BD, LIVEFISH),
- HCA(MELLANOX, SINAI_BD, LIVEFISH),
- HCA(TOPSPIN, TAVOR_BD, LIVEFISH),
- HCA(TOPSPIN, ARBEL_BD, LIVEFISH),
- HCA(TOPSPIN, SINAI_OLD_BD, LIVEFISH),
- HCA(TOPSPIN, SINAI_BD, LIVEFISH),
};
static struct ibv_context_ops mthca_ctx_ops = {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20100831/b15c1555/attachment.html>
More information about the ofw
mailing list