* [PATCH net-next 00/11] qed/qede: Mostly-cleanup series
@ 2017-05-22 11:32 Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 01/11] qede: Fix sparse warnings Yuval Mintz
` (10 more replies)
0 siblings, 11 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Yuval Mintz
This series contains some cleanup of the qed and qede code:
- #1 contains mostly static/endian changes in order to allow qede to
pass sparse compilation cleanly.
- #2, #5 and #6 are either semantic or remove dead-code from driver.
- #9, #10 and #11 relate to printing and slightly change some APIs
between qed and the protocol drivers for that end [sharing the
interface names and information regarding device].
The rest of the patches are minor changes/fixes to various flows
in qed.
Dave,
Please consider applying this series to net-next.
Thanks,
Yuval
Manish Chopra (2):
qede: Fix sparse warnings
qed: !main_ptt for tunnel configuration
Michal Kalderon (1):
qed: Enable RoCE parser searching on fp init
Tomer Tayar (4):
qed: Log incorrectly installed board
qed: Drop the 's' from num_ports_in_engines
qed: Flush slowpath tasklet on stop
qed: Provide MBI information in dev_info
Yuval Mintz (4):
qed: Align DP_ERR style with other DP macros
qed: Remove BB_A0 references
qede: Log probe of PCI device
qed: Replace set_id() api with set_name()
drivers/net/ethernet/qlogic/qed/qed.h | 9 +---
drivers/net/ethernet/qlogic/qed/qed_dev.c | 57 +++++++++++++----------
drivers/net/ethernet/qlogic/qed/qed_hsi.h | 8 ++++
drivers/net/ethernet/qlogic/qed/qed_l2.c | 17 ++++++-
drivers/net/ethernet/qlogic/qed/qed_main.c | 26 ++++++++---
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 30 ++++++++++++
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 14 +++++-
drivers/net/ethernet/qlogic/qed/qed_ptp.c | 4 +-
drivers/net/ethernet/qlogic/qed/qed_sp.h | 3 ++
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c | 14 ++++--
drivers/net/ethernet/qlogic/qed/qed_sriov.c | 2 +-
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c | 1 -
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 10 ++--
drivers/net/ethernet/qlogic/qede/qede_fp.c | 25 +++++-----
drivers/net/ethernet/qlogic/qede/qede_main.c | 44 +++++++++++++++--
drivers/net/ethernet/qlogic/qede/qede_roce.c | 4 +-
drivers/scsi/qedf/qedf_main.c | 2 +-
drivers/scsi/qedi/qedi_main.c | 2 +-
include/linux/qed/qed_if.h | 33 +++++++++----
19 files changed, 223 insertions(+), 82 deletions(-)
--
1.9.3
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH net-next 01/11] qede: Fix sparse warnings
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 16:38 ` David Miller
2017-05-22 11:32 ` [PATCH net-next 02/11] qed: Align DP_ERR style with other DP macros Yuval Mintz
` (9 subsequent siblings)
10 siblings, 1 reply; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Manish Chopra, Yuval Mintz
From: Manish Chopra <Manish.Chopra@cavium.com>
Signed-off-by: Manish Chopra <Manish.Chopra@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c | 1 -
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 10 ++++++----
drivers/net/ethernet/qlogic/qede/qede_fp.c | 25 ++++++++++++++-----------
drivers/net/ethernet/qlogic/qede/qede_roce.c | 4 ++--
4 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
index a9e7379..6e7747b 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
@@ -313,7 +313,6 @@ static int qede_dcbnl_ieee_peer_getets(struct net_device *netdev,
.ieee_setets = qede_dcbnl_ieee_setets,
.ieee_getapp = qede_dcbnl_ieee_getapp,
.ieee_setapp = qede_dcbnl_ieee_setapp,
- .getdcbx = qede_dcbnl_getdcbx,
.ieee_peer_getpfc = qede_dcbnl_ieee_peer_getpfc,
.ieee_peer_getets = qede_dcbnl_ieee_peer_getets,
.getstate = qede_dcbnl_getstate,
diff --git a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c
index 6c76a12..6a03d3e 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c
@@ -1290,7 +1290,8 @@ static int qede_selftest_transmit_traffic(struct qede_dev *edev,
struct qede_tx_queue *txq = NULL;
struct eth_tx_1st_bd *first_bd;
dma_addr_t mapping;
- int i, idx, val;
+ int i, idx;
+ u16 val;
for_each_queue(i) {
if (edev->fp_array[i].type & QEDE_FASTPATH_TX) {
@@ -1312,7 +1313,8 @@ static int qede_selftest_transmit_traffic(struct qede_dev *edev,
val = 1 << ETH_TX_1ST_BD_FLAGS_START_BD_SHIFT;
first_bd->data.bd_flags.bitfields = val;
val = skb->len & ETH_TX_DATA_1ST_BD_PKT_LEN_MASK;
- first_bd->data.bitfields |= (val << ETH_TX_DATA_1ST_BD_PKT_LEN_SHIFT);
+ val = val << ETH_TX_DATA_1ST_BD_PKT_LEN_SHIFT;
+ first_bd->data.bitfields |= cpu_to_le16(val);
/* Map skb linear data for DMA and set in the first BD */
mapping = dma_map_single(&edev->pdev->dev, skb->data,
@@ -1327,8 +1329,8 @@ static int qede_selftest_transmit_traffic(struct qede_dev *edev,
first_bd->data.nbds = 1;
txq->sw_tx_prod = (txq->sw_tx_prod + 1) % txq->num_tx_buffers;
/* 'next page' entries are counted in the producer value */
- val = cpu_to_le16(qed_chain_get_prod_idx(&txq->tx_pbl));
- txq->tx_db.data.bd_prod = val;
+ val = qed_chain_get_prod_idx(&txq->tx_pbl);
+ txq->tx_db.data.bd_prod = cpu_to_le16(val);
/* wmb makes sure that the BDs data is updated before updating the
* producer, otherwise FW may read old data from the BDs.
diff --git a/drivers/net/ethernet/qlogic/qede/qede_fp.c b/drivers/net/ethernet/qlogic/qede/qede_fp.c
index 38c8265..892eb98 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_fp.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_fp.c
@@ -335,6 +335,7 @@ static int qede_xdp_xmit(struct qede_dev *edev, struct qede_fastpath *fp,
struct qede_tx_queue *txq = fp->xdp_tx;
struct eth_tx_1st_bd *first_bd;
u16 idx = txq->sw_tx_prod;
+ u16 val;
if (!qed_chain_get_elem_left(&txq->tx_pbl)) {
txq->stopped_cnt++;
@@ -346,9 +347,11 @@ static int qede_xdp_xmit(struct qede_dev *edev, struct qede_fastpath *fp,
memset(first_bd, 0, sizeof(*first_bd));
first_bd->data.bd_flags.bitfields =
BIT(ETH_TX_1ST_BD_FLAGS_START_BD_SHIFT);
- first_bd->data.bitfields |=
- (length & ETH_TX_DATA_1ST_BD_PKT_LEN_MASK) <<
- ETH_TX_DATA_1ST_BD_PKT_LEN_SHIFT;
+
+ val = (length & ETH_TX_DATA_1ST_BD_PKT_LEN_MASK) <<
+ ETH_TX_DATA_1ST_BD_PKT_LEN_SHIFT;
+
+ first_bd->data.bitfields |= cpu_to_le16(val);
first_bd->data.nbds = 1;
/* We can safely ignore the offset, as it's 0 for XDP */
@@ -1424,7 +1427,7 @@ netdev_tx_t qede_start_xmit(struct sk_buff *skb, struct net_device *ndev)
struct eth_tx_2nd_bd *second_bd = NULL;
struct eth_tx_3rd_bd *third_bd = NULL;
struct eth_tx_bd *tx_data_bd = NULL;
- u16 txq_index;
+ u16 txq_index, val = 0;
u8 nbd = 0;
dma_addr_t mapping;
int rc, frag_idx = 0, ipv6_ext = 0;
@@ -1513,8 +1516,8 @@ netdev_tx_t qede_start_xmit(struct sk_buff *skb, struct net_device *ndev)
if (xmit_type & XMIT_ENC) {
first_bd->data.bd_flags.bitfields |=
1 << ETH_TX_1ST_BD_FLAGS_IP_CSUM_SHIFT;
- first_bd->data.bitfields |=
- 1 << ETH_TX_DATA_1ST_BD_TUNN_FLAG_SHIFT;
+
+ val |= (1 << ETH_TX_DATA_1ST_BD_TUNN_FLAG_SHIFT);
}
/* Legacy FW had flipped behavior in regard to this bit -
@@ -1522,8 +1525,7 @@ netdev_tx_t qede_start_xmit(struct sk_buff *skb, struct net_device *ndev)
* packets when it didn't need to.
*/
if (unlikely(txq->is_legacy))
- first_bd->data.bitfields ^=
- 1 << ETH_TX_DATA_1ST_BD_TUNN_FLAG_SHIFT;
+ val ^= (1 << ETH_TX_DATA_1ST_BD_TUNN_FLAG_SHIFT);
/* If the packet is IPv6 with extension header, indicate that
* to FW and pass few params, since the device cracker doesn't
@@ -1587,11 +1589,12 @@ netdev_tx_t qede_start_xmit(struct sk_buff *skb, struct net_device *ndev)
data_split = true;
}
} else {
- first_bd->data.bitfields |=
- (skb->len & ETH_TX_DATA_1ST_BD_PKT_LEN_MASK) <<
- ETH_TX_DATA_1ST_BD_PKT_LEN_SHIFT;
+ val |= ((skb->len & ETH_TX_DATA_1ST_BD_PKT_LEN_MASK) <<
+ ETH_TX_DATA_1ST_BD_PKT_LEN_SHIFT);
}
+ first_bd->data.bitfields = cpu_to_le16(val);
+
/* Handle fragmented skb */
/* special handle for frags inside 2nd and 3rd bds.. */
while (tx_data_bd && frag_idx < skb_shinfo(skb)->nr_frags) {
diff --git a/drivers/net/ethernet/qlogic/qede/qede_roce.c b/drivers/net/ethernet/qlogic/qede/qede_roce.c
index f00657c..c0030fb 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_roce.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_roce.c
@@ -221,8 +221,8 @@ static void qede_roce_changeaddr(struct qede_dev *edev)
qedr_drv->notify(edev->rdma_info.qedr_dev, QEDE_CHANGE_ADDR);
}
-struct qede_roce_event_work *qede_roce_get_free_event_node(struct qede_dev
- *edev)
+static struct qede_roce_event_work *
+qede_roce_get_free_event_node(struct qede_dev *edev)
{
struct qede_roce_event_work *event_node = NULL;
struct list_head *list_node = NULL;
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 02/11] qed: Align DP_ERR style with other DP macros
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 01/11] qede: Fix sparse warnings Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 03/11] qed: !main_ptt for tunnel configuration Yuval Mintz
` (8 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Yuval Mintz
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
include/linux/qed/qed_if.h | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/include/linux/qed/qed_if.h b/include/linux/qed/qed_if.h
index c70ac13..ff590cb 100644
--- a/include/linux/qed/qed_if.h
+++ b/include/linux/qed/qed_if.h
@@ -700,11 +700,13 @@ struct qed_common_ops {
(((value) >> (name ## _SHIFT)) & name ## _MASK)
/* Debug print definitions */
-#define DP_ERR(cdev, fmt, ...) \
- pr_err("[%s:%d(%s)]" fmt, \
- __func__, __LINE__, \
- DP_NAME(cdev) ? DP_NAME(cdev) : "", \
- ## __VA_ARGS__) \
+#define DP_ERR(cdev, fmt, ...) \
+ do { \
+ pr_err("[%s:%d(%s)]" fmt, \
+ __func__, __LINE__, \
+ DP_NAME(cdev) ? DP_NAME(cdev) : "", \
+ ## __VA_ARGS__); \
+ } while (0)
#define DP_NOTICE(cdev, fmt, ...) \
do { \
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 03/11] qed: !main_ptt for tunnel configuration
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 01/11] qede: Fix sparse warnings Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 02/11] qed: Align DP_ERR style with other DP macros Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 04/11] qed: Log incorrectly installed board Yuval Mintz
` (7 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Manish Chopra, Yuval Mintz
From: Manish Chopra <Manish.Chopra@cavium.com>
Flows configuring tunnel ports in HW use the main_ptt which should
be reserved for core-functionality.
Signed-off-by: Manish Chopra <Manish.Chopra@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed_dev.c | 3 ++-
drivers/net/ethernet/qlogic/qed/qed_l2.c | 17 +++++++++++++++--
drivers/net/ethernet/qlogic/qed/qed_sp.h | 3 +++
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c | 14 +++++++++-----
drivers/net/ethernet/qlogic/qed/qed_sriov.c | 2 +-
5 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index 3fc3b2e..9dd28ba 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -1513,7 +1513,8 @@ static int qed_hw_init_pf(struct qed_hwfn *p_hwfn,
qed_int_igu_enable(p_hwfn, p_ptt, int_mode);
/* send function start command */
- rc = qed_sp_pf_start(p_hwfn, p_tunn, p_hwfn->cdev->mf_mode,
+ rc = qed_sp_pf_start(p_hwfn, p_ptt, p_tunn,
+ p_hwfn->cdev->mf_mode,
allow_npar_tx_switch);
if (rc) {
DP_NOTICE(p_hwfn, "Function start ramrod failed\n");
diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c
index fab6e69..93dd781 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_l2.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c
@@ -2300,14 +2300,25 @@ static int qed_tunn_configure(struct qed_dev *cdev,
for_each_hwfn(cdev, i) {
struct qed_hwfn *hwfn = &cdev->hwfns[i];
+ struct qed_ptt *p_ptt;
struct qed_tunnel_info *tun;
tun = &hwfn->cdev->tunnel;
+ if (IS_PF(cdev)) {
+ p_ptt = qed_ptt_acquire(hwfn);
+ if (!p_ptt)
+ return -EAGAIN;
+ } else {
+ p_ptt = NULL;
+ }
- rc = qed_sp_pf_update_tunn_cfg(hwfn, &tunn_info,
+ rc = qed_sp_pf_update_tunn_cfg(hwfn, p_ptt, &tunn_info,
QED_SPQ_MODE_EBLOCK, NULL);
- if (rc)
+ if (rc) {
+ if (IS_PF(cdev))
+ qed_ptt_release(hwfn, p_ptt);
return rc;
+ }
if (IS_PF_SRIOV(hwfn)) {
u16 vxlan_port, geneve_port;
@@ -2324,6 +2335,8 @@ static int qed_tunn_configure(struct qed_dev *cdev,
qed_schedule_iov(hwfn, QED_IOV_WQ_BULLETIN_UPDATE_FLAG);
}
+ if (IS_PF(cdev))
+ qed_ptt_release(hwfn, p_ptt);
}
return 0;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_sp.h b/drivers/net/ethernet/qlogic/qed/qed_sp.h
index c0b56b9..ef77de4 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_sp.h
+++ b/drivers/net/ethernet/qlogic/qed/qed_sp.h
@@ -391,6 +391,7 @@ int qed_sp_init_request(struct qed_hwfn *p_hwfn,
* to the internal RAM of the UStorm by the Function Start Ramrod.
*
* @param p_hwfn
+ * @param p_ptt
* @param p_tunn
* @param mode
* @param allow_npar_tx_switch
@@ -399,6 +400,7 @@ int qed_sp_init_request(struct qed_hwfn *p_hwfn,
*/
int qed_sp_pf_start(struct qed_hwfn *p_hwfn,
+ struct qed_ptt *p_ptt,
struct qed_tunnel_info *p_tunn,
enum qed_mf_mode mode, bool allow_npar_tx_switch);
@@ -432,6 +434,7 @@ int qed_sp_pf_start(struct qed_hwfn *p_hwfn,
int qed_sp_pf_stop(struct qed_hwfn *p_hwfn);
int qed_sp_pf_update_tunn_cfg(struct qed_hwfn *p_hwfn,
+ struct qed_ptt *p_ptt,
struct qed_tunnel_info *p_tunn,
enum spq_mode comp_mode,
struct qed_spq_comp_cb *p_comp_data);
diff --git a/drivers/net/ethernet/qlogic/qed/qed_sp_commands.c b/drivers/net/ethernet/qlogic/qed/qed_sp_commands.c
index 5abcac6..ab09975 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_sp_commands.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_sp_commands.c
@@ -253,17 +253,18 @@ static void qed_set_hw_tunn_mode(struct qed_hwfn *p_hwfn,
}
static void qed_set_hw_tunn_mode_port(struct qed_hwfn *p_hwfn,
+ struct qed_ptt *p_ptt,
struct qed_tunnel_info *p_tunn)
{
if (p_tunn->vxlan_port.b_update_port)
- qed_set_vxlan_dest_port(p_hwfn, p_hwfn->p_main_ptt,
+ qed_set_vxlan_dest_port(p_hwfn, p_ptt,
p_tunn->vxlan_port.port);
if (p_tunn->geneve_port.b_update_port)
- qed_set_geneve_dest_port(p_hwfn, p_hwfn->p_main_ptt,
+ qed_set_geneve_dest_port(p_hwfn, p_ptt,
p_tunn->geneve_port.port);
- qed_set_hw_tunn_mode(p_hwfn, p_hwfn->p_main_ptt, p_tunn);
+ qed_set_hw_tunn_mode(p_hwfn, p_ptt, p_tunn);
}
static void
@@ -303,6 +304,7 @@ static void qed_set_hw_tunn_mode_port(struct qed_hwfn *p_hwfn,
}
int qed_sp_pf_start(struct qed_hwfn *p_hwfn,
+ struct qed_ptt *p_ptt,
struct qed_tunnel_info *p_tunn,
enum qed_mf_mode mode, bool allow_npar_tx_switch)
{
@@ -399,7 +401,8 @@ int qed_sp_pf_start(struct qed_hwfn *p_hwfn,
rc = qed_spq_post(p_hwfn, p_ent, NULL);
if (p_tunn)
- qed_set_hw_tunn_mode_port(p_hwfn, &p_hwfn->cdev->tunnel);
+ qed_set_hw_tunn_mode_port(p_hwfn, p_ptt,
+ &p_hwfn->cdev->tunnel);
return rc;
}
@@ -430,6 +433,7 @@ int qed_sp_pf_update(struct qed_hwfn *p_hwfn)
/* Set pf update ramrod command params */
int qed_sp_pf_update_tunn_cfg(struct qed_hwfn *p_hwfn,
+ struct qed_ptt *p_ptt,
struct qed_tunnel_info *p_tunn,
enum spq_mode comp_mode,
struct qed_spq_comp_cb *p_comp_data)
@@ -464,7 +468,7 @@ int qed_sp_pf_update_tunn_cfg(struct qed_hwfn *p_hwfn,
if (rc)
return rc;
- qed_set_hw_tunn_mode_port(p_hwfn, &p_hwfn->cdev->tunnel);
+ qed_set_hw_tunn_mode_port(p_hwfn, p_ptt, &p_hwfn->cdev->tunnel);
return rc;
}
diff --git a/drivers/net/ethernet/qlogic/qed/qed_sriov.c b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
index f5ed54d..71e392f 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_sriov.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
@@ -2209,7 +2209,7 @@ static void qed_iov_vf_mbx_update_tunn_param(struct qed_hwfn *p_hwfn,
if (b_update_required) {
u16 geneve_port;
- rc = qed_sp_pf_update_tunn_cfg(p_hwfn, &tunn,
+ rc = qed_sp_pf_update_tunn_cfg(p_hwfn, p_ptt, &tunn,
QED_SPQ_MODE_EBLOCK, NULL);
if (rc)
status = PFVF_STATUS_FAILURE;
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 04/11] qed: Log incorrectly installed board
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (2 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 03/11] qed: !main_ptt for tunnel configuration Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 05/11] qed: Drop the 's' from num_ports_in_engines Yuval Mintz
` (6 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Tomer Tayar, Yuval Mintz
From: Tomer Tayar <Tomer.Tayar@cavium.com>
In case nvram layout of board is incorrect, board may exhibit peculiar
oddities. Log such a rare event.
Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed_dev.c | 5 +++++
drivers/net/ethernet/qlogic/qed/qed_hsi.h | 2 ++
2 files changed, 7 insertions(+)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index 9dd28ba..b01df24 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -1698,6 +1698,11 @@ int qed_hw_init(struct qed_dev *cdev, struct qed_hw_init_params *p_params)
return mfw_rc;
}
+ /* Check if there is a DID mismatch between nvm-cfg/efuse */
+ if (param & FW_MB_PARAM_LOAD_DONE_DID_EFUSE_ERROR)
+ DP_NOTICE(p_hwfn,
+ "warning: device configuration is not supported on this board type. The device may not function as expected.\n");
+
/* send DCBX attention request command */
DP_VERBOSE(p_hwfn,
QED_MSG_DCB,
diff --git a/drivers/net/ethernet/qlogic/qed/qed_hsi.h b/drivers/net/ethernet/qlogic/qed/qed_hsi.h
index eedf79a..4755d0b 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_hsi.h
+++ b/drivers/net/ethernet/qlogic/qed/qed_hsi.h
@@ -11655,6 +11655,8 @@ struct public_drv_mb {
#define FW_MB_PARAM_GET_PF_RDMA_IWARP 0x2
#define FW_MB_PARAM_GET_PF_RDMA_BOTH 0x3
+#define FW_MB_PARAM_LOAD_DONE_DID_EFUSE_ERROR (1 << 0)
+
u32 drv_pulse_mb;
#define DRV_PULSE_SEQ_MASK 0x00007fff
#define DRV_PULSE_SYSTEM_TIME_MASK 0xffff0000
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 05/11] qed: Drop the 's' from num_ports_in_engines
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (3 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 04/11] qed: Log incorrectly installed board Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 06/11] qed: Remove BB_A0 references Yuval Mintz
` (5 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Tomer Tayar, Yuval Mintz
From: Tomer Tayar <Tomer.Tayar@cavium.com>
The parameter reflects the number of physical ports connected to a single
engine, not all.
Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed.h | 2 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 36 +++++++++++++++----------------
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 2 +-
drivers/net/ethernet/qlogic/qed/qed_ptp.c | 4 ++--
4 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed.h b/drivers/net/ethernet/qlogic/qed/qed.h
index fd8cf31..63c44c6 100644
--- a/drivers/net/ethernet/qlogic/qed/qed.h
+++ b/drivers/net/ethernet/qlogic/qed/qed.h
@@ -633,7 +633,7 @@ struct qed_dev {
#define CHIP_BOND_ID_SHIFT 0
u8 num_engines;
- u8 num_ports_in_engines;
+ u8 num_ports_in_engine;
u8 num_funcs_in_port;
u8 path_id;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index b01df24..51ae907 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -300,7 +300,7 @@ static void qed_init_qm_params(struct qed_hwfn *p_hwfn)
qm_info->vport_wfq_en = 1;
/* TC config is different for AH 4 port */
- four_port = p_hwfn->cdev->num_ports_in_engines == MAX_NUM_PORTS_K2;
+ four_port = p_hwfn->cdev->num_ports_in_engine == MAX_NUM_PORTS_K2;
/* in AH 4 port we have fewer TCs per port */
qm_info->max_phys_tcs_per_port = four_port ? NUM_PHYS_TCS_4PORT_K2 :
@@ -329,7 +329,7 @@ static void qed_init_qm_vport_params(struct qed_hwfn *p_hwfn)
static void qed_init_qm_port_params(struct qed_hwfn *p_hwfn)
{
/* Initialize qm port parameters */
- u8 i, active_phys_tcs, num_ports = p_hwfn->cdev->num_ports_in_engines;
+ u8 i, active_phys_tcs, num_ports = p_hwfn->cdev->num_ports_in_engine;
/* indicate how ooo and high pri traffic is dealt with */
active_phys_tcs = num_ports == MAX_NUM_PORTS_K2 ?
@@ -693,7 +693,7 @@ static void qed_dp_init_qm_params(struct qed_hwfn *p_hwfn)
qm_info->num_pf_rls, qed_get_pq_flags(p_hwfn));
/* port table */
- for (i = 0; i < p_hwfn->cdev->num_ports_in_engines; i++) {
+ for (i = 0; i < p_hwfn->cdev->num_ports_in_engine; i++) {
port = &(qm_info->qm_port_params[i]);
DP_VERBOSE(p_hwfn,
NETIF_MSG_HW,
@@ -823,7 +823,7 @@ static int qed_alloc_qm_data(struct qed_hwfn *p_hwfn)
goto alloc_err;
qm_info->qm_port_params = kzalloc(sizeof(*qm_info->qm_port_params) *
- p_hwfn->cdev->num_ports_in_engines,
+ p_hwfn->cdev->num_ports_in_engine,
GFP_KERNEL);
if (!qm_info->qm_port_params)
goto alloc_err;
@@ -1108,7 +1108,7 @@ static int qed_calc_hw_mode(struct qed_hwfn *p_hwfn)
return -EINVAL;
}
- switch (p_hwfn->cdev->num_ports_in_engines) {
+ switch (p_hwfn->cdev->num_ports_in_engine) {
case 1:
hw_mode |= 1 << MODE_PORTS_PER_ENG_1;
break;
@@ -1120,7 +1120,7 @@ static int qed_calc_hw_mode(struct qed_hwfn *p_hwfn)
break;
default:
DP_NOTICE(p_hwfn, "num_ports_in_engine = %d not supported\n",
- p_hwfn->cdev->num_ports_in_engines);
+ p_hwfn->cdev->num_ports_in_engine);
return -EINVAL;
}
@@ -1253,7 +1253,7 @@ static int qed_hw_init_common(struct qed_hwfn *p_hwfn,
}
memset(¶ms, 0, sizeof(params));
- params.max_ports_per_engine = p_hwfn->cdev->num_ports_in_engines;
+ params.max_ports_per_engine = p_hwfn->cdev->num_ports_in_engine;
params.max_phys_tcs_per_port = qm_info->max_phys_tcs_per_port;
params.pf_rl_en = qm_info->pf_rl_en;
params.pf_wfq_en = qm_info->pf_wfq_en;
@@ -2245,7 +2245,7 @@ int qed_hw_get_dflt_resc(struct qed_hwfn *p_hwfn,
case QED_BDQ:
if (!*p_resc_num)
*p_resc_start = 0;
- else if (p_hwfn->cdev->num_ports_in_engines == 4)
+ else if (p_hwfn->cdev->num_ports_in_engine == 4)
*p_resc_start = p_hwfn->port_id;
else if (p_hwfn->hw_info.personality == QED_PCI_ISCSI)
*p_resc_start = p_hwfn->port_id;
@@ -2662,15 +2662,15 @@ static void qed_hw_info_port_num_bb(struct qed_hwfn *p_hwfn,
port_mode = qed_rd(p_hwfn, p_ptt, CNIG_REG_NW_PORT_MODE_BB_B0);
if (port_mode < 3) {
- p_hwfn->cdev->num_ports_in_engines = 1;
+ p_hwfn->cdev->num_ports_in_engine = 1;
} else if (port_mode <= 5) {
- p_hwfn->cdev->num_ports_in_engines = 2;
+ p_hwfn->cdev->num_ports_in_engine = 2;
} else {
DP_NOTICE(p_hwfn, "PORT MODE: %d not supported\n",
- p_hwfn->cdev->num_ports_in_engines);
+ p_hwfn->cdev->num_ports_in_engine);
- /* Default num_ports_in_engines to something */
- p_hwfn->cdev->num_ports_in_engines = 1;
+ /* Default num_ports_in_engine to something */
+ p_hwfn->cdev->num_ports_in_engine = 1;
}
}
@@ -2680,20 +2680,20 @@ static void qed_hw_info_port_num_ah(struct qed_hwfn *p_hwfn,
u32 port;
int i;
- p_hwfn->cdev->num_ports_in_engines = 0;
+ p_hwfn->cdev->num_ports_in_engine = 0;
for (i = 0; i < MAX_NUM_PORTS_K2; i++) {
port = qed_rd(p_hwfn, p_ptt,
CNIG_REG_NIG_PORT0_CONF_K2 + (i * 4));
if (port & 1)
- p_hwfn->cdev->num_ports_in_engines++;
+ p_hwfn->cdev->num_ports_in_engine++;
}
- if (!p_hwfn->cdev->num_ports_in_engines) {
+ if (!p_hwfn->cdev->num_ports_in_engine) {
DP_NOTICE(p_hwfn, "All NIG ports are inactive\n");
/* Default num_ports_in_engine to something */
- p_hwfn->cdev->num_ports_in_engines = 1;
+ p_hwfn->cdev->num_ports_in_engine = 1;
}
}
@@ -4067,7 +4067,7 @@ static int qed_device_num_ports(struct qed_dev *cdev)
if (cdev->num_hwfns > 1)
return 1;
- return cdev->num_ports_in_engines * qed_device_num_engines(cdev);
+ return cdev->num_ports_in_engine * qed_device_num_engines(cdev);
}
int qed_device_get_port_id(struct qed_dev *cdev)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.h b/drivers/net/ethernet/qlogic/qed/qed_mcp.h
index 2b09b85..3e5bffe 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.h
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.h
@@ -482,7 +482,7 @@ int qed_mcp_bist_nvm_test_get_image_att(struct qed_hwfn *p_hwfn,
#define MCP_PF_ID(p_hwfn) MCP_PF_ID_BY_REL(p_hwfn, (p_hwfn)->rel_pf_id)
#define MFW_PORT(_p_hwfn) ((_p_hwfn)->abs_pf_id % \
- ((_p_hwfn)->cdev->num_ports_in_engines * \
+ ((_p_hwfn)->cdev->num_ports_in_engine * \
qed_device_num_engines((_p_hwfn)->cdev)))
struct qed_mcp_info {
diff --git a/drivers/net/ethernet/qlogic/qed/qed_ptp.c b/drivers/net/ethernet/qlogic/qed/qed_ptp.c
index 434a164..5a90d69 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_ptp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_ptp.c
@@ -80,7 +80,7 @@ static int qed_ptp_res_lock(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
/* MFW doesn't support resource locking, first PF on the port
* has lock ownership.
*/
- if (p_hwfn->abs_pf_id < p_hwfn->cdev->num_ports_in_engines)
+ if (p_hwfn->abs_pf_id < p_hwfn->cdev->num_ports_in_engine)
return 0;
DP_INFO(p_hwfn, "PF doesn't have lock ownership\n");
@@ -108,7 +108,7 @@ static int qed_ptp_res_unlock(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
rc = qed_mcp_resc_unlock(p_hwfn, p_ptt, ¶ms);
if (rc == -EINVAL) {
/* MFW doesn't support locking, first PF has lock ownership */
- if (p_hwfn->abs_pf_id < p_hwfn->cdev->num_ports_in_engines) {
+ if (p_hwfn->abs_pf_id < p_hwfn->cdev->num_ports_in_engine) {
rc = 0;
} else {
DP_INFO(p_hwfn, "PF doesn't have lock ownership\n");
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 06/11] qed: Remove BB_A0 references
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (4 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 05/11] qed: Drop the 's' from num_ports_in_engines Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 07/11] qed: Flush slowpath tasklet on stop Yuval Mintz
` (4 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Yuval Mintz
A0 never went public, so no need to protect against it.
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed.h | 6 ------
drivers/net/ethernet/qlogic/qed/qed_dev.c | 6 ------
2 files changed, 12 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed.h b/drivers/net/ethernet/qlogic/qed/qed.h
index 63c44c6..2eb6031 100644
--- a/drivers/net/ethernet/qlogic/qed/qed.h
+++ b/drivers/net/ethernet/qlogic/qed/qed.h
@@ -598,16 +598,11 @@ struct qed_dev {
enum qed_dev_type type;
/* Translate type/revision combo into the proper conditions */
#define QED_IS_BB(dev) ((dev)->type == QED_DEV_TYPE_BB)
-#define QED_IS_BB_A0(dev) (QED_IS_BB(dev) && \
- CHIP_REV_IS_A0(dev))
#define QED_IS_BB_B0(dev) (QED_IS_BB(dev) && \
CHIP_REV_IS_B0(dev))
#define QED_IS_AH(dev) ((dev)->type == QED_DEV_TYPE_AH)
#define QED_IS_K2(dev) QED_IS_AH(dev)
-#define QED_GET_TYPE(dev) (QED_IS_BB_A0(dev) ? CHIP_BB_A0 : \
- QED_IS_BB_B0(dev) ? CHIP_BB_B0 : CHIP_K2)
-
u16 vendor_id;
u16 device_id;
#define QED_DEV_ID_MASK 0xff00
@@ -621,7 +616,6 @@ struct qed_dev {
u16 chip_rev;
#define CHIP_REV_MASK 0xf
#define CHIP_REV_SHIFT 12
-#define CHIP_REV_IS_A0(_cdev) (!(_cdev)->chip_rev)
#define CHIP_REV_IS_B0(_cdev) ((_cdev)->chip_rev == 1)
u16 chip_metal;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index 51ae907..3262aaa 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -2812,12 +2812,6 @@ static int qed_get_dev_info(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
cdev->chip_num, cdev->chip_rev,
cdev->chip_bond_id, cdev->chip_metal);
- if (QED_IS_BB(cdev) && CHIP_REV_IS_A0(cdev)) {
- DP_NOTICE(cdev->hwfns,
- "The chip type/rev (BB A0) is not supported!\n");
- return -EINVAL;
- }
-
return 0;
}
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 07/11] qed: Flush slowpath tasklet on stop
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (5 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 06/11] qed: Remove BB_A0 references Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 08/11] qed: Enable RoCE parser searching on fp init Yuval Mintz
` (3 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Tomer Tayar, Yuval Mintz
From: Tomer Tayar <Tomer.Tayar@cavium.com>
Today, driver has a synchronization point while closing
the device which synchronizes its slowpath interrupt line.
However, that's insufficient as that ISR would schedule the
slowpath-tasklet - so even after ISR is over it's possible the
handling of the interrupt has not completed.
By doing a disable/enable on the taskelt we guarantee that all
HW events that should no longer be genereated from that point
onward in the flow are truly behind us.
Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed_main.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
index f286daa..3043dcce 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -606,6 +606,18 @@ int qed_slowpath_irq_req(struct qed_hwfn *hwfn)
return rc;
}
+static void qed_slowpath_tasklet_flush(struct qed_hwfn *p_hwfn)
+{
+ /* Calling the disable function will make sure that any
+ * currently-running function is completed. The following call to the
+ * enable function makes this sequence a flush-like operation.
+ */
+ if (p_hwfn->b_sp_dpc_enabled) {
+ tasklet_disable(p_hwfn->sp_dpc);
+ tasklet_enable(p_hwfn->sp_dpc);
+ }
+}
+
void qed_slowpath_irq_sync(struct qed_hwfn *p_hwfn)
{
struct qed_dev *cdev = p_hwfn->cdev;
@@ -617,6 +629,8 @@ void qed_slowpath_irq_sync(struct qed_hwfn *p_hwfn)
synchronize_irq(cdev->int_params.msix_table[id].vector);
else
synchronize_irq(cdev->pdev->irq);
+
+ qed_slowpath_tasklet_flush(p_hwfn);
}
static void qed_slowpath_irq_free(struct qed_dev *cdev)
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 08/11] qed: Enable RoCE parser searching on fp init
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (6 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 07/11] qed: Flush slowpath tasklet on stop Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 09/11] qed: Provide MBI information in dev_info Yuval Mintz
` (2 subsequent siblings)
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Michal Kalderon, Yuval Mintz
From: Michal Kalderon <Michal.Kalderon@cavium.com>
Since we're closing the parser searching for RDMA when stoping the
fastpath, we need to re-enable it when starting the fastpath once again.
Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed_dev.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c
index 3262aaa..072d950 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_dev.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c
@@ -1948,6 +1948,13 @@ int qed_hw_start_fastpath(struct qed_hwfn *p_hwfn)
if (!p_ptt)
return -EAGAIN;
+ /* If roce info is allocated it means roce is initialized and should
+ * be enabled in searcher.
+ */
+ if (p_hwfn->p_rdma_info &&
+ p_hwfn->b_rdma_enabled_in_prs)
+ qed_wr(p_hwfn, p_ptt, p_hwfn->rdma_prs_search_reg, 0x1);
+
/* Re-open incoming traffic */
qed_wr(p_hwfn, p_ptt, NIG_REG_RX_LLH_BRB_GATE_DNTFWD_PERPF, 0x0);
qed_ptt_release(p_hwfn, p_ptt);
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 09/11] qed: Provide MBI information in dev_info
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (7 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 08/11] qed: Enable RoCE parser searching on fp init Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 10/11] qede: Log probe of PCI device Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 11/11] qed: Replace set_id() api with set_name() Yuval Mintz
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Tomer Tayar, Yuval Mintz
From: Tomer Tayar <Tomer.Tayar@cavium.com>
Pass additional information about package installed on persistent memory
so that protocol drivers would be able to log it.
Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed_hsi.h | 6 ++++++
drivers/net/ethernet/qlogic/qed/qed_main.c | 3 +++
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 30 ++++++++++++++++++++++++++++++
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 12 ++++++++++++
include/linux/qed/qed_if.h | 17 +++++++++++++++++
5 files changed, 68 insertions(+)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_hsi.h b/drivers/net/ethernet/qlogic/qed/qed_hsi.h
index 4755d0b..802c162 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_hsi.h
+++ b/drivers/net/ethernet/qlogic/qed/qed_hsi.h
@@ -11782,6 +11782,12 @@ struct nvm_cfg1_glob {
u32 led_global_settings;
u32 generic_cont1;
u32 mbi_version;
+#define NVM_CFG1_GLOB_MBI_VERSION_0_MASK 0x000000FF
+#define NVM_CFG1_GLOB_MBI_VERSION_0_OFFSET 0
+#define NVM_CFG1_GLOB_MBI_VERSION_1_MASK 0x0000FF00
+#define NVM_CFG1_GLOB_MBI_VERSION_1_OFFSET 8
+#define NVM_CFG1_GLOB_MBI_VERSION_2_MASK 0x00FF0000
+#define NVM_CFG1_GLOB_MBI_VERSION_2_OFFSET 16
u32 mbi_date;
u32 misc_sig;
u32 device_capabilities;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
index 3043dcce..b5313c5 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -281,6 +281,9 @@ int qed_fill_dev_info(struct qed_dev *cdev,
qed_mcp_get_mfw_ver(QED_LEADING_HWFN(cdev), ptt,
&dev_info->mfw_rev, NULL);
+ qed_mcp_get_mbi_ver(QED_LEADING_HWFN(cdev), ptt,
+ &dev_info->mbi_version);
+
qed_mcp_get_flash_size(QED_LEADING_HWFN(cdev), ptt,
&dev_info->flash_size);
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
index b32e819..fc49c75e 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
@@ -1523,6 +1523,36 @@ int qed_mcp_get_mfw_ver(struct qed_hwfn *p_hwfn,
return 0;
}
+int qed_mcp_get_mbi_ver(struct qed_hwfn *p_hwfn,
+ struct qed_ptt *p_ptt, u32 *p_mbi_ver)
+{
+ u32 nvm_cfg_addr, nvm_cfg1_offset, mbi_ver_addr;
+
+ if (IS_VF(p_hwfn->cdev))
+ return -EINVAL;
+
+ /* Read the address of the nvm_cfg */
+ nvm_cfg_addr = qed_rd(p_hwfn, p_ptt, MISC_REG_GEN_PURP_CR0);
+ if (!nvm_cfg_addr) {
+ DP_NOTICE(p_hwfn, "Shared memory not initialized\n");
+ return -EINVAL;
+ }
+
+ /* Read the offset of nvm_cfg1 */
+ nvm_cfg1_offset = qed_rd(p_hwfn, p_ptt, nvm_cfg_addr + 4);
+
+ mbi_ver_addr = MCP_REG_SCRATCH + nvm_cfg1_offset +
+ offsetof(struct nvm_cfg1, glob) +
+ offsetof(struct nvm_cfg1_glob, mbi_version);
+ *p_mbi_ver = qed_rd(p_hwfn, p_ptt,
+ mbi_ver_addr) &
+ (NVM_CFG1_GLOB_MBI_VERSION_0_MASK |
+ NVM_CFG1_GLOB_MBI_VERSION_1_MASK |
+ NVM_CFG1_GLOB_MBI_VERSION_2_MASK);
+
+ return 0;
+}
+
int qed_mcp_get_media_type(struct qed_dev *cdev, u32 *p_media_type)
{
struct qed_hwfn *p_hwfn = &cdev->hwfns[0];
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.h b/drivers/net/ethernet/qlogic/qed/qed_mcp.h
index 3e5bffe..4024759 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.h
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.h
@@ -256,6 +256,18 @@ int qed_mcp_get_mfw_ver(struct qed_hwfn *p_hwfn,
u32 *p_mfw_ver, u32 *p_running_bundle_id);
/**
+ * @brief Get the MBI version value
+ *
+ * @param p_hwfn
+ * @param p_ptt
+ * @param p_mbi_ver - A pointer to a variable to be filled with the MBI version.
+ *
+ * @return int - 0 - operation was successful.
+ */
+int qed_mcp_get_mbi_ver(struct qed_hwfn *p_hwfn,
+ struct qed_ptt *p_ptt, u32 *p_mbi_ver);
+
+/**
* @brief Get media type value of the port.
*
* @param cdev - qed dev pointer
diff --git a/include/linux/qed/qed_if.h b/include/linux/qed/qed_if.h
index ff590cb..b00e675 100644
--- a/include/linux/qed/qed_if.h
+++ b/include/linux/qed/qed_if.h
@@ -328,6 +328,14 @@ struct qed_dev_info {
/* MFW version */
u32 mfw_rev;
+#define QED_MFW_VERSION_0_MASK 0x000000FF
+#define QED_MFW_VERSION_0_OFFSET 0
+#define QED_MFW_VERSION_1_MASK 0x0000FF00
+#define QED_MFW_VERSION_1_OFFSET 8
+#define QED_MFW_VERSION_2_MASK 0x00FF0000
+#define QED_MFW_VERSION_2_OFFSET 16
+#define QED_MFW_VERSION_3_MASK 0xFF000000
+#define QED_MFW_VERSION_3_OFFSET 24
u32 flash_size;
u8 mf_mode;
@@ -337,6 +345,15 @@ struct qed_dev_info {
bool wol_support;
+ /* MBI version */
+ u32 mbi_version;
+#define QED_MBI_VERSION_0_MASK 0x000000FF
+#define QED_MBI_VERSION_0_OFFSET 0
+#define QED_MBI_VERSION_1_MASK 0x0000FF00
+#define QED_MBI_VERSION_1_OFFSET 8
+#define QED_MBI_VERSION_2_MASK 0x00FF0000
+#define QED_MBI_VERSION_2_OFFSET 16
+
enum qed_dev_type dev_type;
/* Output parameters for qede */
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 10/11] qede: Log probe of PCI device
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (8 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 09/11] qed: Provide MBI information in dev_info Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 11/11] qed: Replace set_id() api with set_name() Yuval Mintz
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Yuval Mintz
Replace meaningless logged print ('Ending successfully qede probe')
with a single-liner containing interesting information about probed
device.
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qede/qede_main.c | 40 ++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
index f0871e1..d496ba7 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
@@ -852,6 +852,43 @@ static void qede_update_pf_params(struct qed_dev *cdev)
qed_ops->common->update_pf_params(cdev, &pf_params);
}
+#define QEDE_FW_VER_STR_SIZE 80
+
+static void qede_log_probe(struct qede_dev *edev)
+{
+ struct qed_dev_info *p_dev_info = &edev->dev_info.common;
+ u8 buf[QEDE_FW_VER_STR_SIZE];
+ size_t left_size;
+
+ snprintf(buf, QEDE_FW_VER_STR_SIZE,
+ "Storm FW %d.%d.%d.%d, Management FW %d.%d.%d.%d",
+ p_dev_info->fw_major, p_dev_info->fw_minor, p_dev_info->fw_rev,
+ p_dev_info->fw_eng,
+ (p_dev_info->mfw_rev & QED_MFW_VERSION_3_MASK) >>
+ QED_MFW_VERSION_3_OFFSET,
+ (p_dev_info->mfw_rev & QED_MFW_VERSION_2_MASK) >>
+ QED_MFW_VERSION_2_OFFSET,
+ (p_dev_info->mfw_rev & QED_MFW_VERSION_1_MASK) >>
+ QED_MFW_VERSION_1_OFFSET,
+ (p_dev_info->mfw_rev & QED_MFW_VERSION_0_MASK) >>
+ QED_MFW_VERSION_0_OFFSET);
+
+ left_size = QEDE_FW_VER_STR_SIZE - strlen(buf);
+ if (p_dev_info->mbi_version && left_size)
+ snprintf(buf + strlen(buf), left_size,
+ " [MBI %d.%d.%d]",
+ (p_dev_info->mbi_version & QED_MBI_VERSION_2_MASK) >>
+ QED_MBI_VERSION_2_OFFSET,
+ (p_dev_info->mbi_version & QED_MBI_VERSION_1_MASK) >>
+ QED_MBI_VERSION_1_OFFSET,
+ (p_dev_info->mbi_version & QED_MBI_VERSION_0_MASK) >>
+ QED_MBI_VERSION_0_OFFSET);
+
+ pr_info("qede %02x:%02x.%02x: %s [%s]\n", edev->pdev->bus->number,
+ PCI_SLOT(edev->pdev->devfn), PCI_FUNC(edev->pdev->devfn),
+ buf, edev->ndev->name);
+}
+
enum qede_probe_mode {
QEDE_PROBE_NORMAL,
};
@@ -945,8 +982,7 @@ static int __qede_probe(struct pci_dev *pdev, u32 dp_module, u8 dp_level,
edev->rx_copybreak = QEDE_RX_HDR_SIZE;
- DP_INFO(edev, "Ending successfully qede probe\n");
-
+ qede_log_probe(edev);
return 0;
err4:
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH net-next 11/11] qed: Replace set_id() api with set_name()
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
` (9 preceding siblings ...)
2017-05-22 11:32 ` [PATCH net-next 10/11] qede: Log probe of PCI device Yuval Mintz
@ 2017-05-22 11:32 ` Yuval Mintz
10 siblings, 0 replies; 17+ messages in thread
From: Yuval Mintz @ 2017-05-22 11:32 UTC (permalink / raw)
To: netdev, davem; +Cc: Yuval Mintz, Manish Rangankar
Current API between qed and protocol modules allows passing an
additional private string - but it doesn't get utilized by qed
anywhere.
Clarify the API by removing it and renaming it 'set_name'.
CC: Manish Rangankar <Manish.Rangankar@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed.h | 1 -
drivers/net/ethernet/qlogic/qed/qed_main.c | 9 +++------
drivers/net/ethernet/qlogic/qede/qede_main.c | 4 ++--
drivers/scsi/qedf/qedf_main.c | 2 +-
drivers/scsi/qedi/qedi_main.c | 2 +-
include/linux/qed/qed_if.h | 4 +---
6 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed.h b/drivers/net/ethernet/qlogic/qed/qed.h
index 2eb6031..e0becec 100644
--- a/drivers/net/ethernet/qlogic/qed/qed.h
+++ b/drivers/net/ethernet/qlogic/qed/qed.h
@@ -638,7 +638,6 @@ struct qed_dev {
int pcie_width;
int pcie_speed;
- u8 ver_str[VER_SIZE];
/* Add MF related configuration */
u8 mcp_rev;
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
index b5313c5..c5bb80b 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -338,6 +338,7 @@ static struct qed_dev *qed_probe(struct pci_dev *pdev,
if (!cdev)
goto err0;
+ cdev->drv_type = DRV_ID_DRV_TYPE_LINUX;
cdev->protocol = params->protocol;
if (params->is_vf)
@@ -1128,17 +1129,13 @@ static int qed_slowpath_stop(struct qed_dev *cdev)
return 0;
}
-static void qed_set_id(struct qed_dev *cdev, char name[NAME_SIZE],
- char ver_str[VER_SIZE])
+static void qed_set_name(struct qed_dev *cdev, char name[NAME_SIZE])
{
int i;
memcpy(cdev->name, name, NAME_SIZE);
for_each_hwfn(cdev, i)
snprintf(cdev->hwfns[i].name, NAME_SIZE, "%s-%d", name, i);
-
- memcpy(cdev->ver_str, ver_str, VER_SIZE);
- cdev->drv_type = DRV_ID_DRV_TYPE_LINUX;
}
static u32 qed_sb_init(struct qed_dev *cdev,
@@ -1692,7 +1689,7 @@ static int qed_update_mtu(struct qed_dev *cdev, u16 mtu)
.probe = &qed_probe,
.remove = &qed_remove,
.set_power_state = &qed_set_power_state,
- .set_id = &qed_set_id,
+ .set_name = &qed_set_name,
.update_pf_params = &qed_update_pf_params,
.slowpath_start = &qed_slowpath_start,
.slowpath_stop = &qed_slowpath_stop,
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
index d496ba7..00c7062 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
@@ -259,7 +259,7 @@ static int qede_netdev_event(struct notifier_block *this, unsigned long event,
/* Notify qed of the name change */
if (!edev->ops || !edev->ops->common)
goto done;
- edev->ops->common->set_id(edev->cdev, edev->ndev->name, "qede");
+ edev->ops->common->set_name(edev->cdev, edev->ndev->name);
break;
case NETDEV_CHANGEADDR:
edev = netdev_priv(ndev);
@@ -967,7 +967,7 @@ static int __qede_probe(struct pci_dev *pdev, u32 dp_module, u8 dp_level,
goto err4;
}
- edev->ops->common->set_id(cdev, edev->ndev->name, DRV_MODULE_VERSION);
+ edev->ops->common->set_name(cdev, edev->ndev->name);
/* PTP not supported on VFs */
if (!is_vf)
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
index cceddd9..afbb06d 100644
--- a/drivers/scsi/qedf/qedf_main.c
+++ b/drivers/scsi/qedf/qedf_main.c
@@ -2954,7 +2954,7 @@ static int __qedf_probe(struct pci_dev *pdev, int mode)
"WWPN=%016llx.\n", qedf->wwnn, qedf->wwpn);
sprintf(host_buf, "host_%d", host->host_no);
- qed_ops->common->set_id(qedf->cdev, host_buf, QEDF_VERSION);
+ qed_ops->common->set_name(qedf->cdev, host_buf);
/* Set xid max values */
diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
index 92775a8..073b305 100644
--- a/drivers/scsi/qedi/qedi_main.c
+++ b/drivers/scsi/qedi/qedi_main.c
@@ -1843,7 +1843,7 @@ static int __qedi_probe(struct pci_dev *pdev, int mode)
qedi->mac);
sprintf(host_buf, "host_%d", qedi->shost->host_no);
- qedi_ops->common->set_id(qedi->cdev, host_buf, QEDI_MODULE_VERSION);
+ qedi_ops->common->set_name(qedi->cdev, host_buf);
qedi_ops->register_ops(qedi->cdev, &qedi_cb_ops, qedi);
diff --git a/include/linux/qed/qed_if.h b/include/linux/qed/qed_if.h
index b00e675..73c46d6 100644
--- a/include/linux/qed/qed_if.h
+++ b/include/linux/qed/qed_if.h
@@ -520,9 +520,7 @@ struct qed_common_ops {
int (*set_power_state)(struct qed_dev *cdev,
pci_power_t state);
- void (*set_id)(struct qed_dev *cdev,
- char name[],
- char ver_str[]);
+ void (*set_name) (struct qed_dev *cdev, char name[]);
/* Client drivers need to make this call before slowpath_start.
* PF params required for the call before slowpath_start is
--
1.9.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH net-next 01/11] qede: Fix sparse warnings
2017-05-22 11:32 ` [PATCH net-next 01/11] qede: Fix sparse warnings Yuval Mintz
@ 2017-05-22 16:38 ` David Miller
2017-05-22 16:48 ` Mintz, Yuval
0 siblings, 1 reply; 17+ messages in thread
From: David Miller @ 2017-05-22 16:38 UTC (permalink / raw)
To: Yuval.Mintz; +Cc: netdev, Manish.Chopra
From: Yuval Mintz <Yuval.Mintz@cavium.com>
Date: Mon, 22 May 2017 14:32:01 +0300
> From: Manish Chopra <Manish.Chopra@cavium.com>
>
> Signed-off-by: Manish Chopra <Manish.Chopra@cavium.com>
> Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
> ---
> drivers/net/ethernet/qlogic/qede/qede_dcbnl.c | 1 -
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 10 ++++++----
> drivers/net/ethernet/qlogic/qede/qede_fp.c | 25 ++++++++++++++-----------
> drivers/net/ethernet/qlogic/qede/qede_roce.c | 4 ++--
> 4 files changed, 22 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
> index a9e7379..6e7747b 100644
> --- a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
> +++ b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
> @@ -313,7 +313,6 @@ static int qede_dcbnl_ieee_peer_getets(struct net_device *netdev,
> .ieee_setets = qede_dcbnl_ieee_setets,
> .ieee_getapp = qede_dcbnl_ieee_getapp,
> .ieee_setapp = qede_dcbnl_ieee_setapp,
> - .getdcbx = qede_dcbnl_getdcbx,
> .ieee_peer_getpfc = qede_dcbnl_ieee_peer_getpfc,
> .ieee_peer_getets = qede_dcbnl_ieee_peer_getets,
> .getstate = qede_dcbnl_getstate,
Please.
This is exactly the problem when such a terse commit message, or lack
of any message at all as is the case here, occurs.
I have no idea what removing this method assignment has to do with
fixing sparse warnings.
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH net-next 01/11] qede: Fix sparse warnings
2017-05-22 16:38 ` David Miller
@ 2017-05-22 16:48 ` Mintz, Yuval
2017-05-22 16:54 ` David Miller
0 siblings, 1 reply; 17+ messages in thread
From: Mintz, Yuval @ 2017-05-22 16:48 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Chopra, Manish
> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Monday, May 22, 2017 7:38 PM
> To: Mintz, Yuval <Yuval.Mintz@cavium.com>
> Cc: netdev@vger.kernel.org; Chopra, Manish <Manish.Chopra@cavium.com>
> Subject: Re: [PATCH net-next 01/11] qede: Fix sparse warnings
>
> From: Yuval Mintz <Yuval.Mintz@cavium.com>
> Date: Mon, 22 May 2017 14:32:01 +0300
>
> > From: Manish Chopra <Manish.Chopra@cavium.com>
> >
> > Signed-off-by: Manish Chopra <Manish.Chopra@cavium.com>
> > Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
> > ---
> > drivers/net/ethernet/qlogic/qede/qede_dcbnl.c | 1 -
> > drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 10 ++++++----
> > drivers/net/ethernet/qlogic/qede/qede_fp.c | 25 ++++++++++++++-------
> ----
> > drivers/net/ethernet/qlogic/qede/qede_roce.c | 4 ++--
> > 4 files changed, 22 insertions(+), 18 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
> > b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
> > index a9e7379..6e7747b 100644
> > --- a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
> > +++ b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
> > @@ -313,7 +313,6 @@ static int qede_dcbnl_ieee_peer_getets(struct
> net_device *netdev,
> > .ieee_setets = qede_dcbnl_ieee_setets,
> > .ieee_getapp = qede_dcbnl_ieee_getapp,
> > .ieee_setapp = qede_dcbnl_ieee_setapp,
> > - .getdcbx = qede_dcbnl_getdcbx,
> > .ieee_peer_getpfc = qede_dcbnl_ieee_peer_getpfc,
> > .ieee_peer_getets = qede_dcbnl_ieee_peer_getets,
> > .getstate = qede_dcbnl_getstate,
>
> Please.
>
> This is exactly the problem when such a terse commit message, or lack of any
> message at all as is the case here, occurs.
>
> I have no idea what removing this method assignment has to do with fixing
> sparse warnings.
It's currently defined twice in the qede_dcbnl_ops struct -
.ieee_setapp = qede_dcbnl_ieee_setapp,
.getdcbx = qede_dcbnl_getdcbx,
.ieee_peer_getpfc = qede_dcbnl_ieee_peer_getpfc,
...
.getapp = qede_dcbnl_getapp,
.getdcbx = qede_dcbnl_getdcbx,
.setpgtccfgtx = qede_dcbnl_setpgtccfgtx,
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH net-next 01/11] qede: Fix sparse warnings
2017-05-22 16:48 ` Mintz, Yuval
@ 2017-05-22 16:54 ` David Miller
2017-05-22 17:44 ` Mintz, Yuval
0 siblings, 1 reply; 17+ messages in thread
From: David Miller @ 2017-05-22 16:54 UTC (permalink / raw)
To: Yuval.Mintz; +Cc: netdev, Manish.Chopra
From: "Mintz, Yuval" <Yuval.Mintz@cavium.com>
Date: Mon, 22 May 2017 16:48:25 +0000
>
>
>> -----Original Message-----
>> From: David Miller [mailto:davem@davemloft.net]
>> Sent: Monday, May 22, 2017 7:38 PM
>> To: Mintz, Yuval <Yuval.Mintz@cavium.com>
>> Cc: netdev@vger.kernel.org; Chopra, Manish <Manish.Chopra@cavium.com>
>> Subject: Re: [PATCH net-next 01/11] qede: Fix sparse warnings
>>
>> From: Yuval Mintz <Yuval.Mintz@cavium.com>
>> Date: Mon, 22 May 2017 14:32:01 +0300
>>
>> > From: Manish Chopra <Manish.Chopra@cavium.com>
>> >
>> > Signed-off-by: Manish Chopra <Manish.Chopra@cavium.com>
>> > Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
>> > ---
>> > drivers/net/ethernet/qlogic/qede/qede_dcbnl.c | 1 -
>> > drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 10 ++++++----
>> > drivers/net/ethernet/qlogic/qede/qede_fp.c | 25 ++++++++++++++-------
>> ----
>> > drivers/net/ethernet/qlogic/qede/qede_roce.c | 4 ++--
>> > 4 files changed, 22 insertions(+), 18 deletions(-)
>> >
>> > diff --git a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
>> > b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
>> > index a9e7379..6e7747b 100644
>> > --- a/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
>> > +++ b/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
>> > @@ -313,7 +313,6 @@ static int qede_dcbnl_ieee_peer_getets(struct
>> net_device *netdev,
>> > .ieee_setets = qede_dcbnl_ieee_setets,
>> > .ieee_getapp = qede_dcbnl_ieee_getapp,
>> > .ieee_setapp = qede_dcbnl_ieee_setapp,
>> > - .getdcbx = qede_dcbnl_getdcbx,
>> > .ieee_peer_getpfc = qede_dcbnl_ieee_peer_getpfc,
>> > .ieee_peer_getets = qede_dcbnl_ieee_peer_getets,
>> > .getstate = qede_dcbnl_getstate,
>>
>> Please.
>>
>> This is exactly the problem when such a terse commit message, or lack of any
>> message at all as is the case here, occurs.
>>
>> I have no idea what removing this method assignment has to do with fixing
>> sparse warnings.
>
> It's currently defined twice in the qede_dcbnl_ops struct -
Ok, so what's important is that you don't just post a patch with no
commit message, just saying "sparse warning fixes."
At a minimum, if you're too lazy to explain what exactly each thing
is fixing, provide the sparse warnings you are eliminating in the
commit message.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH net-next 01/11] qede: Fix sparse warnings
2017-05-22 16:54 ` David Miller
@ 2017-05-22 17:44 ` Mintz, Yuval
2017-05-22 18:29 ` David Miller
0 siblings, 1 reply; 17+ messages in thread
From: Mintz, Yuval @ 2017-05-22 17:44 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Chopra, Manish
> >> Please.
> >>
> >> This is exactly the problem when such a terse commit message, or lack of any
> >> message at all as is the case here, occurs.
> >>
> >> I have no idea what removing this method assignment has to do with fixing
> >> sparse warnings.
> >
> > It's currently defined twice in the qede_dcbnl_ops struct -
> >Ok, so what's important is that you don't just post a patch with no
> commit message, just saying "sparse warning fixes."
> At a minimum, if you're too lazy to explain what exactly each thing
> is fixing, provide the sparse warnings you are eliminating in the
> commit message.
Well, this time it was intentional lazines; Thought it would have been
wasted reading. But sure, here it is:
drivers/net/ethernet/qlogic/qede/qede_fp.c:349:34: warning: invalid assignment: |=
drivers/net/ethernet/qlogic/qede/qede_fp.c:349:34: left side has type restricted __le16
drivers/net/ethernet/qlogic/qede/qede_fp.c:349:34: right side has type int
drivers/net/ethernet/qlogic/qede/qede_fp.c:1516:50: warning: invalid assignment: |=
drivers/net/ethernet/qlogic/qede/qede_fp.c:1516:50: left side has type restricted __le16
drivers/net/ethernet/qlogic/qede/qede_fp.c:1516:50: right side has type int
drivers/net/ethernet/qlogic/qede/qede_fp.c:1525:50: warning: invalid assignment: ^=
drivers/net/ethernet/qlogic/qede/qede_fp.c:1525:50: left side has type restricted __le16
drivers/net/ethernet/qlogic/qede/qede_fp.c:1525:50: right side has type int
drivers/net/ethernet/qlogic/qede/qede_fp.c:1590:42: warning: invalid assignment: |=
drivers/net/ethernet/qlogic/qede/qede_fp.c:1590:42: left side has type restricted __le16
drivers/net/ethernet/qlogic/qede/qede_fp.c:1590:42: right side has type unsigned int
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1315:34: warning: invalid assignment: |=
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1315:34: left side has type restricted __le16
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1315:34: right side has type int
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1330:13: warning: incorrect type in assignment (different base types)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1330:13: expected int [signed] [assigned] val
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1330:13: got restricted __le16 [usertype] <noident>
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1331:33: warning: incorrect type in assignment (different base types)
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1331:33: expected restricted __le16 [usertype] bd_prod
drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1331:33: got int [signed] [assigned] val
drivers/net/ethernet/qlogic/qede/qede_roce.c:224:29: warning: symbol 'qede_roce_get_free_event_node' was not declared. Should it be static?
Do you want us to re-spin the series with the updated commit message?
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH net-next 01/11] qede: Fix sparse warnings
2017-05-22 17:44 ` Mintz, Yuval
@ 2017-05-22 18:29 ` David Miller
0 siblings, 0 replies; 17+ messages in thread
From: David Miller @ 2017-05-22 18:29 UTC (permalink / raw)
To: Yuval.Mintz; +Cc: netdev, Manish.Chopra
From: "Mintz, Yuval" <Yuval.Mintz@cavium.com>
Date: Mon, 22 May 2017 17:44:12 +0000
>> >> Please.
>> >>
>> >> This is exactly the problem when such a terse commit message, or lack of any
>> >> message at all as is the case here, occurs.
>> >>
>> >> I have no idea what removing this method assignment has to do with fixing
>> >> sparse warnings.
>> >
>> > It's currently defined twice in the qede_dcbnl_ops struct -
>
>> >Ok, so what's important is that you don't just post a patch with no
>> commit message, just saying "sparse warning fixes."
>
>> At a minimum, if you're too lazy to explain what exactly each thing
>> is fixing, provide the sparse warnings you are eliminating in the
>> commit message.
>
> Well, this time it was intentional lazines; Thought it would have been
> wasted reading. But sure, here it is:
>
> drivers/net/ethernet/qlogic/qede/qede_fp.c:349:34: warning: invalid assignment: |=
> drivers/net/ethernet/qlogic/qede/qede_fp.c:349:34: left side has type restricted __le16
> drivers/net/ethernet/qlogic/qede/qede_fp.c:349:34: right side has type int
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1516:50: warning: invalid assignment: |=
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1516:50: left side has type restricted __le16
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1516:50: right side has type int
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1525:50: warning: invalid assignment: ^=
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1525:50: left side has type restricted __le16
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1525:50: right side has type int
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1590:42: warning: invalid assignment: |=
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1590:42: left side has type restricted __le16
> drivers/net/ethernet/qlogic/qede/qede_fp.c:1590:42: right side has type unsigned int
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1315:34: warning: invalid assignment: |=
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1315:34: left side has type restricted __le16
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1315:34: right side has type int
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1330:13: warning: incorrect type in assignment (different base types)
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1330:13: expected int [signed] [assigned] val
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1330:13: got restricted __le16 [usertype] <noident>
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1331:33: warning: incorrect type in assignment (different base types)
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1331:33: expected restricted __le16 [usertype] bd_prod
> drivers/net/ethernet/qlogic/qede/qede_ethtool.c:1331:33: got int [signed] [assigned] val
> drivers/net/ethernet/qlogic/qede/qede_roce.c:224:29: warning: symbol 'qede_roce_get_free_event_node' was not declared. Should it be static?
>
> Do you want us to re-spin the series with the updated commit message?
Where in that log above does it say that the method is defined twice
in qede_dcbnl_ops?
I hate to say this, but this is why I get frustrated with such across
the board cleanups with empty commit messages.
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2017-05-22 18:29 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-22 11:32 [PATCH net-next 00/11] qed/qede: Mostly-cleanup series Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 01/11] qede: Fix sparse warnings Yuval Mintz
2017-05-22 16:38 ` David Miller
2017-05-22 16:48 ` Mintz, Yuval
2017-05-22 16:54 ` David Miller
2017-05-22 17:44 ` Mintz, Yuval
2017-05-22 18:29 ` David Miller
2017-05-22 11:32 ` [PATCH net-next 02/11] qed: Align DP_ERR style with other DP macros Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 03/11] qed: !main_ptt for tunnel configuration Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 04/11] qed: Log incorrectly installed board Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 05/11] qed: Drop the 's' from num_ports_in_engines Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 06/11] qed: Remove BB_A0 references Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 07/11] qed: Flush slowpath tasklet on stop Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 08/11] qed: Enable RoCE parser searching on fp init Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 09/11] qed: Provide MBI information in dev_info Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 10/11] qede: Log probe of PCI device Yuval Mintz
2017-05-22 11:32 ` [PATCH net-next 11/11] qed: Replace set_id() api with set_name() Yuval Mintz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.