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