* [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip. @ 2011-06-23 17:52 Ron Mercer 2011-06-23 17:52 ` [net-2.6 PATCH 2/3] qlge:Fix printk priority so chip fatal errors are always reported Ron Mercer 2011-06-23 17:52 ` Ron Mercer 0 siblings, 2 replies; 11+ messages in thread From: Ron Mercer @ 2011-06-23 17:52 UTC (permalink / raw) To: davem; +Cc: netdev, ron.mercer, jitendra.kalsaria, ameen.rahman From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> 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 <jitendra.kalsaria@qlogic.com> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge.h | 1 + drivers/net/qlge/qlge_main.c | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index d328507..b2c8612 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h @@ -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 */ diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index 930ae45..4fbefcf 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c @@ -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 + * in fatal error recovery process rather than normal close + */ + 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((unsigned long)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 + * clear the bit, else we are in normal reset process. + */ + 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); -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [net-2.6 PATCH 2/3] qlge:Fix printk priority so chip fatal errors are always reported. 2011-06-23 17:52 [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip Ron Mercer @ 2011-06-23 17:52 ` Ron Mercer 2011-06-23 18:50 ` Joe Perches 2011-06-23 17:52 ` Ron Mercer 1 sibling, 1 reply; 11+ messages in thread From: Ron Mercer @ 2011-06-23 17:52 UTC (permalink / raw) To: davem; +Cc: netdev, ron.mercer, jitendra.kalsaria, ameen.rahman From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Precedence of the printk should be at higher level so chip fatal errors are always reported. Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge_main.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index 4fbefcf..66274ab 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c @@ -2170,7 +2170,7 @@ static void ql_process_chip_ae_intr(struct ql_adapter *qdev, return; case CAM_LOOKUP_ERR_EVENT: - netif_err(qdev, link, qdev->ndev, + netif_err(qdev, drv, qdev->ndev, "Multiple CAM hits lookup occurred.\n"); netif_err(qdev, drv, qdev->ndev, "This event shouldn't occur.\n"); @@ -2178,13 +2178,13 @@ static void ql_process_chip_ae_intr(struct ql_adapter *qdev, return; case SOFT_ECC_ERROR_EVENT: - netif_err(qdev, rx_err, qdev->ndev, + netif_err(qdev, drv, qdev->ndev, "Soft ECC error detected.\n"); ql_queue_asic_error(qdev); break; case PCI_ERR_ANON_BUF_RD: - netif_err(qdev, rx_err, qdev->ndev, + netif_err(qdev, drv, qdev->ndev, "PCI error occurred when reading anonymous buffers from rx_ring %d.\n", ib_ae_rsp->q_id); ql_queue_asic_error(qdev); @@ -2441,10 +2441,10 @@ static irqreturn_t qlge_isr(int irq, void *dev_id) */ if (var & STS_FE) { ql_queue_asic_error(qdev); - netif_err(qdev, intr, qdev->ndev, + netif_err(qdev, drv, qdev->ndev, "Got fatal error, STS = %x.\n", var); var = ql_read32(qdev, ERR_STS); - netif_err(qdev, intr, qdev->ndev, + netif_err(qdev, drv, qdev->ndev, "Resetting chip. Error Status Register = 0x%x\n", var); return IRQ_HANDLED; } -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [net-2.6 PATCH 2/3] qlge:Fix printk priority so chip fatal errors are always reported. 2011-06-23 17:52 ` [net-2.6 PATCH 2/3] qlge:Fix printk priority so chip fatal errors are always reported Ron Mercer @ 2011-06-23 18:50 ` Joe Perches 2011-06-23 18:43 ` Ron Mercer ` (3 more replies) 0 siblings, 4 replies; 11+ messages in thread From: Joe Perches @ 2011-06-23 18:50 UTC (permalink / raw) To: Ron Mercer; +Cc: davem, netdev, jitendra.kalsaria, ameen.rahman On Thu, 2011-06-23 at 10:52 -0700, Ron Mercer wrote: > From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> > Precedence of the printk should be at higher level so chip > fatal errors are always reported. You probably want to use netdev_err then, not a masked netif_err when it is optionally not reported. > diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c [] > @@ -2170,7 +2170,7 @@ static void ql_process_chip_ae_intr(struct ql_adapter *qdev, > return; > > case CAM_LOOKUP_ERR_EVENT: > - netif_err(qdev, link, qdev->ndev, > + netif_err(qdev, drv, qdev->ndev, > "Multiple CAM hits lookup occurred.\n"); netdev_err(qdev->ndev, "Multiple CAM hits lookup occurred\n"); > @@ -2178,13 +2178,13 @@ static void ql_process_chip_ae_intr(struct ql_adapter *qdev, > return; > > case SOFT_ECC_ERROR_EVENT: > - netif_err(qdev, rx_err, qdev->ndev, > + netif_err(qdev, drv, qdev->ndev, > "Soft ECC error detected.\n"); netdev_err(qdev->ndev, "Soft ECC error detected\n"); etc... ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [net-2.6 PATCH 2/3] qlge:Fix printk priority so chip fatal errors are always reported. 2011-06-23 18:50 ` Joe Perches @ 2011-06-23 18:43 ` Ron Mercer 2011-06-30 20:02 ` [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip Ron Mercer ` (2 subsequent siblings) 3 siblings, 0 replies; 11+ messages in thread From: Ron Mercer @ 2011-06-23 18:43 UTC (permalink / raw) To: Joe Perches; +Cc: David Miller, netdev, Jitendra Kalsaria, Ameen Rahman On Thu, Jun 23, 2011 at 11:50:49AM -0700, Joe Perches wrote: > On Thu, 2011-06-23 at 10:52 -0700, Ron Mercer wrote: > > From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> > > Precedence of the printk should be at higher level so chip > > fatal errors are always reported. > > You probably want to use netdev_err then, not a masked > netif_err when it is optionally not reported. > Thanks. We will respin these after waiting a bit for more comments. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip. 2011-06-23 18:50 ` Joe Perches 2011-06-23 18:43 ` Ron Mercer @ 2011-06-30 20:02 ` Ron Mercer 2011-07-02 0:36 ` David Miller 2011-06-30 20:02 ` [net-2.6 PATCH 2/3] qlge: Fix printk priority so chip fatal errors are always reported Ron Mercer 2011-06-30 20:02 ` [net-2.6 PATCH 3/3] qlge:Version change to v1.00.00.29 Ron Mercer 3 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2011-06-30 20:02 UTC (permalink / raw) To: davem; +Cc: netdev, ron.mercer, jitendra.kalsaria, ameen.rahman From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> 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 <jitendra.kalsaria@qlogic.com> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge.h | 1 + drivers/net/qlge/qlge_main.c | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index d328507..b2c8612 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h @@ -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 */ diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index 930ae45..4fbefcf 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c @@ -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 + * in fatal error recovery process rather than normal close + */ + 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((unsigned long)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 + * clear the bit, else we are in normal reset process. + */ + 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); -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip. 2011-06-30 20:02 ` [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip Ron Mercer @ 2011-07-02 0:36 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2011-07-02 0:36 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, jitendra.kalsaria, ameen.rahman From: Ron Mercer <ron.mercer@qlogic.com> Date: Thu, 30 Jun 2011 13:02:05 -0700 > From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> > > 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 <jitendra.kalsaria@qlogic.com> > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [net-2.6 PATCH 2/3] qlge: Fix printk priority so chip fatal errors are always reported. 2011-06-23 18:50 ` Joe Perches 2011-06-23 18:43 ` Ron Mercer 2011-06-30 20:02 ` [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip Ron Mercer @ 2011-06-30 20:02 ` Ron Mercer 2011-07-02 0:36 ` David Miller 2011-06-30 20:02 ` [net-2.6 PATCH 3/3] qlge:Version change to v1.00.00.29 Ron Mercer 3 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2011-06-30 20:02 UTC (permalink / raw) To: davem; +Cc: netdev, ron.mercer, jitendra.kalsaria, ameen.rahman From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Precedence of the printk should be at higher level so chip fatal errors are always reported. Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge_main.c | 22 +++++++++------------- 1 files changed, 9 insertions(+), 13 deletions(-) diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c index 4fbefcf..6b4ff97 100644 --- a/drivers/net/qlge/qlge_main.c +++ b/drivers/net/qlge/qlge_main.c @@ -2170,23 +2170,20 @@ static void ql_process_chip_ae_intr(struct ql_adapter *qdev, return; case CAM_LOOKUP_ERR_EVENT: - netif_err(qdev, link, qdev->ndev, - "Multiple CAM hits lookup occurred.\n"); - netif_err(qdev, drv, qdev->ndev, - "This event shouldn't occur.\n"); + netdev_err(qdev->ndev, "Multiple CAM hits lookup occurred.\n"); + netdev_err(qdev->ndev, "This event shouldn't occur.\n"); ql_queue_asic_error(qdev); return; case SOFT_ECC_ERROR_EVENT: - netif_err(qdev, rx_err, qdev->ndev, - "Soft ECC error detected.\n"); + netdev_err(qdev->ndev, "Soft ECC error detected.\n"); ql_queue_asic_error(qdev); break; case PCI_ERR_ANON_BUF_RD: - netif_err(qdev, rx_err, qdev->ndev, - "PCI error occurred when reading anonymous buffers from rx_ring %d.\n", - ib_ae_rsp->q_id); + netdev_err(qdev->ndev, "PCI error occurred when reading " + "anonymous buffers from rx_ring %d.\n", + ib_ae_rsp->q_id); ql_queue_asic_error(qdev); break; @@ -2441,11 +2438,10 @@ static irqreturn_t qlge_isr(int irq, void *dev_id) */ if (var & STS_FE) { ql_queue_asic_error(qdev); - netif_err(qdev, intr, qdev->ndev, - "Got fatal error, STS = %x.\n", var); + netdev_err(qdev->ndev, "Got fatal error, STS = %x.\n", var); var = ql_read32(qdev, ERR_STS); - netif_err(qdev, intr, qdev->ndev, - "Resetting chip. Error Status Register = 0x%x\n", var); + netdev_err(qdev->ndev, "Resetting chip. " + "Error Status Register = 0x%x\n", var); return IRQ_HANDLED; } -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [net-2.6 PATCH 2/3] qlge: Fix printk priority so chip fatal errors are always reported. 2011-06-30 20:02 ` [net-2.6 PATCH 2/3] qlge: Fix printk priority so chip fatal errors are always reported Ron Mercer @ 2011-07-02 0:36 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2011-07-02 0:36 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, jitendra.kalsaria, ameen.rahman From: Ron Mercer <ron.mercer@qlogic.com> Date: Thu, 30 Jun 2011 13:02:06 -0700 > From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> > > Precedence of the printk should be at higher level so chip fatal > errors are always reported. > > Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [net-2.6 PATCH 3/3] qlge:Version change to v1.00.00.29 2011-06-23 18:50 ` Joe Perches ` (2 preceding siblings ...) 2011-06-30 20:02 ` [net-2.6 PATCH 2/3] qlge: Fix printk priority so chip fatal errors are always reported Ron Mercer @ 2011-06-30 20:02 ` Ron Mercer 2011-07-02 0:36 ` David Miller 3 siblings, 1 reply; 11+ messages in thread From: Ron Mercer @ 2011-06-30 20:02 UTC (permalink / raw) To: davem; +Cc: netdev, ron.mercer, jitendra.kalsaria, ameen.rahman From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index b2c8612..ca306fd 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h @@ -16,7 +16,7 @@ */ #define DRV_NAME "qlge" #define DRV_STRING "QLogic 10 Gigabit PCI-E Ethernet Driver " -#define DRV_VERSION "v1.00.00.27.00.00-01" +#define DRV_VERSION "v1.00.00.29.00.00-01" #define WQ_ADDR_ALIGN 0x3 /* 4 byte alignment */ -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [net-2.6 PATCH 3/3] qlge:Version change to v1.00.00.29 2011-06-30 20:02 ` [net-2.6 PATCH 3/3] qlge:Version change to v1.00.00.29 Ron Mercer @ 2011-07-02 0:36 ` David Miller 0 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2011-07-02 0:36 UTC (permalink / raw) To: ron.mercer; +Cc: netdev, jitendra.kalsaria, ameen.rahman From: Ron Mercer <ron.mercer@qlogic.com> Date: Thu, 30 Jun 2011 13:02:07 -0700 > From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> > > Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> > Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Applied. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [net-2.6 PATCH 3/3] qlge:Version change to v1.00.00.29 2011-06-23 17:52 [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip Ron Mercer 2011-06-23 17:52 ` [net-2.6 PATCH 2/3] qlge:Fix printk priority so chip fatal errors are always reported Ron Mercer @ 2011-06-23 17:52 ` Ron Mercer 1 sibling, 0 replies; 11+ messages in thread From: Ron Mercer @ 2011-06-23 17:52 UTC (permalink / raw) To: davem; +Cc: netdev, ron.mercer, jitendra.kalsaria, ameen.rahman From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> --- drivers/net/qlge/qlge.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/qlge/qlge.h b/drivers/net/qlge/qlge.h index b2c8612..ca306fd 100644 --- a/drivers/net/qlge/qlge.h +++ b/drivers/net/qlge/qlge.h @@ -16,7 +16,7 @@ */ #define DRV_NAME "qlge" #define DRV_STRING "QLogic 10 Gigabit PCI-E Ethernet Driver " -#define DRV_VERSION "v1.00.00.27.00.00-01" +#define DRV_VERSION "v1.00.00.29.00.00-01" #define WQ_ADDR_ALIGN 0x3 /* 4 byte alignment */ -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2011-07-02 0:36 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-06-23 17:52 [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip Ron Mercer 2011-06-23 17:52 ` [net-2.6 PATCH 2/3] qlge:Fix printk priority so chip fatal errors are always reported Ron Mercer 2011-06-23 18:50 ` Joe Perches 2011-06-23 18:43 ` Ron Mercer 2011-06-30 20:02 ` [net-2.6 PATCH 1/3] qlge:Fix crash caused by mailbox execution on wedged chip Ron Mercer 2011-07-02 0:36 ` David Miller 2011-06-30 20:02 ` [net-2.6 PATCH 2/3] qlge: Fix printk priority so chip fatal errors are always reported Ron Mercer 2011-07-02 0:36 ` David Miller 2011-06-30 20:02 ` [net-2.6 PATCH 3/3] qlge:Version change to v1.00.00.29 Ron Mercer 2011-07-02 0:36 ` David Miller 2011-06-23 17:52 ` Ron Mercer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).