[dpdk-dev] [PATCH 5/6] qede: add driver

Stephen Hemminger stephen at networkplumber.org
Sun Feb 21 02:26:23 CET 2016


On Sat, 20 Feb 2016 07:40:30 -0800
Harish Patil <harish.patil at qlogic.com> wrote:

> Signed-off-by: Harish Patil <harish.patil at qlogic.com>
> Signed-off-by: Rasesh Mody <rasesh.mody at qlogic.com>
> Signed-off-by: Sony Chacko <sony.chacko at qlogic.com>
> ---
>  drivers/net/qede/LICENSE.qede_pmd         |   28 +
>  drivers/net/qede/Makefile                 |   95 ++
>  drivers/net/qede/qede_eth_if.c            |  461 ++++++++++
>  drivers/net/qede/qede_eth_if.h            |  180 ++++
>  drivers/net/qede/qede_ethdev.c            |  815 +++++++++++++++++
>  drivers/net/qede/qede_ethdev.h            |  138 +++
>  drivers/net/qede/qede_if.h                |  167 ++++
>  drivers/net/qede/qede_logs.h              |   93 ++
>  drivers/net/qede/qede_main.c              |  587 +++++++++++++
>  drivers/net/qede/qede_rxtx.c              | 1346 +++++++++++++++++++++++++++++
>  drivers/net/qede/qede_rxtx.h              |  183 ++++
>  drivers/net/qede/rte_pmd_qede_version.map |    4 +
>  12 files changed, 4097 insertions(+)
>  create mode 100644 drivers/net/qede/LICENSE.qede_pmd
>  create mode 100644 drivers/net/qede/Makefile
>  create mode 100644 drivers/net/qede/qede_eth_if.c
>  create mode 100644 drivers/net/qede/qede_eth_if.h
>  create mode 100644 drivers/net/qede/qede_ethdev.c
>  create mode 100644 drivers/net/qede/qede_ethdev.h
>  create mode 100644 drivers/net/qede/qede_if.h
>  create mode 100644 drivers/net/qede/qede_logs.h
>  create mode 100644 drivers/net/qede/qede_main.c
>  create mode 100644 drivers/net/qede/qede_rxtx.c
>  create mode 100644 drivers/net/qede/qede_rxtx.h
>  create mode 100644 drivers/net/qede/rte_pmd_qede_version.map

DPDK doesn't follow all the kernel style rules, but lots of them.
The biggest catch was the ; in the LOG macros.
Minor stuff about spacing around casts etc.


Running checkpatch with --ignore  PREFER_KERNEL_TYPES,LINE_SPACING,PARENTHESIS_ALIGNMENT,BIT_MACRO,NETWORKING_BLOCK_COMMENT_STYLE,SPLIT_STRING,COMPARISON_TO_NULL,CONCATENATED_STRING 

Produces:


CHECK:SPACING: spaces preferred around that '*' (ctx:VxO)
#410: FILE: drivers/net/qede/qede_eth_if.c:175:
+	      uint16_t cqe_pbl_size, void OSAL_IOMEM**pp_prod)
 	                                            ^

CHECK:SPACING: spaces preferred around that '*' (ctx:VxO)
#467: FILE: drivers/net/qede/qede_eth_if.c:232:
+	      uint16_t pbl_size, void OSAL_IOMEM**pp_doorbell)
 	                                        ^

CHECK:BRACES: Blank lines aren't necessary after an open brace '{'
#519: FILE: drivers/net/qede/qede_eth_if.c:284:
+{
+

WARNING:SPACING: Unnecessary space before function pointer arguments
#823: FILE: drivers/net/qede/qede_eth_if.h:121:
+	int (*fill_dev_info) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#826: FILE: drivers/net/qede/qede_eth_if.h:124:
+	int (*vport_start) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#829: FILE: drivers/net/qede/qede_eth_if.h:127:
+	int (*vport_stop) (struct ecore_dev *edev, uint8_t vport_id);

WARNING:SPACING: Unnecessary space before function pointer arguments
#831: FILE: drivers/net/qede/qede_eth_if.h:129:
+	int (*vport_update) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#834: FILE: drivers/net/qede/qede_eth_if.h:132:
+	int (*q_rx_start) (struct ecore_dev *cdev,

CHECK:SPACING: spaces preferred around that '*' (ctx:VxO)
#840: FILE: drivers/net/qede/qede_eth_if.h:138:
+			   uint16_t cqe_pbl_size, void OSAL_IOMEM**pp_prod);
 			                                         ^

WARNING:SPACING: Unnecessary space before function pointer arguments
#842: FILE: drivers/net/qede/qede_eth_if.h:140:
+	int (*q_rx_stop) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#845: FILE: drivers/net/qede/qede_eth_if.h:143:
+	int (*q_tx_start) (struct ecore_dev *edev,

CHECK:SPACING: spaces preferred around that '*' (ctx:VxO)
#850: FILE: drivers/net/qede/qede_eth_if.h:148:
+			   uint16_t pbl_size, void OSAL_IOMEM**pp_doorbell);
 			                                     ^

WARNING:SPACING: Unnecessary space before function pointer arguments
#852: FILE: drivers/net/qede/qede_eth_if.h:150:
+	int (*q_tx_stop) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#855: FILE: drivers/net/qede/qede_eth_if.h:153:
+	int (*eth_cqe_completion) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#859: FILE: drivers/net/qede/qede_eth_if.h:157:
+	int (*fastpath_stop) (struct ecore_dev *edev);

WARNING:SPACING: Unnecessary space before function pointer arguments
#861: FILE: drivers/net/qede/qede_eth_if.h:159:
+	void (*get_vport_stats) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#864: FILE: drivers/net/qede/qede_eth_if.h:162:
+	int (*filter_config) (struct ecore_dev *edev,

CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#872: FILE: drivers/net/qede/qede_eth_if.h:170:
+extern int qed_fill_eth_dev_info(struct ecore_dev *edev,

CHECK:SPACING: No space is necessary after a cast
#905: FILE: drivers/net/qede/qede_ethdev.c:17:
+	ecore_int_sp_dpc((osal_int_ptr_t) (p_hwfn));

CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around eth_dev->pci_dev->intr_handle
#916: FILE: drivers/net/qede/qede_ethdev.c:28:
+	if (rte_intr_enable(&(eth_dev->pci_dev->intr_handle)))

CHECK:BRACES: braces {} should be used on all arms of this statement
#1071: FILE: drivers/net/qede/qede_ethdev.c:183:
+	if (rte_eth_promiscuous_get(eth_dev->data->port_id) == 1)
[...]
+	else if (!qdev->non_configured_vlans) {
[...]

WARNING:MISSING_SPACE: break quoted strings at a space character
#1097: FILE: drivers/net/qede/qede_ethdev.c:209:
+			  "unequal number of rx/tx queues"
+			  "is not supported RX=%u TX=%u\n",

CHECK:SPACING: No space is necessary after a cast
#1151: FILE: drivers/net/qede/qede_ethdev.c:263:
+	dev_info->min_rx_bufsize = (uint32_t) (ETHER_MIN_MTU +

CHECK:SPACING: No space is necessary after a cast
#1153: FILE: drivers/net/qede/qede_ethdev.c:265:
+	dev_info->max_rx_pktlen = (uint32_t) ETH_TX_MAX_NON_LSO_PKT_LEN;

CHECK:SPACING: No space is necessary after a cast
#1156: FILE: drivers/net/qede/qede_ethdev.c:268:
+	dev_info->max_rx_queues = (uint16_t) QEDE_MAX_RSS_CNT(qdev);

CHECK:SPACING: No space is necessary after a cast
#1157: FILE: drivers/net/qede/qede_ethdev.c:269:
+	dev_info->max_tx_queues = (uint16_t) QEDE_MAX_TSS_CNT(qdev);

CHECK:SPACING: No space is necessary after a cast
#1158: FILE: drivers/net/qede/qede_ethdev.c:270:
+	dev_info->max_mac_addrs = (uint32_t) (RESC_NUM(&edev->hwfns[0],

CHECK:SPACING: No space is necessary after a cast
#1160: FILE: drivers/net/qede/qede_ethdev.c:272:
+	dev_info->max_vfs = (uint16_t) NUM_OF_VFS(&qdev->edev);

CHECK:SPACING: No space is necessary after a cast
#1163: FILE: drivers/net/qede/qede_ethdev.c:275:
+	dev_info->flow_type_rss_offloads = (uint64_t) QEDE_RSS_OFFLOAD_ALL;

CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around eth_dev->pci_dev->intr_handle
#1299: FILE: drivers/net/qede/qede_ethdev.c:411:
+	rte_intr_disable(&(eth_dev->pci_dev->intr_handle));

CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around eth_dev->pci_dev->intr_handle
#1301: FILE: drivers/net/qede/qede_ethdev.c:413:
+	rte_intr_callback_unregister(&(eth_dev->pci_dev->intr_handle),

CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around eth_dev->pci_dev->intr_handle
#1511: FILE: drivers/net/qede/qede_ethdev.c:623:
+	rte_intr_callback_register(&(eth_dev->pci_dev->intr_handle),

CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around eth_dev->pci_dev->intr_handle
#1514: FILE: drivers/net/qede/qede_ethdev.c:626:
+	if (rte_intr_enable(&(eth_dev->pci_dev->intr_handle))) {

WARNING:SPACING: Unnecessary space before function pointer arguments
#1948: FILE: drivers/net/qede/qede_if.h:95:
+	void (*link_update) (void *dev, struct qed_link_output *link);

WARNING:SPACING: Unnecessary space before function pointer arguments
#1959: FILE: drivers/net/qede/qede_if.h:106:
+	int (*registers) (struct ecore_dev *edev);

WARNING:SPACING: Unnecessary space before function pointer arguments
#1963: FILE: drivers/net/qede/qede_if.h:110:
+	int (*probe) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1967: FILE: drivers/net/qede/qede_if.h:114:
+	void (*set_id) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1969: FILE: drivers/net/qede/qede_if.h:116:
+	enum _ecore_status_t (*chain_alloc) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1978: FILE: drivers/net/qede/qede_if.h:125:
+	void (*chain_free) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1981: FILE: drivers/net/qede/qede_if.h:128:
+	void (*get_link) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1983: FILE: drivers/net/qede/qede_if.h:130:
+	int (*set_link) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1986: FILE: drivers/net/qede/qede_if.h:133:
+	int (*drain) (struct ecore_dev *edev);

WARNING:SPACING: Unnecessary space before function pointer arguments
#1988: FILE: drivers/net/qede/qede_if.h:135:
+	void (*remove) (struct ecore_dev *edev);

WARNING:SPACING: Unnecessary space before function pointer arguments
#1990: FILE: drivers/net/qede/qede_if.h:137:
+	int (*slowpath_stop) (struct ecore_dev *edev);

WARNING:SPACING: Unnecessary space before function pointer arguments
#1992: FILE: drivers/net/qede/qede_if.h:139:
+	void (*update_pf_params) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1995: FILE: drivers/net/qede/qede_if.h:142:
+	int (*slowpath_start) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#1998: FILE: drivers/net/qede/qede_if.h:145:
+	int (*set_fp_int) (struct ecore_dev *edev, uint16_t cnt);

WARNING:SPACING: missing space after return type
#2000: FILE: drivers/net/qede/qede_if.h:147:
+	 uint32_t(*sb_init) (struct ecore_dev *edev,

WARNING:SPACING: Unnecessary space before function pointer arguments
#2000: FILE: drivers/net/qede/qede_if.h:147:
+	 uint32_t(*sb_init) (struct ecore_dev *edev,

WARNING:SPACING: missing space after return type
#2006: FILE: drivers/net/qede/qede_if.h:153:
+	 bool(*can_link_change) (struct ecore_dev *edev);

WARNING:SPACING: Unnecessary space before function pointer arguments
#2006: FILE: drivers/net/qede/qede_if.h:153:
+	 bool(*can_link_change) (struct ecore_dev *edev);

WARNING:SPACING: Unnecessary space before function pointer arguments
#2007: FILE: drivers/net/qede/qede_if.h:154:
+	void (*update_msglvl) (struct ecore_dev *edev,

WARNING:TRAILING_SEMICOLON: macros should not use a trailing semicolon
#2038: FILE: drivers/net/qede/qede_logs.h:12:
+#define DP_ERR(p_dev, fmt, ...) \
+	rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, \
+		"[%s:%d(%s)]" fmt, \
+		  __func__, __LINE__, \
+		(p_dev)->name ? (p_dev)->name : "", \
+		##__VA_ARGS__);

WARNING:TRAILING_SEMICOLON: macros should not use a trailing semicolon
#2102: FILE: drivers/net/qede/qede_logs.h:76:
+#define PMD_RX_LOG(level, q, fmt, args...) \
+	RTE_LOG(level, PMD, "%s(): port=%u queue=%u " fmt "\n",	\
+		__func__, q->port_id, q->queue_id, ## args);

WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (16, 20)
#2469: FILE: drivers/net/qede/qede_main.c:344:
+		for_each_hwfn(edev, i)
+		    info->num_queues +=

CHECK:SPACING: No space is necessary after a cast
#2484: FILE: drivers/net/qede/qede_main.c:359:
+				      (uint8_t *) &info->port_mac);

WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (8, 12)
#2582: FILE: drivers/net/qede/qede_main.c:457:
+	for_each_hwfn(cdev, i)
+	    qed_inform_vf_link_state(&cdev->hwfns[i]);

CHECK:BRACES: Blank lines aren't necessary before a close brace '}'
#2586: FILE: drivers/net/qede/qede_main.c:461:
+
+}

WARNING:MISSING_SPACE: break quoted strings at a space character
#2753: FILE: drivers/net/qede/qede_rxtx.c:35:
+			   "Failed to allocate rx buffer"
+			   "sw_rx_prod %u sw_rx_cons %u mp entries %u free %u",

WARNING:CONSTANT_COMPARISON: Comparisons should place the constant on the right side of the test
#2776: FILE: drivers/net/qede/qede_rxtx.c:58:
+			if (NULL != rxq->sw_rx_ring[i].mbuf) {

CHECK:SPACING: No space is necessary after a cast
#2817: FILE: drivers/net/qede/qede_rxtx.c:99:
+	uint16_t pkt_len = (uint16_t) dev->data->dev_conf.rxmode.max_rx_pkt_len;

WARNING:MISSING_SPACE: break quoted strings at a space character
#3199: FILE: drivers/net/qede/qede_rxtx.c:481:
+				  "Failed to allocate memory for all of"
+				  "RSS queues\n"

CHECK:SPACING: No space is necessary after a cast
#3228: FILE: drivers/net/qede/qede_rxtx.c:510:
+			(uint32_t *) &rx_prods);

WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or return
#3275: FILE: drivers/net/qede/qede_rxtx.c:557:
+		return -EINVAL;
+	} else {

WARNING:MISSING_SPACE: break quoted strings at a space character
#3325: FILE: drivers/net/qede/qede_rxtx.c:607:
+		       "Cannot update V-VPORT as active as"
+		       "there are no Rx queues\n");

CHECK:SPACING: No space is necessary after a cast
#3587: FILE: drivers/net/qede/qede_rxtx.c:869:
+				(struct eth_slow_path_rx_cqe *) cqe);

CHECK:REDUNDANT_CODE: if this code is redundant consider removing it
#3601: FILE: drivers/net/qede/qede_rxtx.c:883:
+#if 0

WARNING:MISSING_SPACE: break quoted strings at a space character
#3617: FILE: drivers/net/qede/qede_rxtx.c:899:
+				   "CQE in CONS = %u has error, flags = 0x%x"
+				   "dropping incoming packet\n",

WARNING:MISSING_SPACE: break quoted strings at a space character
#3688: FILE: drivers/net/qede/qede_rxtx.c:970:
+			   "null mbuf nb_tx_desc %u nb_tx_avail %u"
+			   "sw_tx_cons %u sw_tx_prod %u\n",

WARNING:UNNECESSARY_ELSE: else is not generally useful after a break or return
#3893: FILE: drivers/net/qede/qede_rxtx.c:1175:
+				return qede_drain_txq(qdev, txq, false);
+			} else {

CHECK:SPACING: No space is necessary after a cast
#4113: FILE: drivers/net/qede/qede_rxtx.h:43:
+	((uint64_t) ((mb)->buf_physaddr + (mb)->data_off))



More information about the dev mailing list