* [PATCH NEXT 0/7]qlcnic: bug fixes
@ 2010-05-17 11:22 Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 1/7] qlcnic: fix memory leaks Amit Kumar Salecha
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman
Hi
Series of 7 patches to fix minor bugs. Please apply them on
net-next.
-Amit
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH NEXT 1/7] qlcnic: fix memory leaks
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
@ 2010-05-17 11:22 ` Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 2/7] qlcnic: change adapter name display Amit Kumar Salecha
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman, Anirban Chakraborty
From: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Fixes memory leak in error path when memory allocation
for adapter data structures fails.
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
---
drivers/net/qlcnic/qlcnic_ctx.c | 3 ++-
drivers/net/qlcnic/qlcnic_init.c | 4 ++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/qlcnic/qlcnic_ctx.c b/drivers/net/qlcnic/qlcnic_ctx.c
index 0a6a399..c2c1f5c 100644
--- a/drivers/net/qlcnic/qlcnic_ctx.c
+++ b/drivers/net/qlcnic/qlcnic_ctx.c
@@ -421,7 +421,8 @@ int qlcnic_alloc_hw_resources(struct qlcnic_adapter *adapter)
if (addr == NULL) {
dev_err(&pdev->dev, "failed to allocate tx desc ring\n");
- return -ENOMEM;
+ err = -ENOMEM;
+ goto err_out_free;
}
tx_ring->desc_head = (struct cmd_desc_type0 *)addr;
diff --git a/drivers/net/qlcnic/qlcnic_init.c b/drivers/net/qlcnic/qlcnic_init.c
index 77bfdab..dccd8c3 100644
--- a/drivers/net/qlcnic/qlcnic_init.c
+++ b/drivers/net/qlcnic/qlcnic_init.c
@@ -210,7 +210,7 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter)
cmd_buf_arr = vmalloc(TX_BUFF_RINGSIZE(tx_ring));
if (cmd_buf_arr == NULL) {
dev_err(&netdev->dev, "failed to allocate cmd buffer ring\n");
- return -ENOMEM;
+ goto err_out;
}
memset(cmd_buf_arr, 0, TX_BUFF_RINGSIZE(tx_ring));
tx_ring->cmd_buf_arr = cmd_buf_arr;
@@ -221,7 +221,7 @@ int qlcnic_alloc_sw_resources(struct qlcnic_adapter *adapter)
rds_ring = kzalloc(size, GFP_KERNEL);
if (rds_ring == NULL) {
dev_err(&netdev->dev, "failed to allocate rds ring struct\n");
- return -ENOMEM;
+ goto err_out;
}
recv_ctx->rds_rings = rds_ring;
--
1.5.6.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH NEXT 2/7] qlcnic: change adapter name display
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 1/7] qlcnic: fix memory leaks Amit Kumar Salecha
@ 2010-05-17 11:22 ` Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 3/7] qlcnic: fix rx bytes statistics Amit Kumar Salecha
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman, Sucheta Chakraborty
From: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Append mac address to adapter name.
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
---
drivers/net/qlcnic/qlcnic_main.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index f1949c9..db05635 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -495,7 +495,9 @@ static void get_brd_name(struct qlcnic_adapter *adapter, char *name)
qlcnic_boards[i].device == pdev->device &&
qlcnic_boards[i].sub_vendor == pdev->subsystem_vendor &&
qlcnic_boards[i].sub_device == pdev->subsystem_device) {
- strcpy(name, qlcnic_boards[i].short_name);
+ sprintf(name, "%pM: %s" ,
+ adapter->mac_addr,
+ qlcnic_boards[i].short_name);
found = 1;
break;
}
@@ -1083,6 +1085,9 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_out_iounmap;
}
+ if (qlcnic_read_mac_addr(adapter))
+ dev_warn(&pdev->dev, "failed to read mac addr\n");
+
if (qlcnic_setup_idc_param(adapter))
goto err_out_iounmap;
--
1.5.6.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH NEXT 3/7] qlcnic: fix rx bytes statistics
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 1/7] qlcnic: fix memory leaks Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 2/7] qlcnic: change adapter name display Amit Kumar Salecha
@ 2010-05-17 11:22 ` Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 4/7] qlcnic: module param for firmware load option Amit Kumar Salecha
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman, Sucheta Chakraborty
From: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Added lrobytes to it.
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
---
drivers/net/qlcnic/qlcnic_main.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index db05635..0a52d24 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -1702,7 +1702,7 @@ static struct net_device_stats *qlcnic_get_stats(struct net_device *netdev)
stats->rx_packets = adapter->stats.rx_pkts + adapter->stats.lro_pkts;
stats->tx_packets = adapter->stats.xmitfinished;
- stats->rx_bytes = adapter->stats.rxbytes;
+ stats->rx_bytes = adapter->stats.rxbytes + adapter->stats.lrobytes;
stats->tx_bytes = adapter->stats.txbytes;
stats->rx_dropped = adapter->stats.rxdropped;
stats->tx_dropped = adapter->stats.txdropped;
--
1.5.6.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH NEXT 4/7] qlcnic: module param for firmware load option
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
` (2 preceding siblings ...)
2010-05-17 11:22 ` [PATCH NEXT 3/7] qlcnic: fix rx bytes statistics Amit Kumar Salecha
@ 2010-05-17 11:22 ` Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 5/7] qlcnic: fix internal loopback test Amit Kumar Salecha
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman
By default fw is loaded from flash, user can
change this priority using load_fw_file module param.
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
---
drivers/net/qlcnic/qlcnic_main.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index 0a52d24..b076474 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -61,6 +61,10 @@ static int auto_fw_reset = AUTO_FW_RESET_ENABLED;
module_param(auto_fw_reset, int, 0644);
MODULE_PARM_DESC(auto_fw_reset, "Auto firmware reset (0=disabled, 1=enabled");
+static int load_fw_file;
+module_param(load_fw_file, int, 0644);
+MODULE_PARM_DESC(load_fw_file, "Load firmware from (0=flash, 1=file");
+
static int __devinit qlcnic_probe(struct pci_dev *pdev,
const struct pci_device_id *ent);
static void __devexit qlcnic_remove(struct pci_dev *pdev);
@@ -585,7 +589,10 @@ qlcnic_start_firmware(struct qlcnic_adapter *adapter)
/* This is the first boot after power up */
QLCWR32(adapter, QLCNIC_CAM_RAM(0x1fc), QLCNIC_BDINFO_MAGIC);
- qlcnic_request_firmware(adapter);
+ if (load_fw_file)
+ qlcnic_request_firmware(adapter);
+ else
+ adapter->fw_type = QLCNIC_FLASH_ROMIMAGE;
err = qlcnic_need_fw_reset(adapter);
if (err < 0)
--
1.5.6.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH NEXT 5/7] qlcnic: fix internal loopback test
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
` (3 preceding siblings ...)
2010-05-17 11:22 ` [PATCH NEXT 4/7] qlcnic: module param for firmware load option Amit Kumar Salecha
@ 2010-05-17 11:22 ` Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 6/7] qlcnic: remove unused register Amit Kumar Salecha
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman, Sucheta Chakraborty
From: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Reset/set DEV_UP bit during allocation and deallocation of resources.
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
---
drivers/net/qlcnic/qlcnic_main.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index b076474..dde1e8a 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -870,6 +870,7 @@ void qlcnic_diag_free_res(struct net_device *netdev, int max_sds_rings)
struct qlcnic_host_sds_ring *sds_ring;
int ring;
+ clear_bit(__QLCNIC_DEV_UP, &adapter->state);
if (adapter->diag_test == QLCNIC_INTERRUPT_TEST) {
for (ring = 0; ring < adapter->max_sds_rings; ring++) {
sds_ring = &adapter->recv_ctx.sds_rings[ring];
@@ -920,6 +921,7 @@ int qlcnic_diag_alloc_res(struct net_device *netdev, int test)
qlcnic_enable_int(sds_ring);
}
}
+ set_bit(__QLCNIC_DEV_UP, &adapter->state);
return 0;
}
--
1.5.6.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH NEXT 6/7] qlcnic: remove unused register
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
` (4 preceding siblings ...)
2010-05-17 11:22 ` [PATCH NEXT 5/7] qlcnic: fix internal loopback test Amit Kumar Salecha
@ 2010-05-17 11:22 ` Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 7/7] qlcnic: mark device state fail Amit Kumar Salecha
2010-05-18 0:31 ` [PATCH NEXT 0/7]qlcnic: bug fixes David Miller
7 siblings, 0 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman
Removing register defines which are not used by Qlgoic CNA device.
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
---
drivers/net/qlcnic/qlcnic.h | 2 --
drivers/net/qlcnic/qlcnic_hdr.h | 16 ----------------
drivers/net/qlcnic/qlcnic_init.c | 2 --
drivers/net/qlcnic/qlcnic_main.c | 1 -
4 files changed, 0 insertions(+), 21 deletions(-)
diff --git a/drivers/net/qlcnic/qlcnic.h b/drivers/net/qlcnic/qlcnic.h
index 2ed34cd..896d40d 100644
--- a/drivers/net/qlcnic/qlcnic.h
+++ b/drivers/net/qlcnic/qlcnic.h
@@ -149,8 +149,6 @@
#define get_next_index(index, length) \
(((index) + 1) & ((length) - 1))
-#define MPORT_MULTI_FUNCTION_MODE 0x2222
-
/*
* Following data structures describe the descriptors that will be used.
* Added fileds of tcpHdrSize and ipHdrSize, The driver needs to do it only when
diff --git a/drivers/net/qlcnic/qlcnic_hdr.h b/drivers/net/qlcnic/qlcnic_hdr.h
index 1374078..ad9d167 100644
--- a/drivers/net/qlcnic/qlcnic_hdr.h
+++ b/drivers/net/qlcnic/qlcnic_hdr.h
@@ -563,32 +563,16 @@ enum {
#define CRB_PF_LINK_SPEED_1 (QLCNIC_REG(0xe8))
#define CRB_PF_LINK_SPEED_2 (QLCNIC_REG(0xec))
-#define CRB_MPORT_MODE (QLCNIC_REG(0xc4))
-#define CRB_DMA_SHIFT (QLCNIC_REG(0xcc))
-
#define CRB_TEMP_STATE (QLCNIC_REG(0x1b4))
#define CRB_V2P_0 (QLCNIC_REG(0x290))
#define CRB_V2P(port) (CRB_V2P_0+((port)*4))
#define CRB_DRIVER_VERSION (QLCNIC_REG(0x2a0))
-#define CRB_SW_INT_MASK_0 (QLCNIC_REG(0x1d8))
-#define CRB_SW_INT_MASK_1 (QLCNIC_REG(0x1e0))
-#define CRB_SW_INT_MASK_2 (QLCNIC_REG(0x1e4))
-#define CRB_SW_INT_MASK_3 (QLCNIC_REG(0x1e8))
-
#define CRB_FW_CAPABILITIES_1 (QLCNIC_CAM_RAM(0x128))
#define CRB_MAC_BLOCK_START (QLCNIC_CAM_RAM(0x1c0))
/*
- * capabilities register, can be used to selectively enable/disable features
- * for backward compability
- */
-#define CRB_NIC_CAPABILITIES_HOST QLCNIC_REG(0x1a8)
-
-#define INTR_SCHEME_PERPORT 0x1
-
-/*
* CrbPortPhanCntrHi/Lo is used to pass the address of HostPhantomIndex address
* which can be read by the Phantom host to get producer/consumer indexes from
* Phantom/Casper. If it is not HOST_SHARED_MEMORY, then the following
diff --git a/drivers/net/qlcnic/qlcnic_init.c b/drivers/net/qlcnic/qlcnic_init.c
index dccd8c3..71a4e66 100644
--- a/drivers/net/qlcnic/qlcnic_init.c
+++ b/drivers/net/qlcnic/qlcnic_init.c
@@ -1184,8 +1184,6 @@ int qlcnic_init_firmware(struct qlcnic_adapter *adapter)
if (err)
return err;
- QLCWR32(adapter, CRB_NIC_CAPABILITIES_HOST, INTR_SCHEME_PERPORT);
- QLCWR32(adapter, CRB_MPORT_MODE, MPORT_MULTI_FUNCTION_MODE);
QLCWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_ACK);
return err;
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index dde1e8a..f8bd1bd 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -606,7 +606,6 @@ qlcnic_start_firmware(struct qlcnic_adapter *adapter)
msleep(1);
}
- QLCWR32(adapter, CRB_DMA_SHIFT, 0x55555555);
QLCWR32(adapter, QLCNIC_PEG_HALT_STATUS1, 0);
QLCWR32(adapter, QLCNIC_PEG_HALT_STATUS2, 0);
--
1.5.6.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH NEXT 7/7] qlcnic: mark device state fail
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
` (5 preceding siblings ...)
2010-05-17 11:22 ` [PATCH NEXT 6/7] qlcnic: remove unused register Amit Kumar Salecha
@ 2010-05-17 11:22 ` Amit Kumar Salecha
2010-05-18 0:31 ` [PATCH NEXT 0/7]qlcnic: bug fixes David Miller
7 siblings, 0 replies; 9+ messages in thread
From: Amit Kumar Salecha @ 2010-05-17 11:22 UTC (permalink / raw)
To: davem; +Cc: netdev, ameen.rahman
Device state need to be mark as FAILED, if fail to start firmware.
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
---
drivers/net/qlcnic/qlcnic_main.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c
index f8bd1bd..1003eb7 100644
--- a/drivers/net/qlcnic/qlcnic_main.c
+++ b/drivers/net/qlcnic/qlcnic_main.c
@@ -635,9 +635,12 @@ wait_init:
adapter->need_fw_reset = 0;
- /* fall through and release firmware */
+ qlcnic_release_firmware(adapter);
+ return 0;
err_out:
+ QLCWR32(adapter, QLCNIC_CRB_DEV_STATE, QLCNIC_DEV_FAILED);
+ dev_err(&adapter->pdev->dev, "Device state set to failed\n");
qlcnic_release_firmware(adapter);
return err;
}
@@ -1100,8 +1103,10 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_out_iounmap;
err = qlcnic_start_firmware(adapter);
- if (err)
+ if (err) {
+ dev_err(&pdev->dev, "Loading fw failed.Please Reboot\n");
goto err_out_decr_ref;
+ }
qlcnic_clear_stats(adapter);
@@ -2061,6 +2066,7 @@ qlcnic_can_start_firmware(struct qlcnic_adapter *adapter)
break;
case QLCNIC_DEV_FAILED:
+ dev_err(&adapter->pdev->dev, "Device in failed state.\n");
qlcnic_api_unlock(adapter);
return -1;
--
1.5.6.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH NEXT 0/7]qlcnic: bug fixes
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
` (6 preceding siblings ...)
2010-05-17 11:22 ` [PATCH NEXT 7/7] qlcnic: mark device state fail Amit Kumar Salecha
@ 2010-05-18 0:31 ` David Miller
7 siblings, 0 replies; 9+ messages in thread
From: David Miller @ 2010-05-18 0:31 UTC (permalink / raw)
To: amit.salecha; +Cc: netdev, ameen.rahman
From: Amit Kumar Salecha <amit.salecha@qlogic.com>
Date: Mon, 17 May 2010 04:22:07 -0700
> Series of 7 patches to fix minor bugs. Please apply them on
> net-next.
All applied, thank you.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-05-18 0:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-17 11:22 [PATCH NEXT 0/7]qlcnic: bug fixes Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 1/7] qlcnic: fix memory leaks Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 2/7] qlcnic: change adapter name display Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 3/7] qlcnic: fix rx bytes statistics Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 4/7] qlcnic: module param for firmware load option Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 5/7] qlcnic: fix internal loopback test Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 6/7] qlcnic: remove unused register Amit Kumar Salecha
2010-05-17 11:22 ` [PATCH NEXT 7/7] qlcnic: mark device state fail Amit Kumar Salecha
2010-05-18 0:31 ` [PATCH NEXT 0/7]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).