mlx4_core: Don't read reserved fields in mlx4_QUERY_ADAPTER()

The firmware QUERY_ADAPTER command does not return vendor_id,
device_id, and revision_id; eliminate these fields from the query.

Initialize the rev_id field of the mlx4 device via init_node_data (MAD
IFC query), as is done in the query_device verb implementation.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>

authored by Jack Morgenstein and committed by Roland Dreier 893da759 6ccef1de

+1 -10
+1
drivers/infiniband/hw/mlx4/main.c
··· 468 468 if (err) 469 469 goto out; 470 470 471 + dev->dev->rev_id = be32_to_cpup((__be32 *) (out_mad->data + 32)); 471 472 memcpy(&dev->ib_dev.node_guid, out_mad->data + 12, 8); 472 473 473 474 out:
-6
drivers/net/mlx4/fw.c
··· 617 617 int err; 618 618 619 619 #define QUERY_ADAPTER_OUT_SIZE 0x100 620 - #define QUERY_ADAPTER_VENDOR_ID_OFFSET 0x00 621 - #define QUERY_ADAPTER_DEVICE_ID_OFFSET 0x04 622 - #define QUERY_ADAPTER_REVISION_ID_OFFSET 0x08 623 620 #define QUERY_ADAPTER_INTA_PIN_OFFSET 0x10 624 621 #define QUERY_ADAPTER_VSD_OFFSET 0x20 625 622 ··· 630 633 if (err) 631 634 goto out; 632 635 633 - MLX4_GET(adapter->vendor_id, outbox, QUERY_ADAPTER_VENDOR_ID_OFFSET); 634 - MLX4_GET(adapter->device_id, outbox, QUERY_ADAPTER_DEVICE_ID_OFFSET); 635 - MLX4_GET(adapter->revision_id, outbox, QUERY_ADAPTER_REVISION_ID_OFFSET); 636 636 MLX4_GET(adapter->inta_pin, outbox, QUERY_ADAPTER_INTA_PIN_OFFSET); 637 637 638 638 get_board_id(outbox + QUERY_ADAPTER_VSD_OFFSET / 4,
-3
drivers/net/mlx4/fw.h
··· 99 99 }; 100 100 101 101 struct mlx4_adapter { 102 - u32 vendor_id; 103 - u32 device_id; 104 - u32 revision_id; 105 102 char board_id[MLX4_BOARD_ID_LEN]; 106 103 u8 inta_pin; 107 104 };
-1
drivers/net/mlx4/main.c
··· 534 534 } 535 535 536 536 priv->eq_table.inta_pin = adapter.inta_pin; 537 - dev->rev_id = adapter.revision_id; 538 537 memcpy(dev->board_id, adapter.board_id, sizeof dev->board_id); 539 538 540 539 return 0;