All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling.
@ 2013-08-15 12:27 Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 1/5] qlcnic: Reinitialize mailbox data structures after firmware reset Sucheta Chakraborty
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Sucheta Chakraborty @ 2013-08-15 12:27 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev

All the bug fixes in this series are dependent on net-next patches which were
submitted previously by commit (qlcnic: Interrupt based driver firmware mailbox
mechanism, commit id - e5c4e6c696aea58fbea5758e8b2841d2b0309cf7).

Please apply this series to net-next.

Thanks,
Sucheta.

Manish Chopra (4):
  qlcnic: Reinitialize mailbox data structures after firmware reset
  qlcnic: Flush mailbox command list when mailbox is not available
  qlcnic: Fix driver initialization for 83xx adapters
  qlcnic: Dump mailbox command data when a command times out

Sucheta Chakraborty (1):
  qlcnic: Update version to 5.2.46.

 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h              |  4 ++--
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c      |  8 +++++++-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c    | 14 +++++++-------
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c |  2 +-
 4 files changed, 17 insertions(+), 11 deletions(-)

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

* [PATCH net-next 1/5] qlcnic: Reinitialize mailbox data structures after firmware reset
  2013-08-15 12:27 [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling Sucheta Chakraborty
@ 2013-08-15 12:27 ` Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 2/5] qlcnic: Flush mailbox command list when mailbox is not available Sucheta Chakraborty
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Sucheta Chakraborty @ 2013-08-15 12:27 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev, Manish Chopra

From: Manish Chopra <manish.chopra@qlogic.com>

o After firmware reset VFs were failing to come up because of not
  reinitializing mailbox data structures. Reinitialize them so that
  VFs can come up after firmware reset.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
index 046286a..dc24979 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
@@ -1556,7 +1556,7 @@ static int qlcnic_sriov_vf_reinit_driver(struct qlcnic_adapter *adapter)
 {
 	int err;
 
-	set_bit(QLC_83XX_MBX_READY, &adapter->ahw->idc.status);
+	qlcnic_83xx_reinit_mbx_work(adapter->ahw->mailbox);
 	qlcnic_83xx_enable_mbx_interrupt(adapter);
 
 	err = qlcnic_sriov_cfg_bc_intr(adapter, 1);
-- 
1.8.1.4

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

* [PATCH net-next 2/5] qlcnic: Flush mailbox command list when mailbox is not available
  2013-08-15 12:27 [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 1/5] qlcnic: Reinitialize mailbox data structures after firmware reset Sucheta Chakraborty
@ 2013-08-15 12:27 ` Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 3/5] qlcnic: Fix driver initialization for 83xx adapters Sucheta Chakraborty
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Sucheta Chakraborty @ 2013-08-15 12:27 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev, Manish Chopra

From: Manish Chopra <manish.chopra@qlogic.com>

o Driver was hitting a panic at the time of adapter reset due to invalid command
  access from the list which had been already freed by the queuing thread.
  Flush all the pending commands from the list before proceeding with adapter reset

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 55a5977..43b51a0 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -3515,6 +3515,8 @@ static inline void qlcnic_83xx_flush_mbx_queue(struct qlcnic_adapter *adapter)
 
 	while (!list_empty(head)) {
 		cmd = list_entry(head->next, struct qlcnic_cmd_args, list);
+		dev_info(&adapter->pdev->dev, "%s: Mailbox command 0x%x\n",
+			 __func__, cmd->cmd_op);
 		list_del(&cmd->list);
 		mbx->num_cmds--;
 		qlcnic_83xx_notify_cmd_completion(adapter, cmd);
@@ -3534,6 +3536,7 @@ static inline int qlcnic_83xx_check_mbx_status(struct qlcnic_adapter *adapter)
 
 	host_mbx_ctrl = QLCRDX(ahw, QLCNIC_HOST_MBX_CTRL);
 	if (host_mbx_ctrl) {
+		clear_bit(QLC_83XX_MBX_READY, &mbx->status);
 		ahw->idc.collect_dump = 1;
 		return -EIO;
 	}
@@ -3704,8 +3707,10 @@ static void qlcnic_83xx_mailbox_worker(struct work_struct *work)
 	ahw = adapter->ahw;
 
 	while (true) {
-		if (qlcnic_83xx_check_mbx_status(adapter))
+		if (qlcnic_83xx_check_mbx_status(adapter)) {
+			qlcnic_83xx_flush_mbx_queue(adapter);
 			return;
+		}
 
 		atomic_set(rsp_status, QLC_83XX_MBX_RESPONSE_WAIT);
 
-- 
1.8.1.4

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

* [PATCH net-next 3/5] qlcnic: Fix driver initialization for 83xx adapters
  2013-08-15 12:27 [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 1/5] qlcnic: Reinitialize mailbox data structures after firmware reset Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 2/5] qlcnic: Flush mailbox command list when mailbox is not available Sucheta Chakraborty
@ 2013-08-15 12:27 ` Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 4/5] qlcnic: Dump mailbox command data when a command times out Sucheta Chakraborty
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Sucheta Chakraborty @ 2013-08-15 12:27 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev, Manish Chopra

From: Manish Chopra <manish.chopra@qlogic.com>

o Load firmware from file before setting up interrupts.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
index cc1e32a..17c26a1 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
@@ -2169,6 +2169,13 @@ int qlcnic_83xx_init(struct qlcnic_adapter *adapter, int pci_using_dac)
 	if (err)
 		goto detach_mbx;
 
+	if (!qlcnic_83xx_read_flash_descriptor_table(adapter))
+		qlcnic_83xx_read_flash_mfg_id(adapter);
+
+	err = qlcnic_83xx_idc_init(adapter);
+	if (err)
+		goto detach_mbx;
+
 	err = qlcnic_setup_intr(adapter, 0);
 	if (err) {
 		dev_err(&adapter->pdev->dev, "Failed to setup interrupt\n");
@@ -2186,13 +2193,6 @@ int qlcnic_83xx_init(struct qlcnic_adapter *adapter, int pci_using_dac)
 	/* register for NIC IDC AEN Events */
 	qlcnic_83xx_register_nic_idc_func(adapter, 1);
 
-	if (!qlcnic_83xx_read_flash_descriptor_table(adapter))
-		qlcnic_83xx_read_flash_mfg_id(adapter);
-
-	err = qlcnic_83xx_idc_init(adapter);
-	if (err)
-		goto disable_mbx_intr;
-
 	/* Configure default, SR-IOV or Virtual NIC mode of operation */
 	err = qlcnic_83xx_configure_opmode(adapter);
 	if (err)
-- 
1.8.1.4

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

* [PATCH net-next 4/5] qlcnic: Dump mailbox command data when a command times out
  2013-08-15 12:27 [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling Sucheta Chakraborty
                   ` (2 preceding siblings ...)
  2013-08-15 12:27 ` [PATCH net-next 3/5] qlcnic: Fix driver initialization for 83xx adapters Sucheta Chakraborty
@ 2013-08-15 12:27 ` Sucheta Chakraborty
  2013-08-15 12:27 ` [PATCH net-next 5/5] qlcnic: Update version to 5.2.46 Sucheta Chakraborty
  2013-08-15 21:46 ` [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: Sucheta Chakraborty @ 2013-08-15 12:27 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev, Manish Chopra

From: Manish Chopra <manish.chopra@qlogic.com>

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 43b51a0..78ca755 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -3736,6 +3736,7 @@ static void qlcnic_83xx_mailbox_worker(struct work_struct *work)
 				__func__, cmd->cmd_op, cmd->type, ahw->pci_func,
 				ahw->op_mode);
 			clear_bit(QLC_83XX_MBX_READY, &mbx->status);
+			qlcnic_dump_mbx(adapter, cmd);
 			qlcnic_83xx_idc_request_reset(adapter,
 						      QLCNIC_FORCE_FW_DUMP_KEY);
 			cmd->rsp_opcode = QLCNIC_RCODE_TIMEOUT;
-- 
1.8.1.4

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

* [PATCH net-next 5/5] qlcnic: Update version to 5.2.46.
  2013-08-15 12:27 [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling Sucheta Chakraborty
                   ` (3 preceding siblings ...)
  2013-08-15 12:27 ` [PATCH net-next 4/5] qlcnic: Dump mailbox command data when a command times out Sucheta Chakraborty
@ 2013-08-15 12:27 ` Sucheta Chakraborty
  2013-08-15 21:46 ` [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: Sucheta Chakraborty @ 2013-08-15 12:27 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev

Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index 3935155..7387354 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
@@ -37,8 +37,8 @@
 
 #define _QLCNIC_LINUX_MAJOR 5
 #define _QLCNIC_LINUX_MINOR 2
-#define _QLCNIC_LINUX_SUBVERSION 45
-#define QLCNIC_LINUX_VERSIONID  "5.2.45"
+#define _QLCNIC_LINUX_SUBVERSION 46
+#define QLCNIC_LINUX_VERSIONID  "5.2.46"
 #define QLCNIC_DRV_IDC_VER  0x01
 #define QLCNIC_DRIVER_VERSION  ((_QLCNIC_LINUX_MAJOR << 16) |\
 		 (_QLCNIC_LINUX_MINOR << 8) | (_QLCNIC_LINUX_SUBVERSION))
-- 
1.8.1.4

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

* Re: [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling.
  2013-08-15 12:27 [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling Sucheta Chakraborty
                   ` (4 preceding siblings ...)
  2013-08-15 12:27 ` [PATCH net-next 5/5] qlcnic: Update version to 5.2.46 Sucheta Chakraborty
@ 2013-08-15 21:46 ` David Miller
  5 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2013-08-15 21:46 UTC (permalink / raw)
  To: sucheta.chakraborty; +Cc: netdev, Dept-HSGLinuxNICDev

From: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Date: Thu, 15 Aug 2013 08:27:24 -0400

> All the bug fixes in this series are dependent on net-next patches which were
> submitted previously by commit (qlcnic: Interrupt based driver firmware mailbox
> mechanism, commit id - e5c4e6c696aea58fbea5758e8b2841d2b0309cf7).
> 
> Please apply this series to net-next.

Series applied, thanks.

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

end of thread, other threads:[~2013-08-15 21:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-15 12:27 [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling Sucheta Chakraborty
2013-08-15 12:27 ` [PATCH net-next 1/5] qlcnic: Reinitialize mailbox data structures after firmware reset Sucheta Chakraborty
2013-08-15 12:27 ` [PATCH net-next 2/5] qlcnic: Flush mailbox command list when mailbox is not available Sucheta Chakraborty
2013-08-15 12:27 ` [PATCH net-next 3/5] qlcnic: Fix driver initialization for 83xx adapters Sucheta Chakraborty
2013-08-15 12:27 ` [PATCH net-next 4/5] qlcnic: Dump mailbox command data when a command times out Sucheta Chakraborty
2013-08-15 12:27 ` [PATCH net-next 5/5] qlcnic: Update version to 5.2.46 Sucheta Chakraborty
2013-08-15 21:46 ` [PATCH net-next 0/5] qlcnic: Fixes for Mailbox command handling David Miller

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.