diff options
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_profile.c')
| -rw-r--r-- | drivers/infiniband/hw/mthca/mthca_profile.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_profile.c b/drivers/infiniband/hw/mthca/mthca_profile.c index 08a909371b0..58d44aa3c30 100644 --- a/drivers/infiniband/hw/mthca/mthca_profile.c +++ b/drivers/infiniband/hw/mthca/mthca_profile.c @@ -152,7 +152,7 @@ u64 mthca_make_profile(struct mthca_dev *dev,  		}  		if (total_size > mem_avail) {  			mthca_err(dev, "Profile requires 0x%llx bytes; " -				  "won't in 0x%llx bytes of context memory.\n", +				  "won't fit in 0x%llx bytes of context memory.\n",  				  (unsigned long long) total_size,  				  (unsigned long long) mem_avail);  			kfree(profile); @@ -262,6 +262,14 @@ u64 mthca_make_profile(struct mthca_dev *dev,  	 */  	dev->limits.num_pds = MTHCA_NUM_PDS; +	if (dev->mthca_flags & MTHCA_FLAG_SINAI_OPT && +	    init_hca->log_mpt_sz > 23) { +		mthca_warn(dev, "MPT table too large (requested size 2^%d >= 2^24)\n", +			   init_hca->log_mpt_sz); +		mthca_warn(dev, "Disabling memory key throughput optimization.\n"); +		dev->mthca_flags &= ~MTHCA_FLAG_SINAI_OPT; +	} +  	/*  	 * For Tavor, FMRs use ioremapped PCI memory. For 32 bit  	 * systems it may use too much vmalloc space to map all MTT  |