Re: [PATCH 2.6.17 0/9] NetXen: 1G/10G Ethernet Driver - patch for big-endian systems

2006-08-25 Thread Amit S. Kale
Wendy, Michael, Ueimor,

Thanks for the patch and feedback. We'll integrate these into our driver and 
post an update asap.

-Amit

On Friday 25 August 2006 03:10, Francois Romieu wrote:
 wen xiong [EMAIL PROTECTED] :
 [...]

  diff -Nuar old/drivers/net/netxen/netxen_nic_hw.c
  new/drivers/net/netxen/netxen_nic_hw.c ---
  old/drivers/net/netxen/netxen_nic_hw.c  2006-08-23 12:58:43.0
  -0500 +++ new/drivers/net/netxen/netxen_nic_hw.c2006-08-23
  13:15:19.0 -0500 @@ -313,7 +313,8 @@
  }
  }
  CMD_DESC_TCP_HDR_OFFSET_WRT(desc, skb-h.raw - skb-data);
  -   desc-ip_hdr_offset = skb-nh.raw - skb-data;
  +   desc-length_tcp_hdr=cpu_to_le32(desc-length_tcp_hdr);

 s/=/ = /

 (several occurences)

 [...]

  diff -Nuar old/drivers/net/netxen/netxen_nic_init.c
  new/drivers/net/netxen/netxen_nic_init.c ---
  old/drivers/net/netxen/netxen_nic_init.c2006-08-23 12:58:43.0
  -0500 +++ new/drivers/net/netxen/netxen_nic_init.c  2006-08-23
  13:15:19.0 -0500 @@ -494,7 +494,7 @@
  desc_head = recv_ctx-rcv_status_desc_head;
  desc = desc_head[consumer];
 
  -   if ((desc-owner  STATUS_OWNER_HOST))
  +   if (((le16_to_cpu(desc-owner))  STATUS_OWNER_HOST))

 Would it make a difference to swab the constant part, i.e.:

   if (desc-owner  cpu_to_le16(STATUS_OWNER_HOST))
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.17 0/9] NetXen: 1G/10G Ethernet Driver - patch for big-endian systems

2006-08-24 Thread Michael Buesch
On Thursday 24 August 2006 22:36, wen xiong wrote:
 
 Hi All,
 
 This patch brings the NetXen Ethernet driver to work on big-endian
 systems. I have tested this patch on difference platforms including
 little-endian and big-endian systems. The patch included:
 (1)transmit and receive descriptors endian issue fix.
 (2)MAC address endian issue fix.

Next time please inline the patch in the mail.

 diff -Nuar old/drivers/net/netxen/netxen_nic_hw.c
 new/drivers/net/netxen/netxen_nic_hw.c ---
 old/drivers/net/netxen/netxen_nic_hw.c2006-08-23 12:58:43.0 
 -0500
 +++ new/drivers/net/netxen/netxen_nic_hw.c2006-08-23 13:15:19.0
 -0500 @@ -313,7 +313,8 @@
   }
   }
   CMD_DESC_TCP_HDR_OFFSET_WRT(desc, skb-h.raw - skb-data);
 - desc-ip_hdr_offset = skb-nh.raw - skb-data;
 + desc-length_tcp_hdr=cpu_to_le32(desc-length_tcp_hdr);
   ^^^
spaces here, please.

 + desc-ip_hdr_offset  = skb-nh.raw - skb-data;
   
That's one space too much ;) No need to change that line.

 @@ -832,9 +832,9 @@
rcv_desc-dma_size,
PCI_DMA_FROMDEVICE);
   /* make a rcv descriptor  */
 - pdesc-reference_handle = __cpu_to_le16(buffer-ref_handle);
 - pdesc-buffer_length = __cpu_to_le16(rcv_desc-dma_size);
 - pdesc-addr_buffer = __cpu_to_le64(buffer-dma);
 + pdesc-reference_handle = le16_to_cpu(buffer-ref_handle);

I think that should be cpu_to_le16()
(although they are technically equal..)

 + pdesc-buffer_length = le16_to_cpu(rcv_desc-dma_size);

dito

 diff -Nuar old/drivers/net/netxen/netxen_nic_niu.c
 new/drivers/net/netxen/netxen_nic_niu.c ---
 old/drivers/net/netxen/netxen_nic_niu.c   2006-08-23 12:58:43.0 
 -0500
 +++ new/drivers/net/netxen/netxen_nic_niu.c   2006-08-23 13:15:19.0
 -0500 @@ -712,6 +712,7 @@
   return -EINVAL;

   memcpy(temp, addr, 2);
 + temp=cpu_to_le32(temp);

I think that should be:
temp = le32_to_cpu(temp);

   temp = 16;
   if (netxen_nic_hw_write_wx(adapter, NETXEN_NIU_XGE_STATION_ADDR_0_1,
  temp, 4))
 @@ -720,6 +721,7 @@
   temp = 0;

   memcpy(temp, ((u8 *) addr) + 2, sizeof(netxen_crbword_t));
 + temp=cpu_to_le32(temp);

dito

   if (netxen_nic_hw_write_wx(adapter, NETXEN_NIU_XGE_STATION_ADDR_0_HI,
  temp, 4))
   return -EIO;
 @@ -760,7 +762,7 @@
  long netxen_niu_xg_set_promiscuous_mode(struct netxen_adapter *adapter,
   long port, netxen_niu_prom_mode_t mode)
  {
 - long reg;
 + netxen_crbword_t reg;

   if ((port  0) || (port  NETXEN_NIU_MAX_GBE_PORTS))
   return -EINVAL;

-- 
Greetings Michael.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.17 0/9] NetXen: 1G/10G Ethernet Driver - patch for big-endian systems

2006-08-24 Thread wen xiong

Hi All,

This patch brings the NetXen Ethernet driver to work on big-endian
systems. I have tested this patch on difference platforms including
little-endian and big-endian systems. The patch included:
(1)transmit and receive descriptors endian issue fix.
(2)MAC address endian issue fix.

This patch can apply to the recently NetXen driver submission patches.

If you have any questions and comments, please let me know.
Thank for your help!
wendy

Signed-off-by : Wen Xiong [EMAIL PROTECTED]

On Tue, 2006-08-22 at 00:43 -0700, Pradeep Dalvi wrote:
 Hi,
 
 This updated patch with name prefix changes is available for download at,
 http://www.netxen.com/products/downloads/netxen-2.6.17.patch.zip
 
 Thanks and regards,
 pradeep
 

diff -Nuar old/drivers/net/netxen/netxen_nic_hw.c new/drivers/net/netxen/netxen_nic_hw.c
--- old/drivers/net/netxen/netxen_nic_hw.c	2006-08-23 12:58:43.0 -0500
+++ new/drivers/net/netxen/netxen_nic_hw.c	2006-08-23 13:15:19.0 -0500
@@ -313,7 +313,8 @@
 		}
 	}
 	CMD_DESC_TCP_HDR_OFFSET_WRT(desc, skb-h.raw - skb-data);
-	desc-ip_hdr_offset = skb-nh.raw - skb-data;
+	desc-length_tcp_hdr=cpu_to_le32(desc-length_tcp_hdr);
+	desc-ip_hdr_offset  = skb-nh.raw - skb-data;
 	adapter-stats.xmitcsummed++;
 }
 
diff -Nuar old/drivers/net/netxen/netxen_nic_init.c new/drivers/net/netxen/netxen_nic_init.c
--- old/drivers/net/netxen/netxen_nic_init.c	2006-08-23 12:58:43.0 -0500
+++ new/drivers/net/netxen/netxen_nic_init.c	2006-08-23 13:15:19.0 -0500
@@ -494,7 +494,7 @@
 		desc_head = recv_ctx-rcv_status_desc_head;
 		desc = desc_head[consumer];
 
-		if ((desc-owner  STATUS_OWNER_HOST))
+		if (((le16_to_cpu(desc-owner))  STATUS_OWNER_HOST))
 			return 1;
 	}
 
@@ -540,12 +540,12 @@
 	struct netxen_port *port = adapter-port[STATUS_DESC_PORT(desc)];
 	struct pci_dev *pdev = port-pdev;
 	struct net_device *netdev = port-netdev;
-	int index = __le16_to_cpu(desc-reference_handle);
+	int index = le16_to_cpu(desc-reference_handle);
 	struct netxen_recv_context *recv_ctx =
 	(adapter-recv_ctx[ctxid]);
 	struct netxen_rx_buffer *buffer;
 	struct sk_buff *skb;
-	u32 length = __le16_to_cpu(desc-total_length);
+	u16 length = le16_to_cpu(desc-total_length);
 	u32 desc_ctx;
 	struct netxen_rcv_desc_ctx *rcv_desc;
 	int ret;
@@ -640,7 +640,7 @@
 	 */
 	while (count  max) {
 		desc = desc_head[consumer];
-		if (!(desc-owner  STATUS_OWNER_HOST)) {
+		if (!((le16_to_cpu(desc-owner))  STATUS_OWNER_HOST)) {
 			DPRINTK(ERR, desc %p ownedby %x\n, desc, desc-owner);
 			break;
 		}
@@ -832,9 +832,9 @@
 	 rcv_desc-dma_size,
 	 PCI_DMA_FROMDEVICE);
 		/* make a rcv descriptor  */
-		pdesc-reference_handle = __cpu_to_le16(buffer-ref_handle);
-		pdesc-buffer_length = __cpu_to_le16(rcv_desc-dma_size);
-		pdesc-addr_buffer = __cpu_to_le64(buffer-dma);
+		pdesc-reference_handle = le16_to_cpu(buffer-ref_handle);
+		pdesc-buffer_length = le16_to_cpu(rcv_desc-dma_size);
+		pdesc-addr_buffer = cpu_to_le64(buffer-dma);
 		DPRINTK(INFO, done writing descripter\n);
 		producer =
 		get_next_index(producer, rcv_desc-max_rx_desc_count);
diff -Nuar old/drivers/net/netxen/netxen_nic_main.c new/drivers/net/netxen/netxen_nic_main.c
--- old/drivers/net/netxen/netxen_nic_main.c	2006-08-23 12:58:43.0 -0500
+++ new/drivers/net/netxen/netxen_nic_main.c	2006-08-23 13:15:19.0 -0500
@@ -746,8 +746,8 @@
 	hwdesc-opcode = TX_ETHER_PKT;
 
 	CMD_DESC_PORT_WRT(hwdesc, port-portnum);
-	hwdesc-buffer1_length = __cpu_to_le16(first_seg_len);
-	hwdesc-addr_buffer1 = __cpu_to_le64(buffrag-dma);
+	hwdesc-buffer1_length = cpu_to_le16(first_seg_len);
+	hwdesc-addr_buffer1 = cpu_to_le64(buffrag-dma);
 
 	for (i = 1, k = 1; i  frag_count; i++, k++) {
 		struct skb_frag_struct *frag;
@@ -778,20 +778,20 @@
 		DPRINTK(INFO, for loop. i=%d k=%d\n, i, k);
 		switch (k) {
 		case 0:
-			hwdesc-buffer1_length = __cpu_to_le16(temp_len);
-			hwdesc-addr_buffer1 = __cpu_to_le64(temp_dma);
+			hwdesc-buffer1_length = cpu_to_le16(temp_len);
+			hwdesc-addr_buffer1 = cpu_to_le64(temp_dma);
 			break;
 		case 1:
-			hwdesc-buffer2_length = __cpu_to_le16(temp_len);
-			hwdesc-addr_buffer2 = __cpu_to_le64(temp_dma);
+			hwdesc-buffer2_length = cpu_to_le16(temp_len);
+			hwdesc-addr_buffer2 = cpu_to_le64(temp_dma);
 			break;
 		case 2:
-			hwdesc-buffer3_length = __cpu_to_le16(temp_len);
-			hwdesc-addr_buffer3 = __cpu_to_le64(temp_dma);
+			hwdesc-buffer3_length = cpu_to_le16(temp_len);
+			hwdesc-addr_buffer3 = cpu_to_le64(temp_dma);
 			break;
 		case 3:
 			hwdesc-buffer4_length = temp_len;
-			hwdesc-addr_buffer4 = __cpu_to_le64(temp_dma);
+			hwdesc-addr_buffer4 = cpu_to_le64(temp_dma);
 			break;
 		}
 		frag++;
diff -Nuar old/drivers/net/netxen/netxen_nic_niu.c new/drivers/net/netxen/netxen_nic_niu.c
--- old/drivers/net/netxen/netxen_nic_niu.c	2006-08-23 12:58:43.0 -0500
+++ new/drivers/net/netxen/netxen_nic_niu.c	2006-08-23 13:15:19.0 -0500
@@ -712,6 +712,7 @@
 		return -EINVAL;
 
 	

Re: [PATCH 2.6.17 0/9] NetXen: 1G/10G Ethernet Driver - patch for big-endian systems

2006-08-24 Thread Francois Romieu
wen xiong [EMAIL PROTECTED] :
[...]
 diff -Nuar old/drivers/net/netxen/netxen_nic_hw.c 
 new/drivers/net/netxen/netxen_nic_hw.c
 --- old/drivers/net/netxen/netxen_nic_hw.c2006-08-23 12:58:43.0 
 -0500
 +++ new/drivers/net/netxen/netxen_nic_hw.c2006-08-23 13:15:19.0 
 -0500
 @@ -313,7 +313,8 @@
   }
   }
   CMD_DESC_TCP_HDR_OFFSET_WRT(desc, skb-h.raw - skb-data);
 - desc-ip_hdr_offset = skb-nh.raw - skb-data;
 + desc-length_tcp_hdr=cpu_to_le32(desc-length_tcp_hdr);

s/=/ = /

(several occurences)

[...]
 diff -Nuar old/drivers/net/netxen/netxen_nic_init.c 
 new/drivers/net/netxen/netxen_nic_init.c
 --- old/drivers/net/netxen/netxen_nic_init.c  2006-08-23 12:58:43.0 
 -0500
 +++ new/drivers/net/netxen/netxen_nic_init.c  2006-08-23 13:15:19.0 
 -0500
 @@ -494,7 +494,7 @@
   desc_head = recv_ctx-rcv_status_desc_head;
   desc = desc_head[consumer];
  
 - if ((desc-owner  STATUS_OWNER_HOST))
 + if (((le16_to_cpu(desc-owner))  STATUS_OWNER_HOST))

Would it make a difference to swab the constant part, i.e.:

if (desc-owner  cpu_to_le16(STATUS_OWNER_HOST))

-- 
Ueimor
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html