linux/drivers/net/mlx4
Vladimir Sokolovsky 2d92865158 mlx4_core: Use MOD_STAT_CFG command to get minimal page size
There was a bug in some versions of the mlx4 driver in
mlx4_alloc_fmr(), which hardcoded the minimum acceptable page_shift to
be 12.  However, new ConnectX firmware can support a minimum
page_shift of 9 (log_pg_sz of 9 returned by QUERY_DEV_LIM) -- so with
old drivers, ib_fmr_alloc() would fail for ULPs using the device
minimum when creating FMRs.

To preserve firmware compatibility with released mlx4 drivers, the
firmware will continue to return 12 as before for log_page_sz in
QUERY_DEV_CAP for these drivers.  However, to enable new drivers to
take advantage of the available smaller page size, the mlx4 driver now
first sets the log_pg_sz to the device minimum by setting a
log_page_sz value to 0 via the MOD_STAT_CFG command and then reading
the real minimum via QUERY_DEV_CAP.

Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il>
Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2008-07-14 23:48:53 -07:00
..
Makefile IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters 2007-05-08 18:00:38 -07:00
alloc.c mlx4_core: Add HW queues allocation helpers 2008-04-25 14:27:08 -07:00
catas.c mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums 2008-04-16 21:01:08 -07:00
cmd.c mlx4_core: Move opening brace of function onto a new line 2008-04-16 21:01:04 -07:00
cq.c mlx4_core: Add a way to set the "collapsed" CQ flag 2008-04-29 13:46:50 -07:00
eq.c mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums 2008-04-16 21:01:08 -07:00
fw.c mlx4_core: Use MOD_STAT_CFG command to get minimal page size 2008-07-14 23:48:53 -07:00
fw.h mlx4_core: Use MOD_STAT_CFG command to get minimal page size 2008-07-14 23:48:53 -07:00
icm.c SG: Change sg_set_page() to take length and offset argument 2007-10-24 11:20:47 +02:00
icm.h mlx4_core: Write MTTs from CPU instead with of WRITE_MTT FW command 2007-10-09 19:59:16 -07:00
intf.c mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums 2008-04-16 21:01:08 -07:00
main.c mlx4_core: Use MOD_STAT_CFG command to get minimal page size 2008-07-14 23:48:53 -07:00
mcg.c IB/mlx4: Add support for blocking multicast loopback packets 2008-07-14 23:48:48 -07:00
mlx4.h mlx4_core: Move kernel doorbell management into core 2008-04-23 11:55:45 -07:00
mr.c mlx4_core: Support creation of FMRs with pages smaller than 4K 2008-05-05 15:56:52 -07:00
pd.c mlx4_core: Fix section mismatches 2007-10-10 15:43:54 -07:00
profile.c IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters 2007-05-08 18:00:38 -07:00
qp.c mlx4_core: Add helper to move QP to ready-to-send 2008-04-25 14:52:32 -07:00
reset.c mlx4_core: Wait 1 second after reset before accessing device 2007-08-13 08:47:44 -07:00
srq.c mlx4_core: Fix section mismatches 2007-10-10 15:43:54 -07:00