|
Thomas Bogendoerfer |
dbfb07 |
From: Shay Agroskin <shayagr@amazon.com>
|
|
Thomas Bogendoerfer |
dbfb07 |
Date: Mon, 21 Sep 2020 11:37:38 +0300
|
|
Thomas Bogendoerfer |
dbfb07 |
Subject: net: ena: Capitalize all log strings and improve code readability
|
|
Thomas Bogendoerfer |
dbfb07 |
Patch-mainline: v5.10-rc1
|
|
Thomas Bogendoerfer |
dbfb07 |
Git-commit: bf2746e849c951a7338abeab591cbef5c78555d7
|
|
Thomas Bogendoerfer |
dbfb07 |
References: bsc#1177397
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
Capitalize all log strings printed by the ena driver to make their
|
|
Thomas Bogendoerfer |
dbfb07 |
format uniform across it.
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
Also fix indentation, spelling mistakes and comments to improve code
|
|
Thomas Bogendoerfer |
dbfb07 |
readability. This also includes adding comments to macros/enums whose
|
|
Thomas Bogendoerfer |
dbfb07 |
purpose might be difficult to understand.
|
|
Thomas Bogendoerfer |
dbfb07 |
Separate some code into functions to make it easier to understand the
|
|
Thomas Bogendoerfer |
dbfb07 |
purpose of these lines.
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
Signed-off-by: Amit Bernstein <amitbern@amazon.com>
|
|
Thomas Bogendoerfer |
dbfb07 |
Signed-off-by: Shay Agroskin <shayagr@amazon.com>
|
|
Thomas Bogendoerfer |
dbfb07 |
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Thomas Bogendoerfer |
dbfb07 |
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
|
|
Thomas Bogendoerfer |
dbfb07 |
---
|
|
Thomas Bogendoerfer |
dbfb07 |
drivers/net/ethernet/amazon/ena/ena_admin_defs.h | 53 +++----
|
|
Thomas Bogendoerfer |
dbfb07 |
drivers/net/ethernet/amazon/ena/ena_com.c | 168 ++++++++++++-----------
|
|
Thomas Bogendoerfer |
dbfb07 |
drivers/net/ethernet/amazon/ena/ena_com.h | 2
|
|
Thomas Bogendoerfer |
dbfb07 |
drivers/net/ethernet/amazon/ena/ena_eth_com.c | 36 ++--
|
|
Thomas Bogendoerfer |
dbfb07 |
drivers/net/ethernet/amazon/ena/ena_eth_com.h | 6
|
|
Thomas Bogendoerfer |
dbfb07 |
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 2
|
|
Thomas Bogendoerfer |
dbfb07 |
drivers/net/ethernet/amazon/ena/ena_netdev.c | 64 ++++----
|
|
Thomas Bogendoerfer |
dbfb07 |
7 files changed, 178 insertions(+), 153 deletions(-)
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
--- a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
|
|
Thomas Bogendoerfer |
dbfb07 |
+++ b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -28,6 +28,7 @@ enum ena_admin_aq_completion_status {
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_RESOURCE_BUSY = 7,
|
|
Thomas Bogendoerfer |
dbfb07 |
};
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
+/* subcommands for the set/get feature admin commands */
|
|
Thomas Bogendoerfer |
dbfb07 |
enum ena_admin_aq_feature_id {
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_DEVICE_ATTRIBUTES = 1,
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_MAX_QUEUES_NUM = 2,
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -168,7 +169,7 @@ struct ena_admin_acq_common_desc {
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 extended_status;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* indicates to the driver which AQ entry has been consumed by the
|
|
Thomas Bogendoerfer |
dbfb07 |
- * device and could be reused
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * device and could be reused
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 sq_head_indx;
|
|
Thomas Bogendoerfer |
dbfb07 |
};
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -213,8 +214,8 @@ struct ena_admin_aq_create_sq_cmd {
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u8 sq_caps_3;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- /* associated completion queue id. This CQ must be created prior to
|
|
Thomas Bogendoerfer |
dbfb07 |
- * SQ creation
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* associated completion queue id. This CQ must be created prior to SQ
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * creation
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 cq_idx;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -353,7 +354,7 @@ struct ena_admin_aq_get_stats_cmd {
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 queue_idx;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* device id, value 0xFFFF means mine. only privileged device can get
|
|
Thomas Bogendoerfer |
dbfb07 |
- * stats of other device
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * stats of other device
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 device_id;
|
|
Thomas Bogendoerfer |
dbfb07 |
};
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -448,7 +449,9 @@ struct ena_admin_device_attr_feature_des
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
u32 device_version;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- /* bitmap of ena_admin_aq_feature_id */
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* bitmap of ena_admin_aq_feature_id, which represents supported
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * subcommands for the set/get feature admin commands.
|
|
Thomas Bogendoerfer |
dbfb07 |
+ */
|
|
Thomas Bogendoerfer |
dbfb07 |
u32 supported_features;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
u32 reserved3;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -534,32 +537,30 @@ struct ena_admin_feature_llq_desc {
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
u32 max_llq_depth;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- /* specify the header locations the device supports. bitfield of
|
|
Thomas Bogendoerfer |
dbfb07 |
- * enum ena_admin_llq_header_location.
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* specify the header locations the device supports. bitfield of enum
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * ena_admin_llq_header_location.
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 header_location_ctrl_supported;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* the header location the driver selected to use. */
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 header_location_ctrl_enabled;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- /* if inline header is specified - this is the size of descriptor
|
|
Thomas Bogendoerfer |
dbfb07 |
- * list entry. If header in a separate ring is specified - this is
|
|
Thomas Bogendoerfer |
dbfb07 |
- * the size of header ring entry. bitfield of enum
|
|
Thomas Bogendoerfer |
dbfb07 |
- * ena_admin_llq_ring_entry_size. specify the entry sizes the device
|
|
Thomas Bogendoerfer |
dbfb07 |
- * supports
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* if inline header is specified - this is the size of descriptor list
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * entry. If header in a separate ring is specified - this is the size
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * of header ring entry. bitfield of enum ena_admin_llq_ring_entry_size.
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * specify the entry sizes the device supports
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 entry_size_ctrl_supported;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* the entry size the driver selected to use. */
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 entry_size_ctrl_enabled;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- /* valid only if inline header is specified. First entry associated
|
|
Thomas Bogendoerfer |
dbfb07 |
- * with the packet includes descriptors and header. Rest of the
|
|
Thomas Bogendoerfer |
dbfb07 |
- * entries occupied by descriptors. This parameter defines the max
|
|
Thomas Bogendoerfer |
dbfb07 |
- * number of descriptors precedding the header in the first entry.
|
|
Thomas Bogendoerfer |
dbfb07 |
- * The field is bitfield of enum
|
|
Thomas Bogendoerfer |
dbfb07 |
- * ena_admin_llq_num_descs_before_header and specify the values the
|
|
Thomas Bogendoerfer |
dbfb07 |
- * device supports
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* valid only if inline header is specified. First entry associated with
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * the packet includes descriptors and header. Rest of the entries
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * occupied by descriptors. This parameter defines the max number of
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * descriptors precedding the header in the first entry. The field is
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * bitfield of enum ena_admin_llq_num_descs_before_header and specify
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * the values the device supports
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 desc_num_before_header_supported;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -567,7 +568,7 @@ struct ena_admin_feature_llq_desc {
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 desc_num_before_header_enabled;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* valid only if inline was chosen. bitfield of enum
|
|
Thomas Bogendoerfer |
dbfb07 |
- * ena_admin_llq_stride_ctrl
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * ena_admin_llq_stride_ctrl
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 descriptors_stride_ctrl_supported;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -602,8 +603,8 @@ struct ena_admin_queue_ext_feature_field
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
u32 max_tx_header_size;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- /* Maximum Descriptors number, including meta descriptor, allowed for
|
|
Thomas Bogendoerfer |
dbfb07 |
- * a single Tx packet
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* Maximum Descriptors number, including meta descriptor, allowed for a
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * single Tx packet
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 max_per_packet_tx_descs;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -626,8 +627,8 @@ struct ena_admin_queue_feature_desc {
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
u32 max_header_size;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- /* Maximum Descriptors number, including meta descriptor, allowed for
|
|
Thomas Bogendoerfer |
dbfb07 |
- * a single Tx packet
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* Maximum Descriptors number, including meta descriptor, allowed for a
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * single Tx packet
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 max_packet_tx_descs;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1015,7 +1016,7 @@ struct ena_admin_set_feat_resp {
|
|
Thomas Bogendoerfer |
dbfb07 |
struct ena_admin_aenq_common_desc {
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 group;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- u16 syndrom;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ u16 syndrome;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* 0 : phase
|
|
Thomas Bogendoerfer |
dbfb07 |
* 7:1 : reserved - MBZ
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1039,7 +1040,7 @@ enum ena_admin_aenq_group {
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_AENQ_GROUPS_NUM = 5,
|
|
Thomas Bogendoerfer |
dbfb07 |
};
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
-enum ena_admin_aenq_notification_syndrom {
|
|
Thomas Bogendoerfer |
dbfb07 |
+enum ena_admin_aenq_notification_syndrome {
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_SUSPEND = 0,
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_RESUME = 1,
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_UPDATE_HINTS = 2,
|
|
Thomas Bogendoerfer |
dbfb07 |
--- a/drivers/net/ethernet/amazon/ena/ena_com.c
|
|
Thomas Bogendoerfer |
dbfb07 |
+++ b/drivers/net/ethernet/amazon/ena/ena_com.c
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -71,7 +71,7 @@ static int ena_com_mem_addr_set(struct e
|
|
Thomas Bogendoerfer |
dbfb07 |
dma_addr_t addr)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
if ((addr & GENMASK_ULL(ena_dev->dma_addr_bits - 1, 0)) != addr) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("dma address has more bits that the device supports\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("DMA address has more bits that the device supports\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EINVAL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -81,16 +81,16 @@ static int ena_com_mem_addr_set(struct e
|
|
Thomas Bogendoerfer |
dbfb07 |
return 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
-static int ena_com_admin_init_sq(struct ena_com_admin_queue *queue)
|
|
Thomas Bogendoerfer |
dbfb07 |
+static int ena_com_admin_init_sq(struct ena_com_admin_queue *admin_queue)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
- struct ena_com_admin_sq *sq = &queue->sq;
|
|
Thomas Bogendoerfer |
dbfb07 |
- u16 size = ADMIN_SQ_SIZE(queue->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ struct ena_com_admin_sq *sq = &admin_queue->sq;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ u16 size = ADMIN_SQ_SIZE(admin_queue->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- sq->entries = dma_zalloc_coherent(queue->q_dmadev, size, &sq->dma_addr,
|
|
Thomas Bogendoerfer |
dbfb07 |
- GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ sq->entries = dma_zalloc_coherent(admin_queue->q_dmadev, size,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ &sq->dma_addr, GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!sq->entries) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ENOMEM;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -103,16 +103,16 @@ static int ena_com_admin_init_sq(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
return 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
-static int ena_com_admin_init_cq(struct ena_com_admin_queue *queue)
|
|
Thomas Bogendoerfer |
dbfb07 |
+static int ena_com_admin_init_cq(struct ena_com_admin_queue *admin_queue)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
- struct ena_com_admin_cq *cq = &queue->cq;
|
|
Thomas Bogendoerfer |
dbfb07 |
- u16 size = ADMIN_CQ_SIZE(queue->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ struct ena_com_admin_cq *cq = &admin_queue->cq;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ u16 size = ADMIN_CQ_SIZE(admin_queue->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- cq->entries = dma_zalloc_coherent(queue->q_dmadev, size, &cq->dma_addr,
|
|
Thomas Bogendoerfer |
dbfb07 |
- GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ cq->entries = dma_zalloc_coherent(admin_queue->q_dmadev, size,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ &cq->dma_addr, GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!cq->entries) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ENOMEM;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -122,20 +122,20 @@ static int ena_com_admin_init_cq(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
return 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
-static int ena_com_admin_init_aenq(struct ena_com_dev *dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
+static int ena_com_admin_init_aenq(struct ena_com_dev *ena_dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
struct ena_aenq_handlers *aenq_handlers)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
- struct ena_com_aenq *aenq = &dev->aenq;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ struct ena_com_aenq *aenq = &ena_dev->aenq;
|
|
Thomas Bogendoerfer |
dbfb07 |
u32 addr_low, addr_high, aenq_caps;
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 size;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- dev->aenq.q_depth = ENA_ASYNC_QUEUE_DEPTH;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ena_dev->aenq.q_depth = ENA_ASYNC_QUEUE_DEPTH;
|
|
Thomas Bogendoerfer |
dbfb07 |
size = ADMIN_AENQ_SIZE(ENA_ASYNC_QUEUE_DEPTH);
|
|
Thomas Bogendoerfer |
dbfb07 |
- aenq->entries = dma_zalloc_coherent(dev->dmadev, size, &aenq->dma_addr,
|
|
Thomas Bogendoerfer |
dbfb07 |
- GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ aenq->entries = dma_zalloc_coherent(ena_dev->dmadev, size,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ &aenq->dma_addr, GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!aenq->entries) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ENOMEM;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -145,18 +145,18 @@ static int ena_com_admin_init_aenq(struc
|
|
Thomas Bogendoerfer |
dbfb07 |
addr_low = ENA_DMA_ADDR_TO_UINT32_LOW(aenq->dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
addr_high = ENA_DMA_ADDR_TO_UINT32_HIGH(aenq->dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- writel(addr_low, dev->reg_bar + ENA_REGS_AENQ_BASE_LO_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
- writel(addr_high, dev->reg_bar + ENA_REGS_AENQ_BASE_HI_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ writel(addr_low, ena_dev->reg_bar + ENA_REGS_AENQ_BASE_LO_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ writel(addr_high, ena_dev->reg_bar + ENA_REGS_AENQ_BASE_HI_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
aenq_caps = 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
- aenq_caps |= dev->aenq.q_depth & ENA_REGS_AENQ_CAPS_AENQ_DEPTH_MASK;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ aenq_caps |= ena_dev->aenq.q_depth & ENA_REGS_AENQ_CAPS_AENQ_DEPTH_MASK;
|
|
Thomas Bogendoerfer |
dbfb07 |
aenq_caps |= (sizeof(struct ena_admin_aenq_entry)
|
|
Thomas Bogendoerfer |
dbfb07 |
<< ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_SHIFT) &
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_REGS_AENQ_CAPS_AENQ_ENTRY_SIZE_MASK;
|
|
Thomas Bogendoerfer |
dbfb07 |
- writel(aenq_caps, dev->reg_bar + ENA_REGS_AENQ_CAPS_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ writel(aenq_caps, ena_dev->reg_bar + ENA_REGS_AENQ_CAPS_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(!aenq_handlers)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("aenq handlers pointer is NULL\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("AENQ handlers pointer is NULL\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EINVAL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -172,31 +172,31 @@ static void comp_ctxt_release(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
atomic_dec(&queue->outstanding_cmds);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
-static struct ena_comp_ctx *get_comp_ctxt(struct ena_com_admin_queue *queue,
|
|
Thomas Bogendoerfer |
dbfb07 |
+static struct ena_comp_ctx *get_comp_ctxt(struct ena_com_admin_queue *admin_queue,
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 command_id, bool capture)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
- if (unlikely(command_id >= queue->q_depth)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("command id is larger than the queue size. cmd_id: %u queue size %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
- command_id, queue->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ if (unlikely(command_id >= admin_queue->q_depth)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Command id is larger than the queue size. cmd_id: %u queue size %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ command_id, admin_queue->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
return NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- if (unlikely(!queue->comp_ctx)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
+ if (unlikely(!admin_queue->comp_ctx)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
pr_err("Completion context is NULL\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- if (unlikely(queue->comp_ctx[command_id].occupied && capture)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
+ if (unlikely(admin_queue->comp_ctx[command_id].occupied && capture)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
pr_err("Completion context is occupied\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (capture) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- atomic_inc(&queue->outstanding_cmds);
|
|
Thomas Bogendoerfer |
dbfb07 |
- queue->comp_ctx[command_id].occupied = true;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ atomic_inc(&admin_queue->outstanding_cmds);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ admin_queue->comp_ctx[command_id].occupied = true;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- return &queue->comp_ctx[command_id];
|
|
Thomas Bogendoerfer |
dbfb07 |
+ return &admin_queue->comp_ctx[command_id];
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
static struct ena_comp_ctx *__ena_com_submit_admin_cmd(struct ena_com_admin_queue *admin_queue,
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -217,7 +217,7 @@ static struct ena_comp_ctx *__ena_com_su
|
|
Thomas Bogendoerfer |
dbfb07 |
/* In case of queue FULL */
|
|
Thomas Bogendoerfer |
dbfb07 |
cnt = (u16)atomic_read(&admin_queue->outstanding_cmds);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (cnt >= admin_queue->q_depth) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("admin queue is full.\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Admin queue is full.\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
admin_queue->stats.out_of_space++;
|
|
Thomas Bogendoerfer |
dbfb07 |
return ERR_PTR(-ENOSPC);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -257,20 +257,21 @@ static struct ena_comp_ctx *__ena_com_su
|
|
Thomas Bogendoerfer |
dbfb07 |
return comp_ctx;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
-static int ena_com_init_comp_ctxt(struct ena_com_admin_queue *queue)
|
|
Thomas Bogendoerfer |
dbfb07 |
+static int ena_com_init_comp_ctxt(struct ena_com_admin_queue *admin_queue)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
- size_t size = queue->q_depth * sizeof(struct ena_comp_ctx);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ size_t size = admin_queue->q_depth * sizeof(struct ena_comp_ctx);
|
|
Thomas Bogendoerfer |
dbfb07 |
struct ena_comp_ctx *comp_ctx;
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 i;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- queue->comp_ctx = devm_kzalloc(queue->q_dmadev, size, GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
- if (unlikely(!queue->comp_ctx)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ admin_queue->comp_ctx =
|
|
Thomas Bogendoerfer |
dbfb07 |
+ devm_kzalloc(admin_queue->q_dmadev, size, GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ if (unlikely(!admin_queue->comp_ctx)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ENOMEM;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- for (i = 0; i < queue->q_depth; i++) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- comp_ctx = get_comp_ctxt(queue, i, false);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ for (i = 0; i < admin_queue->q_depth; i++) {
|
|
Thomas Bogendoerfer |
dbfb07 |
+ comp_ctx = get_comp_ctxt(admin_queue, i, false);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (comp_ctx)
|
|
Thomas Bogendoerfer |
dbfb07 |
init_completion(&comp_ctx->wait_event);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -336,7 +337,7 @@ static int ena_com_init_io_sq(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!io_sq->desc_addr.virt_addr) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ENOMEM;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -362,7 +363,7 @@ static int ena_com_init_io_sq(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
devm_kzalloc(ena_dev->dmadev, size, GFP_KERNEL);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!io_sq->bounce_buf_ctrl.base_buffer) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("bounce buffer memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Bounce buffer memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ENOMEM;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -422,7 +423,7 @@ static int ena_com_init_io_cq(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!io_cq->cdesc_addr.virt_addr) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory allocation failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ENOMEM;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -498,7 +499,7 @@ static void ena_com_handle_admin_complet
|
|
Thomas Bogendoerfer |
dbfb07 |
static int ena_com_comp_status_to_errno(u8 comp_status)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(comp_status != 0))
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("admin command failed[%u]\n", comp_status);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Admin command failed[%u]\n", comp_status);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
switch (comp_status) {
|
|
Thomas Bogendoerfer |
dbfb07 |
case ENA_ADMIN_SUCCESS:
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -690,7 +691,7 @@ static int ena_com_config_llq_info(struc
|
|
Thomas Bogendoerfer |
dbfb07 |
/* The desc list entry size should be whole multiply of 8
|
|
Thomas Bogendoerfer |
dbfb07 |
* This requirement comes from __iowrite64_copy()
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("illegal entry size %d\n", llq_info->desc_list_entry_size);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Illegal entry size %d\n", llq_info->desc_list_entry_size);
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EINVAL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -831,7 +832,7 @@ static u32 ena_com_reg_bar_read32(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(i == timeout)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("reading reg failed for timeout. expected: req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Reading reg failed for timeout. expected: req id[%hu] offset[%hu] actual: req id[%hu] offset[%hu]\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
mmio_read->seq_num, offset, read_resp->req_id,
|
|
Thomas Bogendoerfer |
dbfb07 |
read_resp->reg_off);
|
|
Thomas Bogendoerfer |
dbfb07 |
ret = ENA_MMIO_READ_TIMEOUT;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -898,7 +899,7 @@ static int ena_com_destroy_io_sq(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
sizeof(destroy_resp));
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret && (ret != -ENODEV)))
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("failed to destroy io sq error: %d\n", ret);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Failed to destroy io sq error: %d\n", ret);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1007,7 +1008,7 @@ static int ena_com_get_feature_ex(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
&get_cmd.control_buffer.address,
|
|
Thomas Bogendoerfer |
dbfb07 |
control_buf_dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1128,7 +1129,7 @@ static int ena_com_indirect_table_alloca
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if ((get_resp.u.ind_table.min_size > log_size) ||
|
|
Thomas Bogendoerfer |
dbfb07 |
(get_resp.u.ind_table.max_size < log_size)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("indirect table size doesn't fit. requested size: %d while min is:%d and max %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Indirect table size doesn't fit. requested size: %d while min is:%d and max %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
1 << log_size, 1 << get_resp.u.ind_table.min_size,
|
|
Thomas Bogendoerfer |
dbfb07 |
1 << get_resp.u.ind_table.max_size);
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EINVAL;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1221,7 +1222,7 @@ static int ena_com_create_io_sq(struct e
|
|
Thomas Bogendoerfer |
dbfb07 |
&create_cmd.sq_ba,
|
|
Thomas Bogendoerfer |
dbfb07 |
io_sq->desc_addr.phys_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1250,7 +1251,7 @@ static int ena_com_create_io_sq(struct e
|
|
Thomas Bogendoerfer |
dbfb07 |
cmd_completion.llq_descriptors_offset);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("created sq[%u], depth[%u]\n", io_sq->idx, io_sq->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Created sq[%u], depth[%u]\n", io_sq->idx, io_sq->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1363,7 +1364,7 @@ int ena_com_create_io_cq(struct ena_com_
|
|
Thomas Bogendoerfer |
dbfb07 |
&create_cmd.cq_ba,
|
|
Thomas Bogendoerfer |
dbfb07 |
io_cq->cdesc_addr.phys_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1392,7 +1393,7 @@ int ena_com_create_io_cq(struct ena_com_
|
|
Thomas Bogendoerfer |
dbfb07 |
(u32 __iomem *)((uintptr_t)ena_dev->reg_bar +
|
|
Thomas Bogendoerfer |
dbfb07 |
cmd_completion.numa_node_register_offset);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("created cq[%u], depth[%u]\n", io_cq->idx, io_cq->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Created cq[%u], depth[%u]\n", io_cq->idx, io_cq->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1585,12 +1586,12 @@ int ena_com_validate_version(struct ena_
|
|
Thomas Bogendoerfer |
dbfb07 |
return -ETIME;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_info("ena device version: %d.%d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_info("ENA device version: %d.%d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
(ver & ENA_REGS_VERSION_MAJOR_VERSION_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_REGS_VERSION_MAJOR_VERSION_SHIFT,
|
|
Thomas Bogendoerfer |
dbfb07 |
ver & ENA_REGS_VERSION_MINOR_VERSION_MASK);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_info("ena controller version: %d.%d.%d implementation version %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_info("ENA controller version: %d.%d.%d implementation version %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
(ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_REGS_CONTROLLER_VERSION_MAJOR_VERSION_SHIFT,
|
|
Thomas Bogendoerfer |
dbfb07 |
(ctrl_ver & ENA_REGS_CONTROLLER_VERSION_MINOR_VERSION_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1613,6 +1614,19 @@ int ena_com_validate_version(struct ena_
|
|
Thomas Bogendoerfer |
dbfb07 |
return 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
+static void
|
|
Thomas Bogendoerfer |
dbfb07 |
+ena_com_free_ena_admin_queue_comp_ctx(struct ena_com_dev *ena_dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ struct ena_com_admin_queue *admin_queue)
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
+{
|
|
Thomas Bogendoerfer |
dbfb07 |
+ if (!admin_queue->comp_ctx)
|
|
Thomas Bogendoerfer |
dbfb07 |
+ return;
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
+ devm_kfree(ena_dev->dmadev, admin_queue->comp_ctx);
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
+ admin_queue->comp_ctx = NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
+}
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
void ena_com_admin_destroy(struct ena_com_dev *ena_dev)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
struct ena_com_admin_queue *admin_queue = &ena_dev->admin_queue;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1621,9 +1635,8 @@ void ena_com_admin_destroy(struct ena_co
|
|
Thomas Bogendoerfer |
dbfb07 |
struct ena_com_aenq *aenq = &ena_dev->aenq;
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 size;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- if (admin_queue->comp_ctx)
|
|
Thomas Bogendoerfer |
dbfb07 |
- devm_kfree(ena_dev->dmadev, admin_queue->comp_ctx);
|
|
Thomas Bogendoerfer |
dbfb07 |
- admin_queue->comp_ctx = NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ena_com_free_ena_admin_queue_comp_ctx(ena_dev, admin_queue);
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
size = ADMIN_SQ_SIZE(admin_queue->q_depth);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (sq->entries)
|
|
Thomas Bogendoerfer |
dbfb07 |
dma_free_coherent(ena_dev->dmadev, size, sq->entries,
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1901,6 +1914,7 @@ int ena_com_get_dev_attr_feat(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
memcpy(&get_feat_ctx->dev_attr, &get_resp.u.dev_attr,
|
|
Thomas Bogendoerfer |
dbfb07 |
sizeof(get_resp.u.dev_attr));
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_dev->supported_features = get_resp.u.dev_attr.supported_features;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (ena_dev->supported_features & BIT(ENA_ADMIN_MAX_QUEUES_EXT)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1979,10 +1993,10 @@ void ena_com_admin_q_comp_intr_handler(s
|
|
Thomas Bogendoerfer |
dbfb07 |
/* ena_handle_specific_aenq_event:
|
|
Thomas Bogendoerfer |
dbfb07 |
* return the handler that is relevant to the specific event group
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
-static ena_aenq_handler ena_com_get_specific_aenq_cb(struct ena_com_dev *dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
+static ena_aenq_handler ena_com_get_specific_aenq_cb(struct ena_com_dev *ena_dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 group)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
- struct ena_aenq_handlers *aenq_handlers = dev->aenq.aenq_handlers;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ struct ena_aenq_handlers *aenq_handlers = ena_dev->aenq.aenq_handlers;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if ((group < ENA_MAX_HANDLERS) && aenq_handlers->handlers[group])
|
|
Thomas Bogendoerfer |
dbfb07 |
return aenq_handlers->handlers[group];
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1994,11 +2008,11 @@ static ena_aenq_handler ena_com_get_spec
|
|
Thomas Bogendoerfer |
dbfb07 |
* handles the aenq incoming events.
|
|
Thomas Bogendoerfer |
dbfb07 |
* pop events from the queue and apply the specific handler
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
-void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data)
|
|
Thomas Bogendoerfer |
dbfb07 |
+void ena_com_aenq_intr_handler(struct ena_com_dev *ena_dev, void *data)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
struct ena_admin_aenq_entry *aenq_e;
|
|
Thomas Bogendoerfer |
dbfb07 |
struct ena_admin_aenq_common_desc *aenq_common;
|
|
Thomas Bogendoerfer |
dbfb07 |
- struct ena_com_aenq *aenq = &dev->aenq;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ struct ena_com_aenq *aenq = &ena_dev->aenq;
|
|
Thomas Bogendoerfer |
dbfb07 |
u64 timestamp;
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_aenq_handler handler_cb;
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 masked_head, processed = 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2018,12 +2032,13 @@ void ena_com_aenq_intr_handler(struct en
|
|
Thomas Bogendoerfer |
dbfb07 |
dma_rmb();
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
timestamp = (u64)aenq_common->timestamp_low |
|
|
Thomas Bogendoerfer |
dbfb07 |
- ((u64)aenq_common->timestamp_high << 32);
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("AENQ! Group[%x] Syndrom[%x] timestamp: [%llus]\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
- aenq_common->group, aenq_common->syndrom, timestamp);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ((u64)aenq_common->timestamp_high << 32);
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("AENQ! Group[%x] Syndrome[%x] timestamp: [%llus]\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ aenq_common->group, aenq_common->syndrome, timestamp);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* Handle specific event*/
|
|
Thomas Bogendoerfer |
dbfb07 |
- handler_cb = ena_com_get_specific_aenq_cb(dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ handler_cb = ena_com_get_specific_aenq_cb(ena_dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
aenq_common->group);
|
|
Thomas Bogendoerfer |
dbfb07 |
handler_cb(data, aenq_e); /* call the actual event handler*/
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2048,7 +2063,8 @@ void ena_com_aenq_intr_handler(struct en
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* write the aenq doorbell after all AENQ descriptors were read */
|
|
Thomas Bogendoerfer |
dbfb07 |
mb();
|
|
Thomas Bogendoerfer |
dbfb07 |
- writel_relaxed((u32)aenq->head, dev->reg_bar + ENA_REGS_AENQ_HEAD_DB_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ writel_relaxed((u32)aenq->head,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ena_dev->reg_bar + ENA_REGS_AENQ_HEAD_DB_OFF);
|
|
Thomas Bogendoerfer |
dbfb07 |
mmiowb();
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2262,7 +2278,7 @@ int ena_com_set_hash_function(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
&cmd.control_buffer.address,
|
|
Thomas Bogendoerfer |
dbfb07 |
rss->hash_key_dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2431,7 +2447,7 @@ int ena_com_set_hash_ctrl(struct ena_com
|
|
Thomas Bogendoerfer |
dbfb07 |
&cmd.control_buffer.address,
|
|
Thomas Bogendoerfer |
dbfb07 |
rss->hash_ctrl_dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
cmd.control_buffer.length = sizeof(*hash_ctrl);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2492,7 +2508,7 @@ int ena_com_set_default_hash_ctrl(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
available_fields = hash_ctrl->selected_fields[i].fields &
|
|
Thomas Bogendoerfer |
dbfb07 |
hash_ctrl->supported_fields[i].fields;
|
|
Thomas Bogendoerfer |
dbfb07 |
if (available_fields != hash_ctrl->selected_fields[i].fields) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("hash control doesn't support all the desire configuration. proto %x supported %x selected %x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Hash control doesn't support all the desire configuration. proto %x supported %x selected %x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
i, hash_ctrl->supported_fields[i].fields,
|
|
Thomas Bogendoerfer |
dbfb07 |
hash_ctrl->selected_fields[i].fields);
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EOPNOTSUPP;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2530,7 +2546,7 @@ int ena_com_fill_hash_ctrl(struct ena_co
|
|
Thomas Bogendoerfer |
dbfb07 |
/* Make sure all the fields are supported */
|
|
Thomas Bogendoerfer |
dbfb07 |
supported_fields = hash_ctrl->supported_fields[proto].fields;
|
|
Thomas Bogendoerfer |
dbfb07 |
if ((hash_fields & supported_fields) != hash_fields) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("proto %d doesn't support the required fields %x. supports only: %x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Proto %d doesn't support the required fields %x. supports only: %x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
proto, hash_fields, supported_fields);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2595,7 +2611,7 @@ int ena_com_indirect_table_set(struct en
|
|
Thomas Bogendoerfer |
dbfb07 |
&cmd.control_buffer.address,
|
|
Thomas Bogendoerfer |
dbfb07 |
rss->rss_ind_tbl_dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2765,7 +2781,7 @@ int ena_com_set_host_attributes(struct e
|
|
Thomas Bogendoerfer |
dbfb07 |
&cmd.u.host_attr.debug_ba,
|
|
Thomas Bogendoerfer |
dbfb07 |
host_attr->debug_area_dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2773,7 +2789,7 @@ int ena_com_set_host_attributes(struct e
|
|
Thomas Bogendoerfer |
dbfb07 |
&cmd.u.host_attr.os_info_ba,
|
|
Thomas Bogendoerfer |
dbfb07 |
host_attr->host_info_dma_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ret)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Memory address set failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return ret;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2892,7 +2908,7 @@ int ena_com_config_dev_mode(struct ena_c
|
|
Thomas Bogendoerfer |
dbfb07 |
(llq_info->descs_num_before_header * sizeof(struct ena_eth_io_tx_desc));
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(ena_dev->tx_max_header_size == 0)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("the size of the LLQ entry is smaller than needed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("The size of the LLQ entry is smaller than needed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EINVAL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
--- a/drivers/net/ethernet/amazon/ena/ena_com.h
|
|
Thomas Bogendoerfer |
dbfb07 |
+++ b/drivers/net/ethernet/amazon/ena/ena_com.h
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -509,7 +509,7 @@ void ena_com_admin_q_comp_intr_handler(s
|
|
Thomas Bogendoerfer |
dbfb07 |
* This method goes over the async event notification queue and calls the proper
|
|
Thomas Bogendoerfer |
dbfb07 |
* aenq handler.
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
-void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data);
|
|
Thomas Bogendoerfer |
dbfb07 |
+void ena_com_aenq_intr_handler(struct ena_com_dev *ena_dev, void *data);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* ena_com_abort_admin_commands - Abort all the outstanding admin commands.
|
|
Thomas Bogendoerfer |
dbfb07 |
* @ena_dev: ENA communication layer struct
|
|
Thomas Bogendoerfer |
dbfb07 |
--- a/drivers/net/ethernet/amazon/ena/ena_eth_com.c
|
|
Thomas Bogendoerfer |
dbfb07 |
+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.c
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -18,8 +18,9 @@ static struct ena_eth_io_rx_cdesc_base *
|
|
Thomas Bogendoerfer |
dbfb07 |
cdesc = (struct ena_eth_io_rx_cdesc_base *)(io_cq->cdesc_addr.virt_addr
|
|
Thomas Bogendoerfer |
dbfb07 |
+ (head_masked * io_cq->cdesc_entry_size_in_bytes));
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- desc_phase = (READ_ONCE(cdesc->status) & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
- ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ desc_phase = (READ_ONCE(cdesc->status) &
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (desc_phase != expected_phase)
|
|
Thomas Bogendoerfer |
dbfb07 |
return NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -62,7 +63,7 @@ static int ena_com_write_bounce_buffer_t
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
io_sq->entries_in_tx_burst_left--;
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("decreasing entries_in_tx_burst_left of queue %d to %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Decreasing entries_in_tx_burst_left of queue %d to %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
io_sq->qid, io_sq->entries_in_tx_burst_left);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -101,12 +102,12 @@ static int ena_com_write_header_to_bounc
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely((header_offset + header_len) >
|
|
Thomas Bogendoerfer |
dbfb07 |
llq_info->desc_list_entry_size)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("trying to write header larger than llq entry can accommodate\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Trying to write header larger than llq entry can accommodate\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EFAULT;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(!bounce_buffer)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("bounce buffer is NULL\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Bounce buffer is NULL\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EFAULT;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -124,7 +125,7 @@ static void *get_sq_desc_llq(struct ena_
|
|
Thomas Bogendoerfer |
dbfb07 |
bounce_buffer = pkt_ctrl->curr_bounce_buf;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(!bounce_buffer)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("bounce buffer is NULL\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Bounce buffer is NULL\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -235,8 +236,9 @@ static u16 ena_com_cdesc_rx_pkt_get(stru
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_com_cq_inc_head(io_cq);
|
|
Thomas Bogendoerfer |
dbfb07 |
count++;
|
|
Thomas Bogendoerfer |
dbfb07 |
- last = (READ_ONCE(cdesc->status) & ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
- ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ last = (READ_ONCE(cdesc->status) &
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT;
|
|
Thomas Bogendoerfer |
dbfb07 |
} while (!last);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (last) {
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -248,7 +250,7 @@ static u16 ena_com_cdesc_rx_pkt_get(stru
|
|
Thomas Bogendoerfer |
dbfb07 |
io_cq->cur_rx_pkt_cdesc_count = 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
io_cq->cur_rx_pkt_cdesc_start_idx = head_masked;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("ena q_id: %d packets were completed. first desc idx %u descs# %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("ENA q_id: %d packets were completed. first desc idx %u descs# %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
io_cq->qid, *first_cdesc_idx, count);
|
|
Thomas Bogendoerfer |
dbfb07 |
} else {
|
|
Thomas Bogendoerfer |
dbfb07 |
io_cq->cur_rx_pkt_cdesc_count += count;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -331,7 +333,7 @@ static int ena_com_create_and_store_tx_m
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
static void ena_com_rx_set_flags(struct ena_com_rx_ctx *ena_rx_ctx,
|
|
Thomas Bogendoerfer |
dbfb07 |
- struct ena_eth_io_rx_cdesc_base *cdesc)
|
|
Thomas Bogendoerfer |
dbfb07 |
+ struct ena_eth_io_rx_cdesc_base *cdesc)
|
|
Thomas Bogendoerfer |
dbfb07 |
{
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_rx_ctx->l3_proto = cdesc->status &
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ETH_IO_RX_CDESC_BASE_L3_PROTO_IDX_MASK;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -352,7 +354,7 @@ static void ena_com_rx_set_flags(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK) >>
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_SHIFT;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("ena_rx_ctx->l3_proto %d ena_rx_ctx->l4_proto %d\nena_rx_ctx->l3_csum_err %d ena_rx_ctx->l4_csum_err %d\nhash frag %d frag: %d cdesc_status: %x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("l3_proto %d l4_proto %d l3_csum_err %d l4_csum_err %d hash %d frag %d cdesc_status %x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_rx_ctx->l3_proto, ena_rx_ctx->l4_proto,
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_rx_ctx->l3_csum_err, ena_rx_ctx->l4_csum_err,
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_rx_ctx->hash, ena_rx_ctx->frag, cdesc->status);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -385,7 +387,7 @@ int ena_com_prepare_tx(struct ena_com_io
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(header_len > io_sq->tx_max_header_size)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("header size is too large %d max header: %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Header size is too large %d max header: %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
header_len, io_sq->tx_max_header_size);
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EINVAL;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -400,7 +402,7 @@ int ena_com_prepare_tx(struct ena_com_io
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = ena_com_create_and_store_tx_meta_desc(io_sq, ena_tx_ctx, &have_meta);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(rc)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_err("failed to create and store tx meta desc\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_err("Failed to create and store tx meta desc\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return rc;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -523,7 +525,7 @@ int ena_com_rx_pkt(struct ena_com_io_cq
|
|
Thomas Bogendoerfer |
dbfb07 |
return 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("fetch rx packet: queue %d completed desc: %d\n", io_cq->qid,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Fetch rx packet: queue %d completed desc: %d\n", io_cq->qid,
|
|
Thomas Bogendoerfer |
dbfb07 |
nb_hw_desc);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(nb_hw_desc > ena_rx_ctx->max_bufs)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -579,9 +581,9 @@ int ena_com_add_single_rx_desc(struct en
|
|
Thomas Bogendoerfer |
dbfb07 |
desc->length = ena_buf->len;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
desc->ctrl = ENA_ETH_IO_RX_DESC_FIRST_MASK |
|
|
Thomas Bogendoerfer |
dbfb07 |
- ENA_ETH_IO_RX_DESC_LAST_MASK |
|
|
Thomas Bogendoerfer |
dbfb07 |
- (io_sq->phase & ENA_ETH_IO_RX_DESC_PHASE_MASK) |
|
|
Thomas Bogendoerfer |
dbfb07 |
- ENA_ETH_IO_RX_DESC_COMP_REQ_MASK;
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ENA_ETH_IO_RX_DESC_LAST_MASK |
|
|
Thomas Bogendoerfer |
dbfb07 |
+ (io_sq->phase & ENA_ETH_IO_RX_DESC_PHASE_MASK) |
|
|
Thomas Bogendoerfer |
dbfb07 |
+ ENA_ETH_IO_RX_DESC_COMP_REQ_MASK;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
desc->req_id = req_id;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
--- a/drivers/net/ethernet/amazon/ena/ena_eth_com.h
|
|
Thomas Bogendoerfer |
dbfb07 |
+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.h
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -140,7 +140,7 @@ static inline bool ena_com_is_doorbell_n
|
|
Thomas Bogendoerfer |
dbfb07 |
llq_info->descs_per_entry);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("queue: %d num_descs: %d num_entries_needed: %d\n", io_sq->qid,
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Queue: %d num_descs: %d num_entries_needed: %d\n", io_sq->qid,
|
|
Thomas Bogendoerfer |
dbfb07 |
num_descs, num_entries_needed);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
return num_entries_needed > io_sq->entries_in_tx_burst_left;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -151,13 +151,13 @@ static inline int ena_com_write_sq_doorb
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 max_entries_in_tx_burst = io_sq->llq_info.max_entries_in_tx_burst;
|
|
Thomas Bogendoerfer |
dbfb07 |
u16 tail = io_sq->tail;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("write submission queue doorbell for queue: %d tail: %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Write submission queue doorbell for queue: %d tail: %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
io_sq->qid, tail);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
writel(tail, io_sq->db_addr);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (is_llq_max_tx_burst_exists(io_sq)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- pr_debug("reset available entries in tx burst for queue %d to %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ pr_debug("Reset available entries in tx burst for queue %d to %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
io_sq->qid, max_entries_in_tx_burst);
|
|
Thomas Bogendoerfer |
dbfb07 |
io_sq->entries_in_tx_burst_left = max_entries_in_tx_burst;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c
|
|
Thomas Bogendoerfer |
dbfb07 |
+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -938,7 +938,7 @@ static void ena_dump_stats_ex(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
GFP_ATOMIC);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!strings_buf) {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_err(adapter, drv, netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "failed to alloc strings_buf\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Failed to allocate strings_buf\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
|
|
Thomas Bogendoerfer |
dbfb07 |
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -116,7 +116,7 @@ static int ena_change_mtu(struct net_dev
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
ret = ena_com_set_dev_mtu(adapter->ena_dev, new_mtu);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!ret) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- netif_dbg(adapter, drv, dev, "set MTU to %d\n", new_mtu);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ netif_dbg(adapter, drv, dev, "Set MTU to %d\n", new_mtu);
|
|
Thomas Bogendoerfer |
dbfb07 |
update_rx_ring_mtu(adapter, new_mtu);
|
|
Thomas Bogendoerfer |
dbfb07 |
dev->mtu = new_mtu;
|
|
Thomas Bogendoerfer |
dbfb07 |
} else {
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -155,7 +155,7 @@ static int ena_xmit_common(struct net_de
|
|
Thomas Bogendoerfer |
dbfb07 |
*/
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(rc)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_err(adapter, tx_queued, dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "failed to prepare tx bufs\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Failed to prepare tx bufs\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_begin(&ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
ring->tx_stats.prepare_ctx_err++;
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_end(&ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -269,7 +269,7 @@ error_report_dma_error:
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_begin(&xdp_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
xdp_ring->tx_stats.dma_mapping_err++;
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_end(&xdp_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
- netif_warn(adapter, tx_queued, adapter->netdev, "failed to map xdp buff\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ netif_warn(adapter, tx_queued, adapter->netdev, "Failed to map xdp buff\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
xdp_return_frame_rx_napi(tx_info->xdpf);
|
|
Thomas Bogendoerfer |
dbfb07 |
tx_info->xdpf = NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -541,7 +541,7 @@ static int ena_xdp_set(struct net_device
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!old_bpf_prog)
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_info(adapter, drv, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "xdp program set, changing the max_mtu from %d to %d",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "XDP program is set, changing the max_mtu from %d to %d",
|
|
Thomas Bogendoerfer |
dbfb07 |
prev_mtu, netdev->max_mtu);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
} else if (rc == ENA_XDP_CURRENT_MTU_TOO_LARGE) {
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -966,7 +966,7 @@ static int ena_alloc_rx_page(struct ena_
|
|
Thomas Bogendoerfer |
dbfb07 |
return -EIO;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "alloc page %p, rx_info %p\n", page, rx_info);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Allocate page %p, rx_info %p\n", page, rx_info);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_info->page = page;
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_info->page_offset = 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1016,7 +1016,7 @@ static int ena_refill_rx_bufs(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
GFP_ATOMIC | __GFP_COMP);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(rc < 0)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_warn(rx_ring->adapter, rx_err, rx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "failed to alloc buffer for rx queue %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Failed to allocate buffer for rx queue %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_ring->qid);
|
|
Thomas Bogendoerfer |
dbfb07 |
break;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1025,7 +1025,7 @@ static int ena_refill_rx_bufs(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
req_id);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(rc)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_warn(rx_ring->adapter, rx_status, rx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "failed to add buffer for rx queue %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Failed to add buffer for rx queue %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_ring->qid);
|
|
Thomas Bogendoerfer |
dbfb07 |
break;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1038,7 +1038,7 @@ static int ena_refill_rx_bufs(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_ring->rx_stats.refil_partial++;
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_end(&rx_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_warn(rx_ring->adapter, rx_err, rx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "refilled rx qid %d with only %d buffers (from %d)\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Refilled rx qid %d with only %d buffers (from %d)\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_ring->qid, i, num);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1080,7 +1080,7 @@ static void ena_refill_all_rx_bufs(struc
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(rc != bufs_num))
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_warn(rx_ring->adapter, rx_status, rx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "refilling Queue %d failed. allocated %d buffers from: %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Refilling Queue %d failed. allocated %d buffers from: %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
i, rc, bufs_num);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1139,12 +1139,12 @@ static void ena_free_tx_bufs(struct ena_
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (print_once) {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_notice(tx_ring->adapter, ifdown, tx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "free uncompleted tx skb qid %d idx 0x%x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Free uncompleted tx skb qid %d idx 0x%x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
tx_ring->qid, i);
|
|
Thomas Bogendoerfer |
dbfb07 |
print_once = false;
|
|
Thomas Bogendoerfer |
dbfb07 |
} else {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_dbg(tx_ring->adapter, ifdown, tx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "free uncompleted tx skb qid %d idx 0x%x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Free uncompleted tx skb qid %d idx 0x%x\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
tx_ring->qid, i);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1397,7 +1397,7 @@ static struct sk_buff *ena_rx_skb(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
return NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "rx allocated small packet. len %d. data_len %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "RX allocated small packet. len %d. data_len %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
skb->len, skb->data_len);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
/* sync this buffer for CPU use */
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1434,7 +1434,7 @@ static struct sk_buff *ena_rx_skb(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_info->page_offset = 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "rx skb updated. len %d. data_len %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "RX skb updated. len %d. data_len %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
skb->len, skb->data_len);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_info->page = NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1640,6 +1640,11 @@ static int ena_clean_rx_irq(struct ena_r
|
|
Thomas Bogendoerfer |
dbfb07 |
&next_to_clean);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(!skb)) {
|
|
Thomas Bogendoerfer |
dbfb07 |
+ /* The page might not actually be freed here since the
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * page reference count is incremented in
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * ena_xdp_xmit_buff(), and it will be decreased only
|
|
Thomas Bogendoerfer |
dbfb07 |
+ * when send completion was received from the device
|
|
Thomas Bogendoerfer |
dbfb07 |
+ */
|
|
Thomas Bogendoerfer |
dbfb07 |
if (xdp_verdict == XDP_TX)
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_free_rx_page(rx_ring,
|
|
Thomas Bogendoerfer |
dbfb07 |
&rx_ring->rx_buffer_info[rx_ring->ena_bufs[0].req_id]);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1767,6 +1772,7 @@ static void ena_unmask_interrupt(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_begin(&tx_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
tx_ring->tx_stats.unmask_interrupt++;
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_end(&tx_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
+
|
|
Thomas Bogendoerfer |
dbfb07 |
/* It is a shared MSI-X.
|
|
Thomas Bogendoerfer |
dbfb07 |
* Tx and Rx CQ have pointer to it.
|
|
Thomas Bogendoerfer |
dbfb07 |
* So we use one of them to reach the intr reg
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1984,7 +1990,7 @@ static int ena_enable_msix(struct ena_ad
|
|
Thomas Bogendoerfer |
dbfb07 |
/* Reserved the max msix vectors we might need */
|
|
Thomas Bogendoerfer |
dbfb07 |
msix_vecs = ENA_MAX_MSIX_VEC(adapter->max_num_io_queues);
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_dbg(adapter, probe, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "trying to enable MSI-X, vectors %d\n", msix_vecs);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Trying to enable MSI-X, vectors %d\n", msix_vecs);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
irq_cnt = pci_alloc_irq_vectors(adapter->pdev, ENA_MIN_MSIX_VEC,
|
|
Thomas Bogendoerfer |
dbfb07 |
msix_vecs, PCI_IRQ_MSIX);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -1997,7 +2003,7 @@ static int ena_enable_msix(struct ena_ad
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
if (irq_cnt != msix_vecs) {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_notice(adapter, probe, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "enable only %d MSI-X (out of %d), reduce the number of queues\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Enable only %d MSI-X (out of %d), reduce the number of queues\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
irq_cnt, msix_vecs);
|
|
Thomas Bogendoerfer |
dbfb07 |
adapter->num_io_queues = irq_cnt - ENA_ADMIN_MSIX_VEC;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2067,12 +2073,12 @@ static int ena_request_mgmnt_irq(struct
|
|
Thomas Bogendoerfer |
dbfb07 |
irq->data);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (rc) {
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_err(adapter, probe, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "failed to request admin irq\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Failed to request admin irq\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return rc;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_dbg(adapter, probe, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "set affinity hint of mgmnt irq.to 0x%lx (irq vector: %d)\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Set affinity hint of mgmnt irq.to 0x%lx (irq vector: %d)\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
irq->affinity_hint_mask.bits[0], irq->vector);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
irq_set_affinity_hint(irq->vector, &irq->affinity_hint_mask);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2105,7 +2111,7 @@ static int ena_request_io_irq(struct ena
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_dbg(adapter, ifup, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "set affinity hint of irq. index %d to 0x%lx (irq vector: %d)\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Set affinity hint of irq. index %d to 0x%lx (irq vector: %d)\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
i, irq->affinity_hint_mask.bits[0], irq->vector);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
irq_set_affinity_hint(irq->vector, &irq->affinity_hint_mask);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -2952,7 +2958,7 @@ error_report_dma_error:
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_begin(&tx_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
tx_ring->tx_stats.dma_mapping_err++;
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_end(&tx_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
- netif_warn(adapter, tx_queued, adapter->netdev, "failed to map skb\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ netif_warn(adapter, tx_queued, adapter->netdev, "Failed to map skb\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
tx_info->skb = NULL;
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -3363,7 +3369,7 @@ static int ena_device_init(struct ena_co
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = ena_com_mmio_reg_read_request_init(ena_dev);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (rc) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- dev_err(dev, "failed to init mmio read less\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ dev_err(dev, "Failed to init mmio read less\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
return rc;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -3381,7 +3387,7 @@ static int ena_device_init(struct ena_co
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = ena_com_validate_version(ena_dev);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (rc) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- dev_err(dev, "device version is too low\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ dev_err(dev, "Device version is too low\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
goto err_mmio_read_less;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -3450,7 +3456,7 @@ static int ena_device_init(struct ena_co
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = ena_set_queues_placement_policy(pdev, ena_dev, &get_feat_ctx->llq,
|
|
Thomas Bogendoerfer |
dbfb07 |
&llq_config);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (rc) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- dev_err(&pdev->dev, "ena device init failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ dev_err(dev, "ENA device init failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
goto err_admin_init;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -3794,7 +3800,7 @@ static void check_for_empty_rx_ring(stru
|
|
Thomas Bogendoerfer |
dbfb07 |
u64_stats_update_end(&rx_ring->syncp);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_err(adapter, drv, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "trigger refill for ring %d\n", i);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Trigger refill for ring %d\n", i);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
napi_schedule(rx_ring->napi);
|
|
Thomas Bogendoerfer |
dbfb07 |
rx_ring->empty_rx_queue = 0;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -4197,7 +4203,7 @@ static int ena_probe(struct pci_dev *pde
|
|
Thomas Bogendoerfer |
dbfb07 |
pci_resource_start(pdev, ENA_REG_BAR),
|
|
Thomas Bogendoerfer |
dbfb07 |
pci_resource_len(pdev, ENA_REG_BAR));
|
|
Thomas Bogendoerfer |
dbfb07 |
if (!ena_dev->reg_bar) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- dev_err(&pdev->dev, "failed to remap regs bar\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ dev_err(&pdev->dev, "Failed to remap regs bar\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = -EFAULT;
|
|
Thomas Bogendoerfer |
dbfb07 |
goto err_free_region;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -4208,7 +4214,7 @@ static int ena_probe(struct pci_dev *pde
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = ena_device_init(ena_dev, pdev, &get_feat_ctx, &wd_state);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (rc) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- dev_err(&pdev->dev, "ena device init failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ dev_err(&pdev->dev, "ENA device init failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
if (rc == -ETIME)
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = -EPROBE_DEFER;
|
|
Thomas Bogendoerfer |
dbfb07 |
goto err_free_region;
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -4216,7 +4222,7 @@ static int ena_probe(struct pci_dev *pde
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
rc = ena_map_llq_mem_bar(pdev, ena_dev, bars);
|
|
Thomas Bogendoerfer |
dbfb07 |
if (rc) {
|
|
Thomas Bogendoerfer |
dbfb07 |
- dev_err(&pdev->dev, "ena llq bar mapping failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ dev_err(&pdev->dev, "ENA llq bar mapping failed\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
goto err_free_ena_dev;
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -4509,7 +4515,7 @@ static int ena_suspend(struct pci_dev *p
|
|
Thomas Bogendoerfer |
dbfb07 |
rtnl_lock();
|
|
Thomas Bogendoerfer |
dbfb07 |
if (unlikely(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))) {
|
|
Thomas Bogendoerfer |
dbfb07 |
dev_err(&pdev->dev,
|
|
Thomas Bogendoerfer |
dbfb07 |
- "ignoring device reset request as the device is being suspended\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
+ "Ignoring device reset request as the device is being suspended\n");
|
|
Thomas Bogendoerfer |
dbfb07 |
clear_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
ena_destroy_device(adapter, true);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -4633,7 +4639,7 @@ static void ena_notification(void *adapt
|
|
Thomas Bogendoerfer |
dbfb07 |
aenq_e->aenq_common_desc.group,
|
|
Thomas Bogendoerfer |
dbfb07 |
ENA_ADMIN_NOTIFICATION);
|
|
Thomas Bogendoerfer |
dbfb07 |
|
|
Thomas Bogendoerfer |
dbfb07 |
- switch (aenq_e->aenq_common_desc.syndrom) {
|
|
Thomas Bogendoerfer |
dbfb07 |
+ switch (aenq_e->aenq_common_desc.syndrome) {
|
|
Thomas Bogendoerfer |
dbfb07 |
case ENA_ADMIN_UPDATE_HINTS:
|
|
Thomas Bogendoerfer |
dbfb07 |
hints = (struct ena_admin_ena_hw_hints *)
|
|
Thomas Bogendoerfer |
dbfb07 |
(&aenq_e->inline_data_w4);
|
|
Thomas Bogendoerfer |
dbfb07 |
@@ -4642,7 +4648,7 @@ static void ena_notification(void *adapt
|
|
Thomas Bogendoerfer |
dbfb07 |
default:
|
|
Thomas Bogendoerfer |
dbfb07 |
netif_err(adapter, drv, adapter->netdev,
|
|
Thomas Bogendoerfer |
dbfb07 |
"Invalid aenq notification link state %d\n",
|
|
Thomas Bogendoerfer |
dbfb07 |
- aenq_e->aenq_common_desc.syndrom);
|
|
Thomas Bogendoerfer |
dbfb07 |
+ aenq_e->aenq_common_desc.syndrome);
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
}
|
|
Thomas Bogendoerfer |
dbfb07 |
|