From: Ron Mercer <hidden> Date: 2011-06-23 18:11:34
From: Jitendra Kalsaria <redacted>
When we are in a recover process from a chip fatal error,
driver should skip over execution of mailbox commands during
resetting chip.
Signed-off-by: Jitendra Kalsaria <redacted>
Signed-off-by: Ron Mercer <redacted>
---
drivers/net/qlge/qlge.h | 1 +
drivers/net/qlge/qlge_main.c | 20 +++++++++++++++-----
2 files changed, 16 insertions(+), 5 deletions(-)
@@ -1996,6 +1996,7 @@ enum {QL_LB_LINK_UP=10,QL_FRC_COREDUMP=11,QL_EEH_FATAL=12,+QL_ASIC_RECOVERY=14,/* We are in ascic recovery. */};/* link_status bit definitions */
@@ -2152,6 +2152,10 @@ void ql_queue_asic_error(struct ql_adapter *qdev)*thread*/clear_bit(QL_ADAPTER_UP,&qdev->flags);+/* Set asic recovery bit to indicate reset process that we are+*infatalerrorrecoveryprocessratherthannormalclose+*/+set_bit(QL_ASIC_RECOVERY,&qdev->flags);queue_delayed_work(qdev->workqueue,&qdev->asic_reset_work,0);}
@@ -3818,11 +3822,17 @@ static int ql_adapter_reset(struct ql_adapter *qdev)end_jiffies=jiffies+max((unsignedlong)1,usecs_to_jiffies(30));-/* Stop management traffic. */-ql_mb_set_mgmnt_traffic_ctl(qdev,MB_SET_MPI_TFK_STOP);+/* Check if bit is set then skip the mailbox command and+*clearthebit,elseweareinnormalresetprocess.+*/+if(!test_bit(QL_ASIC_RECOVERY,&qdev->flags)){+/* Stop management traffic. */+ql_mb_set_mgmnt_traffic_ctl(qdev,MB_SET_MPI_TFK_STOP);-/* Wait for the NIC and MGMNT FIFOs to empty. */-ql_wait_fifo_empty(qdev);+/* Wait for the NIC and MGMNT FIFOs to empty. */+ql_wait_fifo_empty(qdev);+}else+clear_bit(QL_ASIC_RECOVERY,&qdev->flags);ql_write32(qdev,RST_FO,(RST_FO_FR<<16)|RST_FO_FR);
From: Ron Mercer <hidden> Date: 2011-06-23 18:11:22
From: Jitendra Kalsaria <redacted>
Precedence of the printk should be at higher level so chip
fatal errors are always reported.
Signed-off-by: Jitendra Kalsaria <redacted>
Signed-off-by: Ron Mercer <redacted>
---
drivers/net/qlge/qlge_main.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
From: Ron Mercer <hidden> Date: 2011-06-30 20:18:52
From: Jitendra Kalsaria <redacted>
When we are in a recover process from a chip fatal error,
driver should skip over execution of mailbox commands during
resetting chip.
Signed-off-by: Jitendra Kalsaria <redacted>
Signed-off-by: Ron Mercer <redacted>
---
drivers/net/qlge/qlge.h | 1 +
drivers/net/qlge/qlge_main.c | 20 +++++++++++++++-----
2 files changed, 16 insertions(+), 5 deletions(-)
@@ -1996,6 +1996,7 @@ enum {QL_LB_LINK_UP=10,QL_FRC_COREDUMP=11,QL_EEH_FATAL=12,+QL_ASIC_RECOVERY=14,/* We are in ascic recovery. */};/* link_status bit definitions */
@@ -2152,6 +2152,10 @@ void ql_queue_asic_error(struct ql_adapter *qdev)*thread*/clear_bit(QL_ADAPTER_UP,&qdev->flags);+/* Set asic recovery bit to indicate reset process that we are+*infatalerrorrecoveryprocessratherthannormalclose+*/+set_bit(QL_ASIC_RECOVERY,&qdev->flags);queue_delayed_work(qdev->workqueue,&qdev->asic_reset_work,0);}
@@ -3818,11 +3822,17 @@ static int ql_adapter_reset(struct ql_adapter *qdev)end_jiffies=jiffies+max((unsignedlong)1,usecs_to_jiffies(30));-/* Stop management traffic. */-ql_mb_set_mgmnt_traffic_ctl(qdev,MB_SET_MPI_TFK_STOP);+/* Check if bit is set then skip the mailbox command and+*clearthebit,elseweareinnormalresetprocess.+*/+if(!test_bit(QL_ASIC_RECOVERY,&qdev->flags)){+/* Stop management traffic. */+ql_mb_set_mgmnt_traffic_ctl(qdev,MB_SET_MPI_TFK_STOP);-/* Wait for the NIC and MGMNT FIFOs to empty. */-ql_wait_fifo_empty(qdev);+/* Wait for the NIC and MGMNT FIFOs to empty. */+ql_wait_fifo_empty(qdev);+}else+clear_bit(QL_ASIC_RECOVERY,&qdev->flags);ql_write32(qdev,RST_FO,(RST_FO_FR<<16)|RST_FO_FR);
From: David Miller <davem@davemloft.net> Date: 2011-07-02 00:36:31
From: Ron Mercer <redacted>
Date: Thu, 30 Jun 2011 13:02:05 -0700
From: Jitendra Kalsaria <redacted>
When we are in a recover process from a chip fatal error,
driver should skip over execution of mailbox commands during
resetting chip.
Signed-off-by: Jitendra Kalsaria <redacted>
Signed-off-by: Ron Mercer <redacted>
From: Ron Mercer <hidden> Date: 2011-06-30 20:19:50
From: Jitendra Kalsaria <redacted>
Precedence of the printk should be at higher level so chip fatal
errors are always reported.
Signed-off-by: Jitendra Kalsaria <redacted>
Signed-off-by: Ron Mercer <redacted>
---
drivers/net/qlge/qlge_main.c | 22 +++++++++-------------
1 files changed, 9 insertions(+), 13 deletions(-)
From: David Miller <davem@davemloft.net> Date: 2011-07-02 00:36:38
From: Ron Mercer <redacted>
Date: Thu, 30 Jun 2011 13:02:06 -0700
From: Jitendra Kalsaria <redacted>
Precedence of the printk should be at higher level so chip fatal
errors are always reported.
Signed-off-by: Jitendra Kalsaria <redacted>
Signed-off-by: Ron Mercer <redacted>