netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net 0/9] qlcnic: bug fixes
@ 2013-07-19 20:56 Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 1/9] qlcnic: Fix invalid register offset calculation Sucheta Chakraborty
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver

Please apply to net.

Thanks,
Sucheta.

Himanshu Madhani (1):
  qlcnic: Fix ethtool display for 83xx adapter.

Jitendra Kalsaria (1):
  qlcnic: Fix releasing of Tx frag which was never mapped.

Manish Chopra (2):
  qlcnic: Fix panic while setting VF's MAC address
  qlcnic: Fix guest VLAN

Pratik Pujar (1):
  qlcnic: Set __QLCNIC_DEV_UP in adapter state before enabling
    interrupts

Shahed Shaikh (2):
  qlcnic: Fix invalid register offset calculation
  qlcnic: Fix dump template version mask

Sucheta Chakraborty (2):
  qlcnic: Fix NULL pointer dereference in VF probe path.
  qlcnic: Fix multicast packet handling for PF and VF.

 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h        |    3 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c    |    4 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |    2 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c     |   22 +++++++++----------
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c   |    2 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |    2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_minidump.c   |    2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c   |   16 +++++++++++--
 8 files changed, 31 insertions(+), 22 deletions(-)

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

* [PATCH net 1/9] qlcnic: Fix invalid register offset calculation
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 2/9] qlcnic: Set __QLCNIC_DEV_UP in adapter state before enabling interrupts Sucheta Chakraborty
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh

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

83xx adapter specific code was accessing 82xx register which
resulted in invalid register offset. This patch uses proper
register access method.

Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
index 700a463..05a847e 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
@@ -1540,7 +1540,7 @@ qlcnic_set_dump(struct net_device *netdev, struct ethtool_dump *val)
 		return 0;
 	case QLCNIC_SET_QUIESCENT:
 	case QLCNIC_RESET_QUIESCENT:
-		state = QLCRD32(adapter, QLCNIC_CRB_DEV_STATE);
+		state = QLC_SHARED_REG_RD32(adapter, QLCNIC_CRB_DEV_STATE);
 		if (state == QLCNIC_DEV_FAILED || (state == QLCNIC_DEV_BADBAD))
 			netdev_info(netdev, "Device in FAILED state\n");
 		return 0;
-- 
1.7.1

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

* [PATCH net 2/9] qlcnic: Set __QLCNIC_DEV_UP in adapter state before enabling interrupts
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 1/9] qlcnic: Fix invalid register offset calculation Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 3/9] qlcnic: Fix NULL pointer dereference in VF probe path Sucheta Chakraborty
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Pratik Pujar

From: Pratik Pujar <pratik.pujar@qlogic.com>

NAPI poll function does not re-enable the interrupt, if __QLCNIC_DEV_UP is not set
in adapter state. This was preventing driver from receiving any packet.

Signed-off-by: Pratik Pujar <pratik.pujar@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 4528f8e..41635f2 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -1531,12 +1531,12 @@ int __qlcnic_up(struct qlcnic_adapter *adapter, struct net_device *netdev)
 	if (netdev->features & NETIF_F_LRO)
 		qlcnic_config_hw_lro(adapter, QLCNIC_LRO_ENABLED);
 
+	set_bit(__QLCNIC_DEV_UP, &adapter->state);
 	qlcnic_napi_enable(adapter);
 
 	qlcnic_linkevent_request(adapter, 1);
 
 	adapter->ahw->reset_context = 0;
-	set_bit(__QLCNIC_DEV_UP, &adapter->state);
 	return 0;
 }
 
-- 
1.7.1

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

* [PATCH net 3/9] qlcnic: Fix NULL pointer dereference in VF probe path.
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 1/9] qlcnic: Fix invalid register offset calculation Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 2/9] qlcnic: Set __QLCNIC_DEV_UP in adapter state before enabling interrupts Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 4/9] qlcnic: Fix multicast packet handling for PF and VF Sucheta Chakraborty
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver

o Check for non-NULL set_mac_filter_count function pointer
  before calling it fixes the panic.

This patch fixes regression introduced by patch
"qlcnic: Secondary unicast MAC address support." with
commit id 168e4fb54c11865668ad50eff81b5f2729e0e0f4.

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

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index b00cf56..f4bb8f5 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
@@ -1869,7 +1869,8 @@ static inline void qlcnic_free_mac_list(struct qlcnic_adapter *adapter)
 
 static inline void qlcnic_set_mac_filter_count(struct qlcnic_adapter *adapter)
 {
-	adapter->ahw->hw_ops->set_mac_filter_count(adapter);
+	if (adapter->ahw->hw_ops->set_mac_filter_count)
+		adapter->ahw->hw_ops->set_mac_filter_count(adapter);
 }
 
 static inline void qlcnic_dev_request_reset(struct qlcnic_adapter *adapter,
-- 
1.7.1

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

* [PATCH net 4/9] qlcnic: Fix multicast packet handling for PF and VF.
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
                   ` (2 preceding siblings ...)
  2013-07-19 20:56 ` [PATCH net 3/9] qlcnic: Fix NULL pointer dereference in VF probe path Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 5/9] qlcnic: Fix panic while setting VF's MAC address Sucheta Chakraborty
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver

o Multicast MAC was not getting programmed due to which multicast
  packets were being dropped by FW.

This patch fixes commit 168e4fb54c11865668ad50eff81b5f2729e0e0f4
("qlcnic: Secondary unicast MAC address support.") which introduced
bug in handling multicast packets.

Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
index 5b5d2ed..4ed7e73 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
@@ -516,20 +516,18 @@ void __qlcnic_set_multi(struct net_device *netdev, u16 vlan)
 	if (netdev->flags & IFF_PROMISC) {
 		if (!(adapter->flags & QLCNIC_PROMISC_DISABLED))
 			mode = VPORT_MISS_MODE_ACCEPT_ALL;
-	} else if (netdev->flags & IFF_ALLMULTI) {
-		if (netdev_mc_count(netdev) > ahw->max_mc_count) {
-			mode = VPORT_MISS_MODE_ACCEPT_MULTI;
-		} else if (!netdev_mc_empty(netdev) &&
-			   !qlcnic_sriov_vf_check(adapter)) {
-				netdev_for_each_mc_addr(ha, netdev)
-					qlcnic_nic_add_mac(adapter, ha->addr,
-							   vlan);
-		}
-		if (mode != VPORT_MISS_MODE_ACCEPT_MULTI &&
-		    qlcnic_sriov_vf_check(adapter))
-			qlcnic_vf_add_mc_list(netdev, vlan);
+	} else if ((netdev->flags & IFF_ALLMULTI) ||
+		   (netdev_mc_count(netdev) > ahw->max_mc_count)) {
+		mode = VPORT_MISS_MODE_ACCEPT_MULTI;
+	} else if (!netdev_mc_empty(netdev) &&
+		   !qlcnic_sriov_vf_check(adapter)) {
+		netdev_for_each_mc_addr(ha, netdev)
+			qlcnic_nic_add_mac(adapter, ha->addr, vlan);
 	}
 
+	if (qlcnic_sriov_vf_check(adapter))
+		qlcnic_vf_add_mc_list(netdev, vlan);
+
 	/* configure unicast MAC address, if there is not sufficient space
 	 * to store all the unicast addresses then enable promiscuous mode
 	 */
-- 
1.7.1

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

* [PATCH net 5/9] qlcnic: Fix panic while setting VF's MAC address
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
                   ` (3 preceding siblings ...)
  2013-07-19 20:56 ` [PATCH net 4/9] qlcnic: Fix multicast packet handling for PF and VF Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 6/9] qlcnic: Fix ethtool display for 83xx adapter Sucheta Chakraborty
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Manish Chopra

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

o "qlcnic_sriov" structure pointer should be accessed only
  when SR-IOV is enabled. Access this pointer after SR-IOV
  PF check.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 .../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c   |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
index ee0c1d3..b9b88f3 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
@@ -1621,13 +1621,15 @@ int qlcnic_sriov_set_vf_mac(struct net_device *netdev, int vf, u8 *mac)
 {
 	struct qlcnic_adapter *adapter = netdev_priv(netdev);
 	struct qlcnic_sriov *sriov = adapter->ahw->sriov;
-	int i, num_vfs = sriov->num_vfs;
+	int i, num_vfs;
 	struct qlcnic_vf_info *vf_info;
 	u8 *curr_mac;
 
 	if (!qlcnic_sriov_pf_check(adapter))
 		return -EOPNOTSUPP;
 
+	num_vfs = sriov->num_vfs;
+
 	if (!is_valid_ether_addr(mac) || vf >= num_vfs)
 		return -EINVAL;
 
-- 
1.7.1

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

* [PATCH net 6/9] qlcnic: Fix ethtool display for 83xx adapter.
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
                   ` (4 preceding siblings ...)
  2013-07-19 20:56 ` [PATCH net 5/9] qlcnic: Fix panic while setting VF's MAC address Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 7/9] qlcnic: Fix dump template version mask Sucheta Chakraborty
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Himanshu Madhani

From: Himanshu Madhani <himanshu.madhani@qlogic.com>

o Commit b938662d88264c1a92611ca1b82fdff5a4e87121
  ("qlcnic: Fix ethtool supported port status for 83xx")
  introduced regression for display of link status for 83xx
  adapter while refactoring port status display. This patch
  is to fix the link status display for 83xx adapter.

Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c    |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 0913c62..bc483e1 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -3014,8 +3014,8 @@ int qlcnic_83xx_get_settings(struct qlcnic_adapter *adapter,
 	}
 
 	if (ahw->port_type == QLCNIC_XGBE) {
-		ecmd->supported = SUPPORTED_1000baseT_Full;
-		ecmd->advertising = ADVERTISED_1000baseT_Full;
+		ecmd->supported = SUPPORTED_10000baseT_Full;
+		ecmd->advertising = ADVERTISED_10000baseT_Full;
 	} else {
 		ecmd->supported = (SUPPORTED_10baseT_Half |
 				   SUPPORTED_10baseT_Full |
-- 
1.7.1

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

* [PATCH net 7/9] qlcnic: Fix dump template version mask
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
                   ` (5 preceding siblings ...)
  2013-07-19 20:56 ` [PATCH net 6/9] qlcnic: Fix ethtool display for 83xx adapter Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 8/9] qlcnic: Fix releasing of Tx frag which was never mapped Sucheta Chakraborty
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh

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

Driver was using wrong mask for template version.

Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 .../net/ethernet/qlogic/qlcnic/qlcnic_minidump.c   |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
index ab8a674..79e54ef 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
@@ -1084,7 +1084,7 @@ flash_temp:
 	tmpl_hdr = ahw->fw_dump.tmpl_hdr;
 	tmpl_hdr->drv_cap_mask = QLCNIC_DUMP_MASK_DEF;
 
-	if ((tmpl_hdr->version & 0xffffff) >= 0x20001)
+	if ((tmpl_hdr->version & 0xfffff) >= 0x20001)
 		ahw->fw_dump.use_pex_dma = true;
 	else
 		ahw->fw_dump.use_pex_dma = false;
-- 
1.7.1

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

* [PATCH net 8/9] qlcnic: Fix releasing of Tx frag which was never mapped.
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
                   ` (6 preceding siblings ...)
  2013-07-19 20:56 ` [PATCH net 7/9] qlcnic: Fix dump template version mask Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-19 20:56 ` [PATCH net 9/9] qlcnic: Fix guest VLAN Sucheta Chakraborty
  2013-07-20  0:12 ` [PATCH net 0/9] qlcnic: bug fixes David Miller
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Jitendra Kalsaria

From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>

o Driver was freeing Tx frag which was never mapped before which
  result into panic as kernel was unable to handle paging request.

BUG: unable to handle kernel paging request at ffffc9002552a000
IP: [<ffffffffa05ed762>] qlcnic_release_tx_buffers+0x72/0x170 [qlcnic]
PGD 87fc15067 PUD 47febf067 PMD 4758c5067 PTE 0
Oops: 0000 [#1] SMP

crash> bt
PID: 27343  TASK: ffff8802a5de8080  CPU: 27  COMMAND: "ifconfig"
   [ffff8802a34b3850] machine_kexec at ffffffff81035b7b
   [ffff8802a34b38b0] crash_kexec at ffffffff810c0db2
   [ffff8802a34b3980] oops_end at ffffffff815111d0
   [ffff8802a34b39b0] no_context at ffffffff81046bfb
   [ffff8802a34b3a00] __bad_area_nosemaphore at ffffffff81046e85
   [ffff8802a34b3a50] bad_area_nosemaphore at ffffffff81046f53
   [ffff8802a34b3a60] __do_page_fault at ffffffff810476b1
   [ffff8802a34b3b80] do_page_fault at ffffffff8151311e
   [ffff8802a34b3bb0] page_fault at ffffffff815104d5
    [exception RIP: qlcnic_release_tx_buffers+114]
    RIP: ffffffffa05ed762  RSP: ffff8802a34b3c68  RFLAGS: 00010246
    RAX: ffff88087989c000  RBX: ffffc90025529ff8  RCX: 0000000000000001
    RDX: 0000000000000013  RSI: 0000000000000013  RDI: 0000000000000000
    RBP: ffff8802a34b3ca8   R8: 0000000000000000   R9: 0000000000000000
    R10: 000000000000000c  R11: 0000000000000000  R12: 0000000000000012
    R13: ffffc90025529ec0  R14: ffff880761e876e0  R15: 00000000000003ff
    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
   [ffff8802a34b3cb0] __qlcnic_down at ffffffffa05e8b15 [qlcnic]
   [ffff8802a34b3d00] qlcnic_close at ffffffffa05e8b78 [qlcnic]
   [ffff8802a34b3d10] dev_close at ffffffff81449d81
   [ffff8802a34b3d30] dev_change_flags at ffffffff814495c1

Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
index d28336f..a202309 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c
@@ -142,7 +142,7 @@ void qlcnic_release_tx_buffers(struct qlcnic_adapter *adapter)
 					 buffrag->length, PCI_DMA_TODEVICE);
 			buffrag->dma = 0ULL;
 		}
-		for (j = 0; j < cmd_buf->frag_count; j++) {
+		for (j = 1; j < cmd_buf->frag_count; j++) {
 			buffrag++;
 			if (buffrag->dma) {
 				pci_unmap_page(adapter->pdev, buffrag->dma,
-- 
1.7.1

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

* [PATCH net 9/9] qlcnic: Fix guest VLAN
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
                   ` (7 preceding siblings ...)
  2013-07-19 20:56 ` [PATCH net 8/9] qlcnic: Fix releasing of Tx frag which was never mapped Sucheta Chakraborty
@ 2013-07-19 20:56 ` Sucheta Chakraborty
  2013-07-20  0:12 ` [PATCH net 0/9] qlcnic: bug fixes David Miller
  9 siblings, 0 replies; 11+ messages in thread
From: Sucheta Chakraborty @ 2013-07-19 20:56 UTC (permalink / raw)
  To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Manish Chopra

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

o Clear cached vport vlan variable(vp->vlan) in PF on PCI FLR and
  back-channel termination which will allow to configure guest VLAN
  on VF after force off/shut down the guest VM.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
---
 .../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c   |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
index b9b88f3..46aeb59 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c
@@ -635,10 +635,12 @@ static int qlcnic_sriov_pf_channel_cfg_cmd(struct qlcnic_bc_trans *trans,
 					   struct qlcnic_cmd_args *cmd)
 {
 	struct qlcnic_vf_info *vf = trans->vf;
-	struct qlcnic_adapter *adapter = vf->adapter;
-	int err;
+	struct qlcnic_vport *vp = vf->vp;
+	struct qlcnic_adapter *adapter;
 	u16 func = vf->pci_func;
+	int err;
 
+	adapter = vf->adapter;
 	cmd->rsp.arg[0] = trans->req_hdr->cmd_op;
 	cmd->rsp.arg[0] |= (1 << 16);
 
@@ -650,6 +652,8 @@ static int qlcnic_sriov_pf_channel_cfg_cmd(struct qlcnic_bc_trans *trans,
 				qlcnic_sriov_pf_config_vport(adapter, 0, func);
 		}
 	} else {
+		if (vp->vlan_mode == QLC_GUEST_VLAN_MODE)
+			vp->vlan = 0;
 		err = qlcnic_sriov_pf_config_vport(adapter, 0, func);
 	}
 
@@ -1561,6 +1565,7 @@ void qlcnic_sriov_pf_handle_flr(struct qlcnic_sriov *sriov,
 				struct qlcnic_vf_info *vf)
 {
 	struct net_device *dev = vf->adapter->netdev;
+	struct qlcnic_vport *vp = vf->vp;
 
 	if (!test_and_clear_bit(QLC_BC_VF_STATE, &vf->state)) {
 		clear_bit(QLC_BC_VF_FLR, &vf->state);
@@ -1573,6 +1578,9 @@ void qlcnic_sriov_pf_handle_flr(struct qlcnic_sriov *sriov,
 		return;
 	}
 
+	if (vp->vlan_mode == QLC_GUEST_VLAN_MODE)
+		vp->vlan = 0;
+
 	qlcnic_sriov_schedule_flr(sriov, vf, qlcnic_sriov_pf_process_flr);
 	netdev_info(dev, "FLR received for PCI func %d\n", vf->pci_func);
 }
-- 
1.7.1

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

* Re: [PATCH net 0/9] qlcnic: bug fixes
  2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
                   ` (8 preceding siblings ...)
  2013-07-19 20:56 ` [PATCH net 9/9] qlcnic: Fix guest VLAN Sucheta Chakraborty
@ 2013-07-20  0:12 ` David Miller
  9 siblings, 0 replies; 11+ messages in thread
From: David Miller @ 2013-07-20  0:12 UTC (permalink / raw)
  To: sucheta.chakraborty; +Cc: netdev, Dept_NX_Linux_NIC_Driver

From: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Date: Fri, 19 Jul 2013 16:56:25 -0400

> Please apply to net.

Applied, thanks.

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

end of thread, other threads:[~2013-07-20  0:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-19 20:56 [PATCH net 0/9] qlcnic: bug fixes Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 1/9] qlcnic: Fix invalid register offset calculation Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 2/9] qlcnic: Set __QLCNIC_DEV_UP in adapter state before enabling interrupts Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 3/9] qlcnic: Fix NULL pointer dereference in VF probe path Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 4/9] qlcnic: Fix multicast packet handling for PF and VF Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 5/9] qlcnic: Fix panic while setting VF's MAC address Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 6/9] qlcnic: Fix ethtool display for 83xx adapter Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 7/9] qlcnic: Fix dump template version mask Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 8/9] qlcnic: Fix releasing of Tx frag which was never mapped Sucheta Chakraborty
2013-07-19 20:56 ` [PATCH net 9/9] qlcnic: Fix guest VLAN Sucheta Chakraborty
2013-07-20  0:12 ` [PATCH net 0/9] qlcnic: bug fixes David Miller

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).