DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH  00/10] net/atlantic: bugfixes and code cleanup
@ 2019-03-02 12:10 Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 01/10] net/atlantic: Fix negative error codes Igor Russkikh
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

The patchset mainly fixes some Coverity issues,
couple of minor bugs and overflows.

It also improves eeprom get/set logic with ability of custom
device address and dump length.

Igor Russkikh (7):
  net/atlantic: Fix negative error codes
  net/atlantic: remove unused variable
  net/atlantic: check for error codes
  net/atlantic: fix link configuration
  net/atlantic: eliminate excessive log levels on rx/tx
  net/atlantic: fix missing vlan filter offload
  net/atlantic: fix xstats to return correct number of requested items

Pavel Belous (3):
  net/atlantic: fix buffer overflow
  net/atlantic: use eeprom magic as a device address
  net/atlantic: fix eeprom fetching for small and uneven lengths

 drivers/net/atlantic/atl_ethdev.c             | 71 ++++++++++---------
 drivers/net/atlantic/atl_rxtx.c               | 20 ++----
 drivers/net/atlantic/atl_types.h              |  5 +-
 drivers/net/atlantic/hw_atl/hw_atl_b0.c       |  6 +-
 drivers/net/atlantic/hw_atl/hw_atl_utils.c    |  9 +--
 drivers/net/atlantic/hw_atl/hw_atl_utils.h    | 23 +++---
 .../net/atlantic/hw_atl/hw_atl_utils_fw2x.c   | 59 ++++++++++-----
 7 files changed, 105 insertions(+), 88 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH  01/10] net/atlantic: Fix negative error codes
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 02/10] net/atlantic: remove unused variable Igor Russkikh
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/atlantic/atl_rxtx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/atlantic/atl_rxtx.c b/drivers/net/atlantic/atl_rxtx.c
index 40c913795..aea58c0d5 100644
--- a/drivers/net/atlantic/atl_rxtx.c
+++ b/drivers/net/atlantic/atl_rxtx.c
@@ -812,12 +812,12 @@ atl_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		ol_flags = m->ol_flags;
 
 		if (m->nb_segs > AQ_HW_MAX_SEGS_SIZE) {
-			rte_errno = -EINVAL;
+			rte_errno = EINVAL;
 			return i;
 		}
 
 		if (ol_flags & ATL_TX_OFFLOAD_NOTSUP_MASK) {
-			rte_errno = -ENOTSUP;
+			rte_errno = ENOTSUP;
 			return i;
 		}
 
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH  02/10] net/atlantic: remove unused variable
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 01/10] net/atlantic: Fix negative error codes Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-04 21:22   ` Rami Rosen
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 03/10] net/atlantic: check for error codes Igor Russkikh
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

Found by coverity scan

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/atlantic/hw_atl/hw_atl_b0.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/net/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/atlantic/hw_atl/hw_atl_b0.c
index 9400e0edb..53fd8e9f0 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_b0.c
+++ b/drivers/net/atlantic/hw_atl/hw_atl_b0.c
@@ -31,7 +31,6 @@ static int hw_atl_b0_hw_qos_set(struct aq_hw_s *self)
 	u32 tc = 0U;
 	u32 buff_size = 0U;
 	unsigned int i_priority = 0U;
-	bool is_rx_flow_control = false;
 
 	/* TPS Descriptor rate init */
 	hw_atl_tps_tx_pkt_shed_desc_rate_curr_time_res_set(self, 0x0U);
@@ -64,7 +63,6 @@ static int hw_atl_b0_hw_qos_set(struct aq_hw_s *self)
 
 	/* QoS Rx buf size per TC */
 	tc = 0;
-	is_rx_flow_control = 0;
 	buff_size = HW_ATL_B0_RXBUF_MAX;
 
 	hw_atl_rpb_rx_pkt_buff_size_per_tc_set(self, buff_size, tc);
@@ -76,9 +74,7 @@ static int hw_atl_b0_hw_qos_set(struct aq_hw_s *self)
 						   (buff_size *
 						   (1024U / 32U) * 50U) /
 						   100U, tc);
-	hw_atl_rpb_rx_xoff_en_per_tc_set(self,
-					 is_rx_flow_control ? 1U : 0U,
-					 tc);
+	hw_atl_rpb_rx_xoff_en_per_tc_set(self, 0U, tc);
 
 	/* QoS 802.1p priority -> TC mapping */
 	for (i_priority = 8U; i_priority--;)
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH  03/10] net/atlantic: check for error codes
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 01/10] net/atlantic: Fix negative error codes Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 02/10] net/atlantic: remove unused variable Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 04/10] net/atlantic: fix buffer overflow Igor Russkikh
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

Found by Coverity

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/atlantic/hw_atl/hw_atl_utils.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/atlantic/hw_atl/hw_atl_utils.c
index f11093a50..13f02b9f9 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_utils.c
+++ b/drivers/net/atlantic/hw_atl/hw_atl_utils.c
@@ -462,8 +462,6 @@ int hw_atl_utils_fw_rpc_wait(struct aq_hw_s *self,
 				goto err_exit;
 		}
 	} while (sw.tid != fw.tid || 0xFFFFU == fw.len);
-	if (err < 0)
-		goto err_exit;
 
 	if (rpc) {
 		if (fw.len) {
@@ -875,8 +873,7 @@ static int aq_fw1x_set_wol(struct aq_hw_s *self, bool wol_enabled, u8 *mac)
 	}
 
 	err = hw_atl_utils_fw_rpc_call(self, rpc_size);
-	if (err < 0)
-		goto err_exit;
+
 err_exit:
 	return err;
 }
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH  04/10] net/atlantic: fix buffer overflow
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (2 preceding siblings ...)
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 03/10] net/atlantic: check for error codes Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 05/10] net/atlantic: use eeprom magic as a device address Igor Russkikh
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

From: Pavel Belous <Pavel.Belous@aquantia.com>

Found by Coverity

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: Pavel Belous <Pavel.Belous@aquantia.com>
---
 drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c b/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
index 6841d9bce..a155d4aab 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
+++ b/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
@@ -501,7 +501,7 @@ static int aq_fw2x_get_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 	/* Write SMBUS request to cfg memory */
 	err = hw_atl_utils_fw_upload_dwords(self, self->rpc_addr,
 				(u32 *)(void *)&request,
-				RTE_ALIGN(sizeof(request), sizeof(u32)));
+				RTE_ALIGN(sizeof(request) / sizeof(u32), sizeof(u32)));
 
 	if (err < 0)
 		return err;
@@ -523,7 +523,7 @@ static int aq_fw2x_get_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 
 	err = hw_atl_utils_fw_downld_dwords(self, self->rpc_addr + sizeof(u32),
 			&result,
-			RTE_ALIGN(sizeof(result), sizeof(u32)));
+			RTE_ALIGN(sizeof(result) / sizeof(u32), sizeof(u32)));
 
 	if (err < 0)
 		return err;
@@ -558,7 +558,7 @@ static int aq_fw2x_set_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 	/* Write SMBUS request to cfg memory */
 	err = hw_atl_utils_fw_upload_dwords(self, self->rpc_addr,
 				(u32 *)(void *)&request,
-				RTE_ALIGN(sizeof(request), sizeof(u32)));
+				RTE_ALIGN(sizeof(request) / sizeof(u32), sizeof(u32)));
 
 	if (err < 0)
 		return err;
@@ -589,7 +589,7 @@ static int aq_fw2x_set_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 	/* Read status of write operation */
 	err = hw_atl_utils_fw_downld_dwords(self, self->rpc_addr + sizeof(u32),
 				&result,
-				RTE_ALIGN(sizeof(result), sizeof(u32)));
+				RTE_ALIGN(sizeof(result) / sizeof(u32), sizeof(u32)));
 
 	if (err < 0)
 		return err;
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH 05/10] net/atlantic: use eeprom magic as a device address
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (3 preceding siblings ...)
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 04/10] net/atlantic: fix buffer overflow Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 06/10] net/atlantic: fix eeprom fetching for small and uneven lengths Igor Russkikh
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

From: Pavel Belous <Pavel.Belous@aquantia.com>

Default dev addr is replaced with magic field from the request.
Length is allowed to be less than maximum.
SMBUS access bit definitions also better organised now.

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: Pavel Belous <Pavel.Belous@aquantia.com>
---
 drivers/net/atlantic/atl_ethdev.c             | 20 ++++++++++------
 drivers/net/atlantic/atl_types.h              |  5 ++--
 drivers/net/atlantic/hw_atl/hw_atl_utils.c    |  4 ++++
 drivers/net/atlantic/hw_atl/hw_atl_utils.h    | 23 ++++++++++--------
 .../net/atlantic/hw_atl/hw_atl_utils_fw2x.c   | 24 ++++++++++---------
 5 files changed, 46 insertions(+), 30 deletions(-)

diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c
index 5bc04f55c..ae1babacf 100644
--- a/drivers/net/atlantic/atl_ethdev.c
+++ b/drivers/net/atlantic/atl_ethdev.c
@@ -1102,24 +1102,27 @@ atl_dev_get_eeprom_length(struct rte_eth_dev *dev __rte_unused)
 	return SFP_EEPROM_SIZE;
 }
 
-static int
-atl_dev_get_eeprom(struct rte_eth_dev *dev, struct rte_dev_eeprom_info *eeprom)
+int atl_dev_get_eeprom(struct rte_eth_dev *dev, struct rte_dev_eeprom_info *eeprom)
 {
 	struct aq_hw_s *hw = ATL_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	uint32_t dev_addr = SMBUS_DEVICE_ID;
 
 	if (hw->aq_fw_ops->get_eeprom == NULL)
 		return -ENOTSUP;
 
-	if (eeprom->length != SFP_EEPROM_SIZE || eeprom->data == NULL)
+	if (eeprom->length > SFP_EEPROM_SIZE || eeprom->data == NULL)
 		return -EINVAL;
 
-	return hw->aq_fw_ops->get_eeprom(hw, eeprom->data, eeprom->length);
+	if (eeprom->magic)
+		dev_addr = eeprom->magic;
+
+	return hw->aq_fw_ops->get_eeprom(hw, dev_addr, eeprom->data, eeprom->length);
 }
 
-static int
-atl_dev_set_eeprom(struct rte_eth_dev *dev, struct rte_dev_eeprom_info *eeprom)
+int atl_dev_set_eeprom(struct rte_eth_dev *dev, struct rte_dev_eeprom_info *eeprom)
 {
 	struct aq_hw_s *hw = ATL_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	uint32_t dev_addr = SMBUS_DEVICE_ID;
 
 	if (hw->aq_fw_ops->set_eeprom == NULL)
 		return -ENOTSUP;
@@ -1127,7 +1130,10 @@ atl_dev_set_eeprom(struct rte_eth_dev *dev, struct rte_dev_eeprom_info *eeprom)
 	if (eeprom->length != SFP_EEPROM_SIZE || eeprom->data == NULL)
 		return -EINVAL;
 
-	return hw->aq_fw_ops->set_eeprom(hw, eeprom->data, eeprom->length);
+	if (eeprom->magic)
+		dev_addr = eeprom->magic;
+
+	return hw->aq_fw_ops->set_eeprom(hw, dev_addr, eeprom->data, eeprom->length);
 }
 
 static int
diff --git a/drivers/net/atlantic/atl_types.h b/drivers/net/atlantic/atl_types.h
index 3d90f6cae..ecc515e43 100644
--- a/drivers/net/atlantic/atl_types.h
+++ b/drivers/net/atlantic/atl_types.h
@@ -137,9 +137,10 @@ struct aq_fw_ops {
 
 	int (*led_control)(struct aq_hw_s *self, u32 mode);
 
-	int (*get_eeprom)(struct aq_hw_s *self, u32 *data, u32 len);
+	int (*get_eeprom)(struct aq_hw_s *self, int dev_addr, u32 *data, u32 len);
+
+	int (*set_eeprom)(struct aq_hw_s *self, int dev_addr, u32 *data, u32 len);
 
-	int (*set_eeprom)(struct aq_hw_s *self, u32 *data, u32 len);
 };
 
 struct atl_sw_stats {
diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/atlantic/hw_atl/hw_atl_utils.c
index 13f02b9f9..4299b7016 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_utils.c
+++ b/drivers/net/atlantic/hw_atl/hw_atl_utils.c
@@ -305,6 +305,10 @@ int hw_atl_utils_fw_downld_dwords(struct aq_hw_s *self, u32 a,
 			AQ_HW_WAIT_FOR(!(0x100 & aq_hw_read_reg(self,
 							   HW_ATL_MIF_CMD)),
 				       1, 1000U);
+			if (err) {
+				err = -ETIMEDOUT;
+				goto err_exit;
+			}
 
 		*(p++) = aq_hw_read_reg(self, HW_ATL_MIF_VAL);
 		a += 4;
diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils.h b/drivers/net/atlantic/hw_atl/hw_atl_utils.h
index 5f3f70847..f2a87826c 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_utils.h
+++ b/drivers/net/atlantic/hw_atl/hw_atl_utils.h
@@ -8,6 +8,7 @@
 #ifndef HW_ATL_UTILS_H
 #define HW_ATL_UTILS_H
 
+#define BIT(x)  (1UL << (x))
 #define HW_ATL_FLUSH() { (void)aq_hw_read_reg(self, 0x10); }
 
 /* Hardware tx descriptor */
@@ -389,18 +390,8 @@ enum hal_atl_utils_fw_state_e {
 #define HAL_ATLANTIC_UTILS_FW_MSG_OFFLOAD_DEL  10U
 #define HAL_ATLANTIC_UTILS_FW_MSG_CABLE_DIAG   13U // 0xd
 
-#define SMBUS_READ_REQUEST BIT(13)
-#define SMBUS_WRITE_REQUEST BIT(14)
 #define SMBUS_DEVICE_ID 0x50
 
-enum hw_atl_fw2x_rate {
-	FW2X_RATE_100M    = 0x20,
-	FW2X_RATE_1G      = 0x100,
-	FW2X_RATE_2G5     = 0x200,
-	FW2X_RATE_5G      = 0x400,
-	FW2X_RATE_10G     = 0x800,
-};
-
 enum hw_atl_fw2x_caps_lo {
 	CAPS_LO_10BASET_HD = 0x00,
 	CAPS_LO_10BASET_FD,
@@ -414,6 +405,10 @@ enum hw_atl_fw2x_caps_lo {
 	CAPS_LO_2P5GBASET_FD,
 	CAPS_LO_5GBASET_FD,
 	CAPS_LO_10GBASET_FD,
+	CAPS_LO_AUTONEG,
+	CAPS_LO_SMBUS_READ,
+	CAPS_LO_SMBUS_WRITE,
+	CAPS_LO_MACSEC
 };
 
 enum hw_atl_fw2x_caps_hi {
@@ -451,6 +446,14 @@ enum hw_atl_fw2x_caps_hi {
 	CAPS_HI_TRANSACTION_ID,
 };
 
+enum hw_atl_fw2x_rate {
+	FW2X_RATE_100M    = BIT(CAPS_LO_100BASETX_FD),
+	FW2X_RATE_1G      = BIT(CAPS_LO_1000BASET_FD),
+	FW2X_RATE_2G5     = BIT(CAPS_LO_2P5GBASET_FD),
+	FW2X_RATE_5G      = BIT(CAPS_LO_5GBASET_FD),
+	FW2X_RATE_10G     = BIT(CAPS_LO_10GBASET_FD),
+};
+
 struct aq_hw_s;
 struct aq_fw_ops;
 struct aq_hw_link_status_s;
diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c b/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
index a155d4aab..d0eb9f5e9 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
+++ b/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
@@ -129,7 +129,9 @@ static u32 fw2x_to_eee_mask(u32 speed)
 
 static int aq_fw2x_set_link_speed(struct aq_hw_s *self, u32 speed)
 {
-	u32 val = link_speed_mask_2fw2x_ratemask(speed);
+	u32 rate_mask = link_speed_mask_2fw2x_ratemask(speed);
+	u32 reg_val = aq_hw_read_reg(self, HW_ATL_FW2X_MPI_CONTROL_ADDR);
+	u32 val = rate_mask | ((BIT(CAPS_LO_SMBUS_READ) | BIT(CAPS_LO_SMBUS_WRITE) | BIT(CAPS_LO_MACSEC)) & reg_val);
 
 	aq_hw_write_reg(self, HW_ATL_FW2X_MPI_CONTROL_ADDR, val);
 
@@ -484,7 +486,7 @@ static int aq_fw2x_led_control(struct aq_hw_s *self, u32 mode)
 	return 0;
 }
 
-static int aq_fw2x_get_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
+static int aq_fw2x_get_eeprom(struct aq_hw_s *self, int dev_addr, u32 *data, u32 len)
 {
 	int err = 0;
 	struct smbus_read_request request;
@@ -494,7 +496,7 @@ static int aq_fw2x_get_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 	if (self->fw_ver_actual < HW_ATL_FW_FEATURE_EEPROM)
 		return -EOPNOTSUPP;
 
-	request.device_id = SMBUS_DEVICE_ID;
+	request.device_id = dev_addr;
 	request.address = 0;
 	request.length = len;
 
@@ -506,16 +508,16 @@ static int aq_fw2x_get_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 	if (err < 0)
 		return err;
 
-	/* Toggle 0x368.SMBUS_READ_REQUEST bit */
+	/* Toggle 0x368.CAPS_LO_SMBUS_READ bit */
 	mpi_opts = aq_hw_read_reg(self, HW_ATL_FW2X_MPI_CONTROL_ADDR);
-	mpi_opts ^= SMBUS_READ_REQUEST;
+	mpi_opts ^= BIT(CAPS_LO_SMBUS_READ);
 
 	aq_hw_write_reg(self, HW_ATL_FW2X_MPI_CONTROL_ADDR, mpi_opts);
 
 	/* Wait until REQUEST_BIT matched in 0x370 */
 
 	AQ_HW_WAIT_FOR((aq_hw_read_reg(self, HW_ATL_FW2X_MPI_STATE_ADDR) &
-		SMBUS_READ_REQUEST) == (mpi_opts & SMBUS_READ_REQUEST),
+		BIT(CAPS_LO_SMBUS_READ)) == (mpi_opts & BIT(CAPS_LO_SMBUS_READ)),
 		10U, 10000U);
 
 	if (err < 0)
@@ -542,7 +544,7 @@ static int aq_fw2x_get_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 }
 
 
-static int aq_fw2x_set_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
+static int aq_fw2x_set_eeprom(struct aq_hw_s *self, int dev_addr, u32 *data, u32 len)
 {
 	struct smbus_write_request request;
 	u32 mpi_opts, result = 0;
@@ -551,7 +553,7 @@ static int aq_fw2x_set_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 	if (self->fw_ver_actual < HW_ATL_FW_FEATURE_EEPROM)
 		return -EOPNOTSUPP;
 
-	request.device_id = SMBUS_DEVICE_ID;
+	request.device_id = dev_addr;
 	request.address = 0;
 	request.length = len;
 
@@ -572,15 +574,15 @@ static int aq_fw2x_set_eeprom(struct aq_hw_s *self, u32 *data, u32 len)
 	if (err < 0)
 		return err;
 
-	/* Toggle 0x368.SMBUS_WRITE_REQUEST bit */
+	/* Toggle 0x368.CAPS_LO_SMBUS_WRITE bit */
 	mpi_opts = aq_hw_read_reg(self, HW_ATL_FW2X_MPI_CONTROL_ADDR);
-	mpi_opts ^= SMBUS_WRITE_REQUEST;
+	mpi_opts ^= BIT(CAPS_LO_SMBUS_WRITE);
 
 	aq_hw_write_reg(self, HW_ATL_FW2X_MPI_CONTROL_ADDR, mpi_opts);
 
 	/* Wait until REQUEST_BIT matched in 0x370 */
 	AQ_HW_WAIT_FOR((aq_hw_read_reg(self, HW_ATL_FW2X_MPI_STATE_ADDR) &
-		SMBUS_WRITE_REQUEST) == (mpi_opts & SMBUS_WRITE_REQUEST),
+		BIT(CAPS_LO_SMBUS_WRITE)) == (mpi_opts & (BIT(CAPS_LO_SMBUS_WRITE))),
 		10U, 10000U);
 
 	if (err < 0)
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH 06/10] net/atlantic: fix eeprom fetching for small and uneven lengths
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (4 preceding siblings ...)
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 05/10] net/atlantic: use eeprom magic as a device address Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 07/10] net/atlantic: fix link configuration Igor Russkikh
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

From: Pavel Belous <Pavel.Belous@aquantia.com>

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: Pavel Belous <Pavel.Belous@aquantia.com>
---
 .../net/atlantic/hw_atl/hw_atl_utils_fw2x.c   | 27 ++++++++++++++++---
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c b/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
index d0eb9f5e9..efa999268 100644
--- a/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
+++ b/drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c
@@ -531,13 +531,32 @@ static int aq_fw2x_get_eeprom(struct aq_hw_s *self, int dev_addr, u32 *data, u32
 		return err;
 
 	if (result == 0) {
-		err = hw_atl_utils_fw_downld_dwords(self,
+		u32 num_dwords = len / sizeof(u32);
+		u32 bytes_remains = len % sizeof(u32);
+
+		if (num_dwords) {
+			err = hw_atl_utils_fw_downld_dwords(self,
 				self->rpc_addr + sizeof(u32) * 2,
 				data,
-				RTE_ALIGN(len, sizeof(u32)));
+				num_dwords);
 
-		if (err < 0)
-			return err;
+			if (err < 0)
+				return err;
+		}
+
+		if (bytes_remains) {
+			u32 val = 0;
+
+			err = hw_atl_utils_fw_downld_dwords(self,
+				self->rpc_addr + sizeof(u32) * 2 + num_dwords,
+				&val,
+				sizeof(u32));
+
+			if (err < 0)
+				return err;
+
+			rte_memcpy((u8*)data + len - bytes_remains, &val, bytes_remains);
+		}
 	}
 
 	return 0;
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH  07/10] net/atlantic: fix link configuration
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (5 preceding siblings ...)
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 06/10] net/atlantic: fix eeprom fetching for small and uneven lengths Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 08/10] net/atlantic: eliminate excessive log levels on rx/tx Igor Russkikh
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

In case link speed is re configured after port start, it does not
takes the requested speed value, but instead just sets full autoneg
mask.

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/atlantic/atl_ethdev.c | 44 ++++++++++++++-----------------
 1 file changed, 20 insertions(+), 24 deletions(-)

diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c
index ae1babacf..ad4e5a717 100644
--- a/drivers/net/atlantic/atl_ethdev.c
+++ b/drivers/net/atlantic/atl_ethdev.c
@@ -465,8 +465,6 @@ atl_dev_start(struct rte_eth_dev *dev)
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
-	uint32_t *link_speeds;
-	uint32_t speed = 0;
 	int status;
 	int err;
 
@@ -543,6 +541,8 @@ atl_dev_start(struct rte_eth_dev *dev)
 		goto error;
 	}
 
+	err = atl_dev_set_link_up(dev);
+
 	err = hw->aq_fw_ops->update_link_status(hw);
 
 	if (err)
@@ -550,26 +550,6 @@ atl_dev_start(struct rte_eth_dev *dev)
 
 	dev->data->dev_link.link_status = hw->aq_link_status.mbps != 0;
 
-	link_speeds = &dev->data->dev_conf.link_speeds;
-
-	speed = 0x0;
-
-	if (*link_speeds == ETH_LINK_SPEED_AUTONEG) {
-		speed = hw->aq_nic_cfg->link_speed_msk;
-	} else {
-		if (*link_speeds & ETH_LINK_SPEED_10G)
-			speed |= AQ_NIC_RATE_10G;
-		if (*link_speeds & ETH_LINK_SPEED_5G)
-			speed |= AQ_NIC_RATE_5G;
-		if (*link_speeds & ETH_LINK_SPEED_1G)
-			speed |= AQ_NIC_RATE_1G;
-		if (*link_speeds & ETH_LINK_SPEED_2_5G)
-			speed |=  AQ_NIC_RATE_2G5;
-		if (*link_speeds & ETH_LINK_SPEED_100M)
-			speed |= AQ_NIC_RATE_100M;
-	}
-
-	err = hw->aq_fw_ops->set_link_speed(hw, speed);
 	if (err)
 		goto error;
 
@@ -657,9 +637,25 @@ static int
 atl_dev_set_link_up(struct rte_eth_dev *dev)
 {
 	struct aq_hw_s *hw = ATL_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	uint32_t link_speeds = dev->data->dev_conf.link_speeds;
+	uint32_t speed_mask = 0;
+
+	if (link_speeds == ETH_LINK_SPEED_AUTONEG) {
+		speed_mask = hw->aq_nic_cfg->link_speed_msk;
+	} else {
+		if (link_speeds & ETH_LINK_SPEED_10G)
+			speed_mask |= AQ_NIC_RATE_10G;
+		if (link_speeds & ETH_LINK_SPEED_5G)
+			speed_mask |= AQ_NIC_RATE_5G;
+		if (link_speeds & ETH_LINK_SPEED_1G)
+			speed_mask |= AQ_NIC_RATE_1G;
+		if (link_speeds & ETH_LINK_SPEED_2_5G)
+			speed_mask |=  AQ_NIC_RATE_2G5;
+		if (link_speeds & ETH_LINK_SPEED_100M)
+			speed_mask |= AQ_NIC_RATE_100M;
+	}
 
-	return hw->aq_fw_ops->set_link_speed(hw,
-			hw->aq_nic_cfg->link_speed_msk);
+	return hw->aq_fw_ops->set_link_speed(hw, speed_mask);
 }
 
 /*
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH 08/10] net/atlantic: eliminate excessive log levels on rx/tx
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (6 preceding siblings ...)
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 07/10] net/atlantic: fix link configuration Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 09/10] net/atlantic: fix missing vlan filter offload Igor Russkikh
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

Default rxtx logging used ERR level, that caused logger to always
trigger. That caused perf degradation even if logger was not enabled but
compiled in.

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/atlantic/atl_rxtx.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/net/atlantic/atl_rxtx.c b/drivers/net/atlantic/atl_rxtx.c
index aea58c0d5..f1519594a 100644
--- a/drivers/net/atlantic/atl_rxtx.c
+++ b/drivers/net/atlantic/atl_rxtx.c
@@ -946,7 +946,7 @@ atl_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 			break;
 		}
 
-		PMD_RX_LOG(ERR, "port_id=%u queue_id=%u tail=%u "
+		PMD_RX_LOG(DEBUG, "port_id=%u queue_id=%u tail=%u "
 			   "eop=0x%x pkt_len=%u hash=0x%x hash_type=0x%x",
 			   (unsigned int)rxq->port_id,
 			   (unsigned int)rxq->queue_id,
@@ -981,7 +981,7 @@ atl_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 		while (true) {
 			new_mbuf = rte_mbuf_raw_alloc(rxq->mb_pool);
 			if (new_mbuf == NULL) {
-				PMD_RX_LOG(ERR,
+				PMD_RX_LOG(DEBUG,
 				   "RX mbuf alloc failed port_id=%u "
 				   "queue_id=%u", (unsigned int)rxq->port_id,
 				   (unsigned int)rxq->queue_id);
@@ -1084,7 +1084,7 @@ atl_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 		adapter->sw_stats.q_ibytes[rxq->queue_id] +=
 			rx_mbuf_first->pkt_len;
 
-		PMD_RX_LOG(ERR, "add mbuf segs=%d pkt_len=%d",
+		PMD_RX_LOG(DEBUG, "add mbuf segs=%d pkt_len=%d",
 			rx_mbuf_first->nb_segs,
 			rx_mbuf_first->pkt_len);
 	}
@@ -1104,7 +1104,7 @@ atl_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
 	 */
 	nb_hold = (uint16_t)(nb_hold + rxq->nb_rx_hold);
 	if (nb_hold > rxq->rx_free_thresh) {
-		PMD_RX_LOG(ERR, "port_id=%u queue_id=%u rx_tail=%u "
+		PMD_RX_LOG(DEBUG, "port_id=%u queue_id=%u rx_tail=%u "
 			"nb_hold=%u nb_rx=%u",
 			(unsigned int)rxq->port_id, (unsigned int)rxq->queue_id,
 			(unsigned int)tail, (unsigned int)nb_hold,
@@ -1129,8 +1129,6 @@ atl_xmit_cleanup(struct atl_tx_queue *txq)
 	struct hw_atl_txd_s *txd;
 	int to_clean = 0;
 
-	PMD_INIT_FUNC_TRACE();
-
 	if (txq != NULL) {
 		sw_ring = txq->sw_ring;
 		int head = txq->tx_head;
@@ -1181,11 +1179,7 @@ atl_tso_setup(struct rte_mbuf *tx_pkt, union hw_atl_txc_s *txc)
 	uint32_t tx_cmd = 0;
 	uint64_t ol_flags = tx_pkt->ol_flags;
 
-	PMD_INIT_FUNC_TRACE();
-
 	if (ol_flags & PKT_TX_TCP_SEG) {
-		PMD_DRV_LOG(DEBUG, "xmit TSO pkt");
-
 		tx_cmd |= tx_desc_cmd_lso | tx_desc_cmd_l4cs;
 
 		txc->cmd = 0x4;
@@ -1240,8 +1234,6 @@ atl_xmit_pkt(struct aq_hw_s *hw, struct atl_tx_queue *txq,
 	u32 tx_cmd = 0U;
 	int desc_count = 0;
 
-	PMD_INIT_FUNC_TRACE();
-
 	tail = txq->tx_tail;
 
 	txc = (union hw_atl_txc_s *)&txq->hw_ring[tail];
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH 09/10] net/atlantic: fix missing vlan filter offload
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (7 preceding siblings ...)
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 08/10] net/atlantic: eliminate excessive log levels on rx/tx Igor Russkikh
@ 2019-03-02 12:10 ` Igor Russkikh
  2019-03-02 12:11 ` [dpdk-dev] [PATCH 10/10] net/atlantic: fix xstats to return correct number of requested items Igor Russkikh
  2019-03-04  9:40 ` [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup David Marchand
  10 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:10 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/atlantic/atl_ethdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c
index ad4e5a717..c2ba19830 100644
--- a/drivers/net/atlantic/atl_ethdev.c
+++ b/drivers/net/atlantic/atl_ethdev.c
@@ -165,7 +165,8 @@ static struct rte_pci_driver rte_atl_pmd = {
 			| DEV_RX_OFFLOAD_IPV4_CKSUM \
 			| DEV_RX_OFFLOAD_UDP_CKSUM \
 			| DEV_RX_OFFLOAD_TCP_CKSUM \
-			| DEV_RX_OFFLOAD_JUMBO_FRAME)
+			| DEV_RX_OFFLOAD_JUMBO_FRAME \
+			| DEV_RX_OFFLOAD_VLAN_FILTER)
 
 #define ATL_TX_OFFLOADS (DEV_TX_OFFLOAD_VLAN_INSERT \
 			| DEV_TX_OFFLOAD_IPV4_CKSUM \
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [dpdk-dev] [PATCH 10/10] net/atlantic: fix xstats to return correct number of requested items
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (8 preceding siblings ...)
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 09/10] net/atlantic: fix missing vlan filter offload Igor Russkikh
@ 2019-03-02 12:11 ` Igor Russkikh
  2019-03-04 21:12   ` Rami Rosen
  2019-03-04  9:40 ` [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup David Marchand
  10 siblings, 1 reply; 15+ messages in thread
From: Igor Russkikh @ 2019-03-02 12:11 UTC (permalink / raw)
  To: dev; +Cc: Pavel Belous, Igor Russkikh

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
---
 drivers/net/atlantic/atl_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/atlantic/atl_ethdev.c b/drivers/net/atlantic/atl_ethdev.c
index c2ba19830..d40645283 100644
--- a/drivers/net/atlantic/atl_ethdev.c
+++ b/drivers/net/atlantic/atl_ethdev.c
@@ -758,7 +758,7 @@ atl_dev_xstats_get_names(struct rte_eth_dev *dev __rte_unused,
 		snprintf(xstats_names[i].name, RTE_ETH_XSTATS_NAME_SIZE, "%s",
 			atl_xstats_tbl[i].name);
 
-	return size;
+	return i;
 }
 
 static int
@@ -778,7 +778,7 @@ atl_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *stats,
 					atl_xstats_tbl[i].offset);
 	}
 
-	return n;
+	return i;
 }
 
 static int
-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup
  2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
                   ` (9 preceding siblings ...)
  2019-03-02 12:11 ` [dpdk-dev] [PATCH 10/10] net/atlantic: fix xstats to return correct number of requested items Igor Russkikh
@ 2019-03-04  9:40 ` David Marchand
  2019-03-06 12:08   ` Igor Russkikh
  10 siblings, 1 reply; 15+ messages in thread
From: David Marchand @ 2019-03-04  9:40 UTC (permalink / raw)
  To: Igor Russkikh; +Cc: dev, Pavel Belous

On Sat, Mar 2, 2019 at 1:10 PM Igor Russkikh <Igor.Russkikh@aquantia.com>
wrote:

> The patchset mainly fixes some Coverity issues,
> couple of minor bugs and overflows.
>
> It also improves eeprom get/set logic with ability of custom
> device address and dump length.
>
> Igor Russkikh (7):
>   net/atlantic: Fix negative error codes
>   net/atlantic: remove unused variable
>   net/atlantic: check for error codes
>   net/atlantic: fix link configuration
>   net/atlantic: eliminate excessive log levels on rx/tx
>   net/atlantic: fix missing vlan filter offload
>   net/atlantic: fix xstats to return correct number of requested items
>
> Pavel Belous (3):
>   net/atlantic: fix buffer overflow
>   net/atlantic: use eeprom magic as a device address
>   net/atlantic: fix eeprom fetching for small and uneven lengths
>
>  drivers/net/atlantic/atl_ethdev.c             | 71 ++++++++++---------
>  drivers/net/atlantic/atl_rxtx.c               | 20 ++----
>  drivers/net/atlantic/atl_types.h              |  5 +-
>  drivers/net/atlantic/hw_atl/hw_atl_b0.c       |  6 +-
>  drivers/net/atlantic/hw_atl/hw_atl_utils.c    |  9 +--
>  drivers/net/atlantic/hw_atl/hw_atl_utils.h    | 23 +++---
>  .../net/atlantic/hw_atl/hw_atl_utils_fw2x.c   | 59 ++++++++++-----
>  7 files changed, 105 insertions(+), 88 deletions(-)
>


Those patches are missing Fixes: tags and copying stable where appropriate.
The commitlogs also need some work.

It looks like those patches were neither checked against checkpatch nor
check-git-log.sh.
Here is what I see (extended the max line length to 100 to avoid all those
80 columns warnings, but this is worth fixing as well).

[dmarchan@dmarchan dpdk]$ DPDK_CHECKPATCH_LINE_LENGTH=100
./devtools/checkpatches.sh

### net/atlantic: Fix negative error codes

WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one

total: 0 errors, 1 warnings, 0 checks, 14 lines checked

### net/atlantic: use eeprom magic as a device address

WARNING:LONG_LINE: line over 100 characters
#163: FILE: drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c:134:
+    u32 val = rate_mask | ((BIT(CAPS_LO_SMBUS_READ) |
BIT(CAPS_LO_SMBUS_WRITE) | BIT(CAPS_LO_MACSEC)) & reg_val);

total: 0 errors, 1 warnings, 0 checks, 194 lines checked

### net/atlantic: fix eeprom fetching for small and uneven lengths

WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one

ERROR:POINTER_LOCATION: "(foo*)" should be "(foo *)"
#46: FILE: drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c:558:
+            rte_memcpy((u8*)data + len - bytes_remains, &val,
bytes_remains);

total: 1 errors, 1 warnings, 0 checks, 36 lines checked

### net/atlantic: fix missing vlan filter offload

WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one

total: 0 errors, 1 warnings, 0 checks, 9 lines checked

### net/atlantic: fix xstats to return correct number of requested items

WARNING:COMMIT_MESSAGE: Missing commit description - Add an appropriate one

total: 0 errors, 1 warnings, 0 checks, 16 lines checked

5/10 valid patches



[dmarchan@dmarchan dpdk]$ ./devtools/check-git-log.sh
Wrong headline uppercase:
    net/atlantic: Fix negative error codes
Wrong headline lowercase:
    net/atlantic: use eeprom magic as a device address
    net/atlantic: fix eeprom fetching for small and uneven lengths
    net/atlantic: eliminate excessive log levels on rx/tx
    net/atlantic: fix missing vlan filter offload
Headline too long:
    net/atlantic: fix eeprom fetching for small and uneven lengths
    net/atlantic: fix xstats to return correct number of requested items
Missing 'Fixes' tag:
    net/atlantic: Fix negative error codes
    net/atlantic: fix buffer overflow
    net/atlantic: fix eeprom fetching for small and uneven lengths
    net/atlantic: fix link configuration
    net/atlantic: fix missing vlan filter offload
    net/atlantic: fix xstats to return correct number of requested items


-- 
David Marchand

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH 10/10] net/atlantic: fix xstats to return correct number of requested items
  2019-03-02 12:11 ` [dpdk-dev] [PATCH 10/10] net/atlantic: fix xstats to return correct number of requested items Igor Russkikh
@ 2019-03-04 21:12   ` Rami Rosen
  0 siblings, 0 replies; 15+ messages in thread
From: Rami Rosen @ 2019-03-04 21:12 UTC (permalink / raw)
  To: Igor Russkikh; +Cc: dev, Pavel Belous

Reviewed-by: Rami Rosen <ramirose@gmail.com>


>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH 02/10] net/atlantic: remove unused variable
  2019-03-02 12:10 ` [dpdk-dev] [PATCH 02/10] net/atlantic: remove unused variable Igor Russkikh
@ 2019-03-04 21:22   ` Rami Rosen
  0 siblings, 0 replies; 15+ messages in thread
From: Rami Rosen @ 2019-03-04 21:22 UTC (permalink / raw)
  To: Igor Russkikh; +Cc: dev, Pavel Belous

Reviewed-by: Rami Rosen <ramirose@gmail.com>


>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup
  2019-03-04  9:40 ` [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup David Marchand
@ 2019-03-06 12:08   ` Igor Russkikh
  0 siblings, 0 replies; 15+ messages in thread
From: Igor Russkikh @ 2019-03-06 12:08 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, Pavel Belous



On 04.03.2019 12:40, David Marchand wrote:

> Those patches are missing Fixes: tags and copying stable where appropriate.
> The commitlogs also need some work.
> 
> It looks like those patches were neither checked against checkpatch nor
> check-git-log.sh.
> Here is what I see (extended the max line length to 100 to avoid all those
> 80 columns warnings, but this is worth fixing as well).

Thanks David, I've indeed forgot about check-git-log.
Will fix these and resubmit.

Regards,
  Igor

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-03-06 12:08 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-02 12:10 [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 01/10] net/atlantic: Fix negative error codes Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 02/10] net/atlantic: remove unused variable Igor Russkikh
2019-03-04 21:22   ` Rami Rosen
2019-03-02 12:10 ` [dpdk-dev] [PATCH 03/10] net/atlantic: check for error codes Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 04/10] net/atlantic: fix buffer overflow Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 05/10] net/atlantic: use eeprom magic as a device address Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 06/10] net/atlantic: fix eeprom fetching for small and uneven lengths Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 07/10] net/atlantic: fix link configuration Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 08/10] net/atlantic: eliminate excessive log levels on rx/tx Igor Russkikh
2019-03-02 12:10 ` [dpdk-dev] [PATCH 09/10] net/atlantic: fix missing vlan filter offload Igor Russkikh
2019-03-02 12:11 ` [dpdk-dev] [PATCH 10/10] net/atlantic: fix xstats to return correct number of requested items Igor Russkikh
2019-03-04 21:12   ` Rami Rosen
2019-03-04  9:40 ` [dpdk-dev] [PATCH 00/10] net/atlantic: bugfixes and code cleanup David Marchand
2019-03-06 12:08   ` Igor Russkikh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).