linux/drivers/infiniband/hw/mthca
Roland Dreier 532c3b5817 IB/mthca: Fix mthca_write_mtt() on HCAs with hidden memory
Commit b2875d4c ("IB/mthca: Always fill MTTs from CPU") causes a crash
in mthca_write_mtt() with non-memfree HCAs that have their memory
hidden (that is, have only two PCI BARs instead of having a third BAR
that allows access to the RAM attached to the HCA) on 64-bit
architectures.  This is because the commit just before, c20e20ab
("IB/mthca: Merge MR and FMR space on 64-bit systems") makes
dev->mr_table.fmr_mtt_buddy equal to &dev->mr_table.mtt_buddy and
hence mthca_write_mtt() tries to write directly into the HCA's MTT
table.  However, since that table is in the HCA's memory, this is
impossible without the PCI BAR that gives access to that memory.

This causes a crash because mthca_tavor_write_mtt_seg() basically
tries to dereference some offset of a NULL pointer.  Fix this by
adding a test of MTHCA_FLAG_FMR in mthca_write_mtt() so that we always
use the WRITE_MTT firmware command rather than writing directly if
FMRs are not enabled.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-04-24 16:31:04 -07:00
..
Kconfig IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y 2006-04-02 14:39:20 -07:00
Makefile IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y 2006-04-02 14:39:20 -07:00
mthca_allocator.c IB/mthca: Use IRQ safe locks to protect allocation bitmaps 2006-08-31 17:25:56 -07:00
mthca_av.c [PATCH] slab: remove SLAB_ATOMIC 2006-12-07 08:39:24 -08:00
mthca_catas.c WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
mthca_cmd.c IB/mthca: Fix reserved MTTs calculation on mem-free HCAs 2007-02-12 16:16:29 -08:00
mthca_cmd.h IB: simplify static rate encoding 2006-04-10 09:43:47 -07:00
mthca_config_reg.h
mthca_cq.c IB: Return qp pointer as part of ib_wc 2007-02-04 14:11:55 -08:00
mthca_dev.h IB/mthca: Always fill MTTs from CPU 2007-02-12 16:16:29 -08:00
mthca_doorbell.h
mthca_eq.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_mad.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_main.c IB/mthca: Update HCA firmware revisions 2007-04-18 20:21:02 -07:00
mthca_mcg.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_memfree.c IB/mthca: Fix allocation of ICM chunks in coherent memory 2007-02-16 13:57:33 -08:00
mthca_memfree.h IB/mthca: Fix access to MTT and MPT tables on non-cache-coherent CPUs 2007-02-12 16:16:29 -08:00
mthca_mr.c IB/mthca: Fix mthca_write_mtt() on HCAs with hidden memory 2007-04-24 16:31:04 -07:00
mthca_pd.c IB/mthca: Fix section mismatches 2006-11-29 15:33:06 -08:00
mthca_profile.c IB/mthca: Merge MR and FMR space on 64-bit systems 2007-02-12 16:16:29 -08:00
mthca_profile.h
mthca_provider.c IB/mthca: Always fill MTTs from CPU 2007-02-12 16:16:29 -08:00
mthca_provider.h IB/mthca: Fix access to MTT and MPT tables on non-cache-coherent CPUs 2007-02-12 16:16:29 -08:00
mthca_qp.c IB/mthca: Fix error path in mthca_alloc_memfree() 2007-03-01 13:17:14 -08:00
mthca_reset.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mthca_srq.c IB/mthca: Work around gcc bug on sparc64 2007-02-10 08:00:49 -08:00
mthca_uar.c IB/mthca: Don't use privileged UAR for kernel access 2006-09-22 15:17:18 -07:00
mthca_user.h IB/mthca: Add device-specific support for resizing CQs 2006-03-20 10:08:08 -08:00
mthca_wqe.h