mlx4_core: Handle multi-physical function devices
MT26468 (PCI ID 0x6764) devices can expose multiple physical functions. The current driver only handles the primary physical function. For other functions, the QUERY_FW firmware command will fail with the CMD_STAT_MULTI_FUNC_REQ error code. Don't try to drive such devices, but print a message saying the driver is skipping those devices rather than just "QUERY_FW command failed." Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il> [ Rather than keeping unsupported devices bound to the driver, simply print a more informative error message and exit - Roland ] Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:

committed by
Roland Dreier

parent
626f380d0b
commit
cc4ac2e7fb
@@ -80,7 +80,9 @@ enum {
|
||||
/* Bad management packet (silently discarded): */
|
||||
CMD_STAT_BAD_PKT = 0x30,
|
||||
/* More outstanding CQEs in CQ than new CQ size: */
|
||||
CMD_STAT_BAD_SIZE = 0x40
|
||||
CMD_STAT_BAD_SIZE = 0x40,
|
||||
/* Multi Function device support required: */
|
||||
CMD_STAT_MULTI_FUNC_REQ = 0x50,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -128,6 +130,7 @@ static int mlx4_status_to_errno(u8 status)
|
||||
[CMD_STAT_LAM_NOT_PRE] = -EAGAIN,
|
||||
[CMD_STAT_BAD_PKT] = -EINVAL,
|
||||
[CMD_STAT_BAD_SIZE] = -ENOMEM,
|
||||
[CMD_STAT_MULTI_FUNC_REQ] = -EACCES,
|
||||
};
|
||||
|
||||
if (status >= ARRAY_SIZE(trans_table) ||
|
||||
|
Reference in New Issue
Block a user