All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net 0/3] qlcnic: bug fixes
@ 2016-08-03  8:02 Manish Chopra
  2016-08-03  8:02 ` [PATCH net 1/3] qlcnic: fix data structure corruption in async mbx command handling Manish Chopra
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Manish Chopra @ 2016-08-03  8:02 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-GELinuxNICDev

Hi David,

This series fixes a data structure corruption bug in
VF's async mailbox commands handling and an issue realted
to napi poll budget in the driver.

Please consider applying this series to "net"

Thanks,
Manish

Manish Chopra (3):
  qlcnic: fix data structure corruption in async mbx command handling
  qlcnic: fix napi budget alteration
  qlcnic: Update version to 5.3.65

 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h        |    4 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c     |    2 -
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h  |    9 +-
 .../ethernet/qlogic/qlcnic/qlcnic_sriov_common.c   |   95 +++++++++++--------
 4 files changed, 62 insertions(+), 48 deletions(-)

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

* [PATCH net 1/3] qlcnic: fix data structure corruption in async mbx command handling
  2016-08-03  8:02 [PATCH net 0/3] qlcnic: bug fixes Manish Chopra
@ 2016-08-03  8:02 ` Manish Chopra
  2016-08-03  8:02 ` [PATCH net 2/3] qlcnic: fix napi budget alteration Manish Chopra
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 15+ messages in thread
From: Manish Chopra @ 2016-08-03  8:02 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-GELinuxNICDev

This patch fixes a data structure corruption bug in the SRIOV VF mailbox
handler code. While handling mailbox commands from the atomic context,
driver is accessing and updating qlcnic_async_work_list_struct entry fields
in the async work list. These fields could be concurrently accessed by the
work function resulting in data corruption.

This patch restructures async mbx command handling by using a separate
async command list instead of using a list of work_struct structures.
A single work_struct is used to schedule and handle the async commands
with proper locking mechanism.

Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h  |    9 +-
 .../ethernet/qlogic/qlcnic/qlcnic_sriov_common.c   |   95 +++++++++++--------
 2 files changed, 60 insertions(+), 44 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h
index 017d8c2..24061b9 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h
@@ -156,10 +156,8 @@ struct qlcnic_vf_info {
 	spinlock_t			vlan_list_lock;	/* Lock for VLAN list */
 };
 
-struct qlcnic_async_work_list {
+struct qlcnic_async_cmd {
 	struct list_head	list;
-	struct work_struct	work;
-	void			*ptr;
 	struct qlcnic_cmd_args	*cmd;
 };
 
@@ -168,7 +166,10 @@ struct qlcnic_back_channel {
 	struct workqueue_struct *bc_trans_wq;
 	struct workqueue_struct *bc_async_wq;
 	struct workqueue_struct *bc_flr_wq;
-	struct list_head	async_list;
+	struct qlcnic_adapter	*adapter;
+	struct list_head	async_cmd_list;
+	struct work_struct	vf_async_work;
+	spinlock_t		queue_lock; /* async_cmd_list queue lock */
 };
 
 struct qlcnic_sriov {
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
index 7327b72..d710705 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c
@@ -29,6 +29,7 @@
 #define QLC_83XX_VF_RESET_FAIL_THRESH	8
 #define QLC_BC_CMD_MAX_RETRY_CNT	5
 
+static void qlcnic_sriov_handle_async_issue_cmd(struct work_struct *work);
 static void qlcnic_sriov_vf_free_mac_list(struct qlcnic_adapter *);
 static int qlcnic_sriov_alloc_bc_mbx_args(struct qlcnic_cmd_args *, u32);
 static void qlcnic_sriov_vf_poll_dev_state(struct work_struct *);
@@ -177,7 +178,10 @@ int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs)
 	}
 
 	bc->bc_async_wq =  wq;
-	INIT_LIST_HEAD(&bc->async_list);
+	INIT_LIST_HEAD(&bc->async_cmd_list);
+	INIT_WORK(&bc->vf_async_work, qlcnic_sriov_handle_async_issue_cmd);
+	spin_lock_init(&bc->queue_lock);
+	bc->adapter = adapter;
 
 	for (i = 0; i < num_vfs; i++) {
 		vf = &sriov->vf_info[i];
@@ -1517,17 +1521,21 @@ static void qlcnic_vf_add_mc_list(struct net_device *netdev, const u8 *mac,
 
 void qlcnic_sriov_cleanup_async_list(struct qlcnic_back_channel *bc)
 {
-	struct list_head *head = &bc->async_list;
-	struct qlcnic_async_work_list *entry;
+	struct list_head *head = &bc->async_cmd_list;
+	struct qlcnic_async_cmd *entry;
 
 	flush_workqueue(bc->bc_async_wq);
+	cancel_work_sync(&bc->vf_async_work);
+
+	spin_lock(&bc->queue_lock);
 	while (!list_empty(head)) {
-		entry = list_entry(head->next, struct qlcnic_async_work_list,
+		entry = list_entry(head->next, struct qlcnic_async_cmd,
 				   list);
-		cancel_work_sync(&entry->work);
 		list_del(&entry->list);
+		kfree(entry->cmd);
 		kfree(entry);
 	}
+	spin_unlock(&bc->queue_lock);
 }
 
 void qlcnic_sriov_vf_set_multi(struct net_device *netdev)
@@ -1587,57 +1595,64 @@ void qlcnic_sriov_vf_set_multi(struct net_device *netdev)
 
 static void qlcnic_sriov_handle_async_issue_cmd(struct work_struct *work)
 {
-	struct qlcnic_async_work_list *entry;
-	struct qlcnic_adapter *adapter;
+	struct qlcnic_async_cmd *entry, *tmp;
+	struct qlcnic_back_channel *bc;
 	struct qlcnic_cmd_args *cmd;
+	struct list_head *head;
+	LIST_HEAD(del_list);
+
+	bc = container_of(work, struct qlcnic_back_channel, vf_async_work);
+	head = &bc->async_cmd_list;
+
+	spin_lock(&bc->queue_lock);
+	list_splice_init(head, &del_list);
+	spin_unlock(&bc->queue_lock);
+
+	list_for_each_entry_safe(entry, tmp, &del_list, list) {
+		list_del(&entry->list);
+		cmd = entry->cmd;
+		__qlcnic_sriov_issue_cmd(bc->adapter, cmd);
+		kfree(entry);
+	}
+
+	if (!list_empty(head))
+		queue_work(bc->bc_async_wq, &bc->vf_async_work);
 
-	entry = container_of(work, struct qlcnic_async_work_list, work);
-	adapter = entry->ptr;
-	cmd = entry->cmd;
-	__qlcnic_sriov_issue_cmd(adapter, cmd);
 	return;
 }
 
-static struct qlcnic_async_work_list *
-qlcnic_sriov_get_free_node_async_work(struct qlcnic_back_channel *bc)
+static struct qlcnic_async_cmd *
+qlcnic_sriov_alloc_async_cmd(struct qlcnic_back_channel *bc,
+			     struct qlcnic_cmd_args *cmd)
 {
-	struct list_head *node;
-	struct qlcnic_async_work_list *entry = NULL;
-	u8 empty = 0;
+	struct qlcnic_async_cmd *entry = NULL;
 
-	list_for_each(node, &bc->async_list) {
-		entry = list_entry(node, struct qlcnic_async_work_list, list);
-		if (!work_pending(&entry->work)) {
-			empty = 1;
-			break;
-		}
-	}
+	entry = kzalloc(sizeof(*entry), GFP_ATOMIC);
+	if (!entry)
+		return NULL;
 
-	if (!empty) {
-		entry = kzalloc(sizeof(struct qlcnic_async_work_list),
-				GFP_ATOMIC);
-		if (entry == NULL)
-			return NULL;
-		list_add_tail(&entry->list, &bc->async_list);
-	}
+	entry->cmd = cmd;
+
+	spin_lock(&bc->queue_lock);
+	list_add_tail(&entry->list, &bc->async_cmd_list);
+	spin_unlock(&bc->queue_lock);
 
 	return entry;
 }
 
 static void qlcnic_sriov_schedule_async_cmd(struct qlcnic_back_channel *bc,
-					    work_func_t func, void *data,
 					    struct qlcnic_cmd_args *cmd)
 {
-	struct qlcnic_async_work_list *entry = NULL;
+	struct qlcnic_async_cmd *entry = NULL;
 
-	entry = qlcnic_sriov_get_free_node_async_work(bc);
-	if (!entry)
+	entry = qlcnic_sriov_alloc_async_cmd(bc, cmd);
+	if (!entry) {
+		qlcnic_free_mbx_args(cmd);
+		kfree(cmd);
 		return;
+	}
 
-	entry->ptr = data;
-	entry->cmd = cmd;
-	INIT_WORK(&entry->work, func);
-	queue_work(bc->bc_async_wq, &entry->work);
+	queue_work(bc->bc_async_wq, &bc->vf_async_work);
 }
 
 static int qlcnic_sriov_async_issue_cmd(struct qlcnic_adapter *adapter,
@@ -1649,8 +1664,8 @@ static int qlcnic_sriov_async_issue_cmd(struct qlcnic_adapter *adapter,
 	if (adapter->need_fw_reset)
 		return -EIO;
 
-	qlcnic_sriov_schedule_async_cmd(bc, qlcnic_sriov_handle_async_issue_cmd,
-					adapter, cmd);
+	qlcnic_sriov_schedule_async_cmd(bc, cmd);
+
 	return 0;
 }
 
-- 
1.5.6

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

* [PATCH net 2/3] qlcnic: fix napi budget alteration
  2016-08-03  8:02 [PATCH net 0/3] qlcnic: bug fixes Manish Chopra
  2016-08-03  8:02 ` [PATCH net 1/3] qlcnic: fix data structure corruption in async mbx command handling Manish Chopra
@ 2016-08-03  8:02 ` Manish Chopra
  2016-08-03  8:02 ` [PATCH net 3/3] qlcnic: Update version to 5.3.65 Manish Chopra
  2016-08-03 19:03 ` [PATCH net 0/3] qlcnic: bug fixes David Miller
  3 siblings, 0 replies; 15+ messages in thread
From: Manish Chopra @ 2016-08-03  8:02 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-GELinuxNICDev

Driver modifies the supplied NAPI budget in qlcnic_83xx_msix_tx_poll()
function. Instead, it should use the budget as it is.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
index 87c642d..fedd736 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
@@ -102,7 +102,6 @@
 #define QLCNIC_RESPONSE_DESC	0x05
 #define QLCNIC_LRO_DESC  	0x12
 
-#define QLCNIC_TX_POLL_BUDGET		128
 #define QLCNIC_TCP_HDR_SIZE		20
 #define QLCNIC_TCP_TS_OPTION_SIZE	12
 #define QLCNIC_FETCH_RING_ID(handle)	((handle) >> 63)
@@ -2008,7 +2007,6 @@ static int qlcnic_83xx_msix_tx_poll(struct napi_struct *napi, int budget)
 	struct qlcnic_host_tx_ring *tx_ring;
 	struct qlcnic_adapter *adapter;
 
-	budget = QLCNIC_TX_POLL_BUDGET;
 	tx_ring = container_of(napi, struct qlcnic_host_tx_ring, napi);
 	adapter = tx_ring->adapter;
 	work_done = qlcnic_process_cmd_ring(adapter, tx_ring, budget);
-- 
1.5.6

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

* [PATCH net 3/3] qlcnic: Update version to 5.3.65
  2016-08-03  8:02 [PATCH net 0/3] qlcnic: bug fixes Manish Chopra
  2016-08-03  8:02 ` [PATCH net 1/3] qlcnic: fix data structure corruption in async mbx command handling Manish Chopra
  2016-08-03  8:02 ` [PATCH net 2/3] qlcnic: fix napi budget alteration Manish Chopra
@ 2016-08-03  8:02 ` Manish Chopra
  2016-08-03 19:03 ` [PATCH net 0/3] qlcnic: bug fixes David Miller
  3 siblings, 0 replies; 15+ messages in thread
From: Manish Chopra @ 2016-08-03  8:02 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-GELinuxNICDev

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index fd973f4..49bad00 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 3
-#define _QLCNIC_LINUX_SUBVERSION 64
-#define QLCNIC_LINUX_VERSIONID  "5.3.64"
+#define _QLCNIC_LINUX_SUBVERSION 65
+#define QLCNIC_LINUX_VERSIONID  "5.3.65"
 #define QLCNIC_DRV_IDC_VER  0x01
 #define QLCNIC_DRIVER_VERSION  ((_QLCNIC_LINUX_MAJOR << 16) |\
 		 (_QLCNIC_LINUX_MINOR << 8) | (_QLCNIC_LINUX_SUBVERSION))
-- 
1.5.6

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

* Re: [PATCH net 0/3] qlcnic: bug fixes
  2016-08-03  8:02 [PATCH net 0/3] qlcnic: bug fixes Manish Chopra
                   ` (2 preceding siblings ...)
  2016-08-03  8:02 ` [PATCH net 3/3] qlcnic: Update version to 5.3.65 Manish Chopra
@ 2016-08-03 19:03 ` David Miller
  3 siblings, 0 replies; 15+ messages in thread
From: David Miller @ 2016-08-03 19:03 UTC (permalink / raw)
  To: manish.chopra; +Cc: netdev, Dept-GELinuxNICDev

From: Manish Chopra <manish.chopra@qlogic.com>
Date: Wed, 3 Aug 2016 04:02:01 -0400

> This series fixes a data structure corruption bug in
> VF's async mailbox commands handling and an issue realted
> to napi poll budget in the driver.
> 
> Please consider applying this series to "net"

Series applied, thanks.

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

* Re: [PATCH net 0/3] qlcnic: Bug fixes
  2014-08-18 13:31 [PATCH net 0/3] qlcnic: Bug fixes Shahed Shaikh
@ 2014-08-22  0:43 ` David Miller
  0 siblings, 0 replies; 15+ messages in thread
From: David Miller @ 2014-08-22  0:43 UTC (permalink / raw)
  To: shahed.shaikh; +Cc: netdev, Dept-HSGLinuxNICDev

From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Date: Mon, 18 Aug 2014 09:31:52 -0400

> This series fixes some bugs related to endianess.
> 
> Please apply this series to net.

Series applied, thanks.

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

* [PATCH net 0/3] qlcnic: Bug fixes
@ 2014-08-18 13:31 Shahed Shaikh
  2014-08-22  0:43 ` David Miller
  0 siblings, 1 reply; 15+ messages in thread
From: Shahed Shaikh @ 2014-08-18 13:31 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev, Shahed Shaikh

From: Shahed Shaikh <shahed.shaikh@qlogic.com>

Hi Dave,

This series fixes some bugs related to endianess.

Please apply this series to net.

Thanks,
Shahed

Jitendra Kalsaria (1):
  qlcnic: Fix flash access interface to application

Rajesh Borundia (1):
  qlcnic: Fix endianess issue in FW dump template header

Shahed Shaikh (1):
  qlcnic: Fix endianess issue in firmware load from file operation

 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h        |   15 +++++-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c    |    6 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c  |   35 +++++++++----
 .../net/ethernet/qlogic/qlcnic/qlcnic_minidump.c   |   57 ++++++++++++++++++++
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c  |   16 +++++-
 5 files changed, 114 insertions(+), 15 deletions(-)

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

* Re: [PATCH net 0/3] qlcnic: Bug fixes
  2014-08-04 15:51 Rajesh Borundia
@ 2014-08-05 23:24 ` David Miller
  0 siblings, 0 replies; 15+ messages in thread
From: David Miller @ 2014-08-05 23:24 UTC (permalink / raw)
  To: rajesh.borundia; +Cc: netdev, Dept-HSGLinuxNICDev

From: Rajesh Borundia <rajesh.borundia@qlogic.com>
Date: Mon, 4 Aug 2014 11:51:15 -0400

> The patch series contains following bug fixes.
> 
> * Aggregating tx stats in adapter variable was resulting
>   in increase of stats when user runs ifconfig command
>   and no traffic is running. Instead aggregate tx stats
>   in local variable and then assign it to adapter struct
>   variable.
> * Set_driver_version was called after registering netdev
>   which was resulting in a race between FLR in open
>   handler and set_driver_version command as open handler
>   can be called simulatneously on another cpu even if probe
>   is not complete. So call this command before registering
>   netdev.
> * dcbnl_ops should be initialized before registering netdev
>   as they are referenced in open handler.
>    
> Please apply this series to net.

Series applied, thanks.

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

* [PATCH net 0/3] qlcnic: Bug fixes
@ 2014-08-04 15:51 Rajesh Borundia
  2014-08-05 23:24 ` David Miller
  0 siblings, 1 reply; 15+ messages in thread
From: Rajesh Borundia @ 2014-08-04 15:51 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev

The patch series contains following bug fixes.

* Aggregating tx stats in adapter variable was resulting
  in increase of stats when user runs ifconfig command
  and no traffic is running. Instead aggregate tx stats
  in local variable and then assign it to adapter struct
  variable.
* Set_driver_version was called after registering netdev
  which was resulting in a race between FLR in open
  handler and set_driver_version command as open handler
  can be called simulatneously on another cpu even if probe
  is not complete. So call this command before registering
  netdev.
* dcbnl_ops should be initialized before registering netdev
  as they are referenced in open handler.
   
Please apply this series to net.

Thanks,
Rajesh

Rajesh Borundia (3):
  qlcnic: Fix update of ethtool stats.
  qlcnic: Set driver version before registering netdev
  qlcnic: Initialize dcbnl_ops before register_netdev

 drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c    |    2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |   18 +++++++++++++-----
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |   10 +++++-----
 3 files changed, 19 insertions(+), 11 deletions(-)

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

* Re: [PATCH net 0/3] qlcnic: bug fixes
  2013-08-15 12:29 [PATCH net 0/3] qlcnic: bug fixes Sucheta Chakraborty
@ 2013-08-15 21:35 ` David Miller
  0 siblings, 0 replies; 15+ messages in thread
From: David Miller @ 2013-08-15 21:35 UTC (permalink / raw)
  To: sucheta.chakraborty; +Cc: netdev, Dept-HSGLinuxNICDev

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

> Please apply to net.

Series applied, thanks.

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

* [PATCH net 0/3] qlcnic: bug fixes
@ 2013-08-15 12:29 Sucheta Chakraborty
  2013-08-15 21:35 ` David Miller
  0 siblings, 1 reply; 15+ messages in thread
From: Sucheta Chakraborty @ 2013-08-15 12:29 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept-HSGLinuxNICDev

Please apply to net.

Thanks,
Sucheta.

Himanshu Madhani (1):
  qlcnic: Fix set driver version command

Manish Chopra (1):
  qlcnic: Fix diagnostic interrupt test for 83xx adapters

Sucheta Chakraborty (1):
  qlcnic: Fix beacon state return status handling

 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c   | 5 +++++
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | 3 ++-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c      | 6 ++++--
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c     | 6 +++---
 4 files changed, 14 insertions(+), 6 deletions(-)

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

* Re: [PATCH net 0/3] qlcnic: Bug fixes
  2013-05-21 19:26 [PATCH net 0/3] qlcnic: Bug fixes Shahed Shaikh
@ 2013-05-22 21:52 ` David Miller
  0 siblings, 0 replies; 15+ messages in thread
From: David Miller @ 2013-05-22 21:52 UTC (permalink / raw)
  To: shahed.shaikh; +Cc: netdev, Dept_NX_Linux_NIC_Driver

From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Date: Tue, 21 May 2013 15:26:58 -0400

> This patch series includes following bug fixes:
> * Fix probe failure path by returning proper error codes.
> * Removed access to netdev->trans_start in driver.
> * Fix netdev->features manipulation as part of change in EPORT
>   features
> 
> Please apply to net.

Series applied, thanks.

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

* [PATCH net 0/3]  qlcnic: Bug fixes
@ 2013-05-21 19:26 Shahed Shaikh
  2013-05-22 21:52 ` David Miller
  0 siblings, 1 reply; 15+ messages in thread
From: Shahed Shaikh @ 2013-05-21 19:26 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh

From: Shahed Shaikh <shahed.shaikh@qlogic.com>

This patch series includes following bug fixes:
* Fix probe failure path by returning proper error codes.
* Removed access to netdev->trans_start in driver.
* Fix netdev->features manipulation as part of change in EPORT
  features

Please apply to net.

Thanks,
Shahed

Shahed Shaikh (1):
  qlcnic: Fix updating netdev->features

Sony Chacko (2):
  qlcnic: Return proper error codes from probe failure paths
  qlcnic: remove netdev->trans_start updates within the driver

 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h        |    6 ++
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c  |    2 -
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c     |   49 ++++++++++++++-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |   65 +++++---------------
 .../ethernet/qlogic/qlcnic/qlcnic_sriov_common.c   |    1 -
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c  |    3 +
 6 files changed, 70 insertions(+), 56 deletions(-)

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

* Re: [PATCH net 0/3] qlcnic: Bug fixes
  2013-04-18 18:10 Shahed Shaikh
@ 2013-04-18 18:55 ` David Miller
  0 siblings, 0 replies; 15+ messages in thread
From: David Miller @ 2013-04-18 18:55 UTC (permalink / raw)
  To: shahed.shaikh; +Cc: netdev, Dept_NX_Linux_NIC_Driver

From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Date: Thu, 18 Apr 2013 14:10:03 -0400

> From: Shahed Shaikh <shahed.shaikh@qlogic.com>
> 
> This patch series contains bug fixes for -
> * Loopback test failure while traffic is running.
> * Tx timeout and subsequent firmware reset by removing check for
>   '(adapter->netdev->features & (NETIF_F_TSO | NETIF_F_TSO6)' from tx fast
>   path, as per Eric's suggestion.
> * Typo in logs.
> 
> Please apply to net.

Series applied, thanks.

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

* [PATCH net 0/3] qlcnic: Bug fixes
@ 2013-04-18 18:10 Shahed Shaikh
  2013-04-18 18:55 ` David Miller
  0 siblings, 1 reply; 15+ messages in thread
From: Shahed Shaikh @ 2013-04-18 18:10 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh

From: Shahed Shaikh <shahed.shaikh@qlogic.com>

This patch series contains bug fixes for -
* Loopback test failure while traffic is running.
* Tx timeout and subsequent firmware reset by removing check for
  '(adapter->netdev->features & (NETIF_F_TSO | NETIF_F_TSO6)' from tx fast
  path, as per Eric's suggestion.
* Typo in logs.

Please apply to net.

Thanks,
Shahed

Jitendra Kalsaria (1):
  qlcnic: Stop traffic before performing loopback test

Shahed Shaikh (1):
  qlcnic: Fix typo in logs

Sritej Velaga (1):
  qlcnic: fix TSO race condition

 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c    |   15 ++++++++++-----
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c     |    3 +--
 2 files changed, 11 insertions(+), 7 deletions(-)

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

end of thread, other threads:[~2016-08-03 19:03 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-03  8:02 [PATCH net 0/3] qlcnic: bug fixes Manish Chopra
2016-08-03  8:02 ` [PATCH net 1/3] qlcnic: fix data structure corruption in async mbx command handling Manish Chopra
2016-08-03  8:02 ` [PATCH net 2/3] qlcnic: fix napi budget alteration Manish Chopra
2016-08-03  8:02 ` [PATCH net 3/3] qlcnic: Update version to 5.3.65 Manish Chopra
2016-08-03 19:03 ` [PATCH net 0/3] qlcnic: bug fixes David Miller
  -- strict thread matches above, loose matches on Subject: below --
2014-08-18 13:31 [PATCH net 0/3] qlcnic: Bug fixes Shahed Shaikh
2014-08-22  0:43 ` David Miller
2014-08-04 15:51 Rajesh Borundia
2014-08-05 23:24 ` David Miller
2013-08-15 12:29 [PATCH net 0/3] qlcnic: bug fixes Sucheta Chakraborty
2013-08-15 21:35 ` David Miller
2013-05-21 19:26 [PATCH net 0/3] qlcnic: Bug fixes Shahed Shaikh
2013-05-22 21:52 ` David Miller
2013-04-18 18:10 Shahed Shaikh
2013-04-18 18:55 ` 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.