All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic
       [not found] <Barak Witkowski <barak@broadcom.com>
@ 2011-12-07 13:45 ` Barak Witkowski
  2011-12-07 13:45   ` [PATCH net-next 2/2] bnx2x: fix typo in fcoe stats collection Barak Witkowski
  2011-12-07 17:04   ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Joe Perches
  2011-12-14 10:14 ` [PATCH net-next 1/1] bnx2x: handle vpd data longer than 128 bytes Barak Witkowski
  1 sibling, 2 replies; 8+ messages in thread
From: Barak Witkowski @ 2011-12-07 13:45 UTC (permalink / raw)
  To: davem, netdev; +Cc: Barak Witkowski, Eilon Greenstein

This patch returns ACK with zeroed buffer to FW upon fcoe/iscsi drv_info
request if cnic is not defined. This is better handling in comparison to
send NACK to FW upon such request, as it's a valid request.

Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Barak Witkowski <barak@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 418e7d3..d104695 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -2941,9 +2941,9 @@ static void bnx2x_drv_info_ether_stat(struct bnx2x *bp)
 	ether_stat->rxq_size = bp->rx_ring_size;
 }
 
+#ifdef BCM_CNIC
 static void bnx2x_drv_info_fcoe_stat(struct bnx2x *bp)
 {
-#ifdef BCM_CNIC
 	struct bnx2x_dcbx_app_params *app = &bp->dcbx_port_params.app;
 	struct fcoe_stats_info *fcoe_stat =
 		&bp->slowpath->drv_info_to_mcp.fcoe_stat;
@@ -3029,12 +3029,12 @@ static void bnx2x_drv_info_fcoe_stat(struct bnx2x *bp)
 
 	/* ask L5 driver to add data to the struct */
 	bnx2x_cnic_notify(bp, CNIC_CTL_FCOE_STATS_GET_CMD);
-#endif
 }
+#endif
 
+#ifdef BCM_CNIC
 static void bnx2x_drv_info_iscsi_stat(struct bnx2x *bp)
 {
-#ifdef BCM_CNIC
 	struct bnx2x_dcbx_app_params *app = &bp->dcbx_port_params.app;
 	struct iscsi_stats_info *iscsi_stat =
 		&bp->slowpath->drv_info_to_mcp.iscsi_stat;
@@ -3046,8 +3046,8 @@ static void bnx2x_drv_info_iscsi_stat(struct bnx2x *bp)
 
 	/* ask L5 driver to add data to the struct */
 	bnx2x_cnic_notify(bp, CNIC_CTL_ISCSI_STATS_GET_CMD);
-#endif
 }
+#endif
 
 /* called due to MCP event (on pmf):
  *	reread new bandwidth configuration
@@ -3091,10 +3091,14 @@ static void bnx2x_handle_drv_info_req(struct bnx2x *bp)
 		bnx2x_drv_info_ether_stat(bp);
 		break;
 	case FCOE_STATS_OPCODE:
+#ifdef BCM_CNIC
 		bnx2x_drv_info_fcoe_stat(bp);
+#endif
 		break;
 	case ISCSI_STATS_OPCODE:
+#ifdef BCM_CNIC
 		bnx2x_drv_info_iscsi_stat(bp);
+#endif
 		break;
 	default:
 		/* if op code isn't supported - send NACK */
-- 
1.7.7.4

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

* [PATCH net-next 2/2] bnx2x: fix typo in fcoe stats collection
  2011-12-07 13:45 ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Barak Witkowski
@ 2011-12-07 13:45   ` Barak Witkowski
  2011-12-07 18:39     ` David Miller
  2011-12-07 17:04   ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Joe Perches
  1 sibling, 1 reply; 8+ messages in thread
From: Barak Witkowski @ 2011-12-07 13:45 UTC (permalink / raw)
  To: davem, netdev; +Cc: Barak Witkowski, Eilon Greenstein

Signed-off-by: Barak Witkowski <barak@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index d104695..12b8001 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -2994,7 +2994,7 @@ static void bnx2x_drv_info_fcoe_stat(struct bnx2x *bp)
 		       fcoe_q_tstorm_stats->rcv_bcast_pkts);
 
 		ADD_64(fcoe_stat->rx_frames_hi, 0, fcoe_stat->rx_frames_lo,
-		       fcoe_q_tstorm_stats->rcv_ucast_pkts);
+		       fcoe_q_tstorm_stats->rcv_mcast_pkts);
 
 		ADD_64(fcoe_stat->tx_bytes_hi, 0, fcoe_stat->tx_bytes_lo,
 		       fw_fcoe_stat->tx_stat.fcoe_tx_byte_cnt);
-- 
1.7.7.4

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

* Re: [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic
  2011-12-07 13:45 ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Barak Witkowski
  2011-12-07 13:45   ` [PATCH net-next 2/2] bnx2x: fix typo in fcoe stats collection Barak Witkowski
@ 2011-12-07 17:04   ` Joe Perches
  2011-12-07 18:45     ` David Miller
  1 sibling, 1 reply; 8+ messages in thread
From: Joe Perches @ 2011-12-07 17:04 UTC (permalink / raw)
  To: Barak Witkowski; +Cc: davem, netdev, Eilon Greenstein

On Wed, 2011-12-07 at 15:45 +0200, Barak Witkowski wrote:
> This patch returns ACK with zeroed buffer to FW upon fcoe/iscsi drv_info
> request if cnic is not defined. This is better handling in comparison to
> send NACK to FW upon such request, as it's a valid request.

Hi Barak.

Other than the good comment,
I think this patch isn't useful.
It adds maintenance overhead.

It just adds more #ifdefs.

gcc should remove the call to the
empty static void funcs.

> Reported-by: Joe Perches <joe@perches.com>
> Signed-off-by: Barak Witkowski <barak@broadcom.com>
> Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
> ---
>  drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |   12 ++++++++----
>  1 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> index 418e7d3..d104695 100644
> --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
> @@ -2941,9 +2941,9 @@ static void bnx2x_drv_info_ether_stat(struct bnx2x *bp)
>  	ether_stat->rxq_size = bp->rx_ring_size;
>  }
>  
> +#ifdef BCM_CNIC
>  static void bnx2x_drv_info_fcoe_stat(struct bnx2x *bp)
>  {
> -#ifdef BCM_CNIC
>  	struct bnx2x_dcbx_app_params *app = &bp->dcbx_port_params.app;
>  	struct fcoe_stats_info *fcoe_stat =
>  		&bp->slowpath->drv_info_to_mcp.fcoe_stat;
> @@ -3029,12 +3029,12 @@ static void bnx2x_drv_info_fcoe_stat(struct bnx2x *bp)
>  
>  	/* ask L5 driver to add data to the struct */
>  	bnx2x_cnic_notify(bp, CNIC_CTL_FCOE_STATS_GET_CMD);
> -#endif
>  }
> +#endif
>  
> +#ifdef BCM_CNIC
>  static void bnx2x_drv_info_iscsi_stat(struct bnx2x *bp)
>  {
> -#ifdef BCM_CNIC
>  	struct bnx2x_dcbx_app_params *app = &bp->dcbx_port_params.app;
>  	struct iscsi_stats_info *iscsi_stat =
>  		&bp->slowpath->drv_info_to_mcp.iscsi_stat;
> @@ -3046,8 +3046,8 @@ static void bnx2x_drv_info_iscsi_stat(struct bnx2x *bp)
>  
>  	/* ask L5 driver to add data to the struct */
>  	bnx2x_cnic_notify(bp, CNIC_CTL_ISCSI_STATS_GET_CMD);
> -#endif
>  }
> +#endif
>  
>  /* called due to MCP event (on pmf):
>   *	reread new bandwidth configuration
> @@ -3091,10 +3091,14 @@ static void bnx2x_handle_drv_info_req(struct bnx2x *bp)
>  		bnx2x_drv_info_ether_stat(bp);
>  		break;
>  	case FCOE_STATS_OPCODE:
> +#ifdef BCM_CNIC
>  		bnx2x_drv_info_fcoe_stat(bp);
> +#endif
>  		break;
>  	case ISCSI_STATS_OPCODE:
> +#ifdef BCM_CNIC
>  		bnx2x_drv_info_iscsi_stat(bp);
> +#endif
>  		break;
>  	default:
>  		/* if op code isn't supported - send NACK */

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

* Re: [PATCH net-next 2/2] bnx2x: fix typo in fcoe stats collection
  2011-12-07 13:45   ` [PATCH net-next 2/2] bnx2x: fix typo in fcoe stats collection Barak Witkowski
@ 2011-12-07 18:39     ` David Miller
  2011-12-08 14:13       ` [BUG] bnx2x: crash at boot Eric Dumazet
  0 siblings, 1 reply; 8+ messages in thread
From: David Miller @ 2011-12-07 18:39 UTC (permalink / raw)
  To: barak; +Cc: netdev, eilong

From: "Barak Witkowski" <barak@broadcom.com>
Date: Wed, 7 Dec 2011 15:45:36 +0200

> Signed-off-by: Barak Witkowski <barak@broadcom.com>
> Signed-off-by: Eilon Greenstein <eilong@broadcom.com>

Applied.

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

* Re: [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic
  2011-12-07 17:04   ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Joe Perches
@ 2011-12-07 18:45     ` David Miller
  0 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2011-12-07 18:45 UTC (permalink / raw)
  To: joe; +Cc: barak, netdev, eilong

From: Joe Perches <joe@perches.com>
Date: Wed, 07 Dec 2011 09:04:00 -0800

> On Wed, 2011-12-07 at 15:45 +0200, Barak Witkowski wrote:
>> This patch returns ACK with zeroed buffer to FW upon fcoe/iscsi drv_info
>> request if cnic is not defined. This is better handling in comparison to
>> send NACK to FW upon such request, as it's a valid request.
> 
> Hi Barak.
> 
> Other than the good comment,
> I think this patch isn't useful.
> It adds maintenance overhead.
> 
> It just adds more #ifdefs.
> 
> gcc should remove the call to the
> empty static void funcs.

Agreed, I'm not applying this patch.

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

* [BUG] bnx2x: crash at boot
  2011-12-07 18:39     ` David Miller
@ 2011-12-08 14:13       ` Eric Dumazet
  0 siblings, 0 replies; 8+ messages in thread
From: Eric Dumazet @ 2011-12-08 14:13 UTC (permalink / raw)
  To: David Miller; +Cc: barak, netdev, eilong

Hi guys

Latest net-next crashes in bnx2x_stats_init+0x678/0xc90
CR2: 000000000000000004da

# CONFIG_SCSI_BNX2X_FCOE is not set

Oh well...

bnx2x_nic_init()
bnx2x_nic_load()
bnx2x_open()
dev_change_flags()

FCOE support is good, but could we get back Ethernet support ?

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

* [PATCH net-next 1/1] bnx2x: handle vpd data longer than 128 bytes
       [not found] <Barak Witkowski <barak@broadcom.com>
  2011-12-07 13:45 ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Barak Witkowski
@ 2011-12-14 10:14 ` Barak Witkowski
  2011-12-14 18:35   ` David Miller
  1 sibling, 1 reply; 8+ messages in thread
From: Barak Witkowski @ 2011-12-14 10:14 UTC (permalink / raw)
  To: davem, netdev; +Cc: Barak Witkowski, Eilon Greenstein

Signed-off-by: Barak Witkowski <barak@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |   35 +++++++++++++++++----
 1 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index b45baf9..ffeaaa9 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -9931,30 +9931,49 @@ static int __devinit bnx2x_get_hwinfo(struct bnx2x *bp)
 static void __devinit bnx2x_read_fwinfo(struct bnx2x *bp)
 {
 	int cnt, i, block_end, rodi;
-	char vpd_data[BNX2X_VPD_LEN+1];
+	char vpd_start[BNX2X_VPD_LEN+1];
 	char str_id_reg[VENDOR_ID_LEN+1];
 	char str_id_cap[VENDOR_ID_LEN+1];
+	char *vpd_data;
+	char *vpd_extended_data = NULL;
 	u8 len;
 
-	cnt = pci_read_vpd(bp->pdev, 0, BNX2X_VPD_LEN, vpd_data);
+	cnt = pci_read_vpd(bp->pdev, 0, BNX2X_VPD_LEN, vpd_start);
 	memset(bp->fw_ver, 0, sizeof(bp->fw_ver));
 
 	if (cnt < BNX2X_VPD_LEN)
 		goto out_not_found;
 
-	i = pci_vpd_find_tag(vpd_data, 0, BNX2X_VPD_LEN,
+	/* VPD RO tag should be first tag after identifier string, hence
+	 * we should be able to find it in first BNX2X_VPD_LEN chars
+	 */
+	i = pci_vpd_find_tag(vpd_start, 0, BNX2X_VPD_LEN,
 			     PCI_VPD_LRDT_RO_DATA);
 	if (i < 0)
 		goto out_not_found;
 
-
 	block_end = i + PCI_VPD_LRDT_TAG_SIZE +
-		    pci_vpd_lrdt_size(&vpd_data[i]);
+		    pci_vpd_lrdt_size(&vpd_start[i]);
 
 	i += PCI_VPD_LRDT_TAG_SIZE;
 
-	if (block_end > BNX2X_VPD_LEN)
-		goto out_not_found;
+	if (block_end > BNX2X_VPD_LEN) {
+		vpd_extended_data = kmalloc(block_end, GFP_KERNEL);
+		if (vpd_extended_data  == NULL)
+			goto out_not_found;
+
+		/* read rest of vpd image into vpd_extended_data */
+		memcpy(vpd_extended_data, vpd_start, BNX2X_VPD_LEN);
+		cnt = pci_read_vpd(bp->pdev, BNX2X_VPD_LEN,
+				   block_end - BNX2X_VPD_LEN,
+				   vpd_extended_data + BNX2X_VPD_LEN);
+		if (cnt < (block_end - BNX2X_VPD_LEN))
+			goto out_not_found;
+		vpd_data = vpd_extended_data;
+	} else
+		vpd_data = vpd_start;
+
+	/* now vpd_data holds full vpd content in both cases */
 
 	rodi = pci_vpd_find_info_keyword(vpd_data, i, block_end,
 				   PCI_VPD_RO_KEYWORD_MFR_ID);
@@ -9986,9 +10005,11 @@ static void __devinit bnx2x_read_fwinfo(struct bnx2x *bp)
 				bp->fw_ver[len] = ' ';
 			}
 		}
+		kfree(vpd_extended_data);
 		return;
 	}
 out_not_found:
+	kfree(vpd_extended_data);
 	return;
 }
 
-- 
1.7.7.4

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

* Re: [PATCH net-next 1/1] bnx2x: handle vpd data longer than 128 bytes
  2011-12-14 10:14 ` [PATCH net-next 1/1] bnx2x: handle vpd data longer than 128 bytes Barak Witkowski
@ 2011-12-14 18:35   ` David Miller
  0 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2011-12-14 18:35 UTC (permalink / raw)
  To: barak; +Cc: netdev, eilong

From: "Barak Witkowski" <barak@broadcom.com>
Date: Wed, 14 Dec 2011 12:14:53 +0200

> Signed-off-by: Barak Witkowski <barak@broadcom.com>
> Signed-off-by: Eilon Greenstein <eilong@broadcom.com>

Applied.

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

end of thread, other threads:[~2011-12-14 18:35 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <Barak Witkowski <barak@broadcom.com>
2011-12-07 13:45 ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Barak Witkowski
2011-12-07 13:45   ` [PATCH net-next 2/2] bnx2x: fix typo in fcoe stats collection Barak Witkowski
2011-12-07 18:39     ` David Miller
2011-12-08 14:13       ` [BUG] bnx2x: crash at boot Eric Dumazet
2011-12-07 17:04   ` [PATCH net-next 1/2] bnx2x: dont handle storage drv_info req if no cnic Joe Perches
2011-12-07 18:45     ` David Miller
2011-12-14 10:14 ` [PATCH net-next 1/1] bnx2x: handle vpd data longer than 128 bytes Barak Witkowski
2011-12-14 18:35   ` 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.