Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

6 messages, 5 authors, 2007-06-27 · open the first message on its own page

Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

From: Stephen Hemminger <hidden>
Date: 2007-06-19 20:10:43

On Tue, 19 Jun 2007 21:02:53 +0200
Olaf Hering [off-list ref] wrote:
What happend to __ucmpdi2 from David Woodhouse?
google has a few hits about stuff like this on 32bit powerpc with gcc 4.1.2:

ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

using the drivers/net/s2io* files from 2.6.21 with 2.6.22-rc5 fixes the
compile.

25805dcf9d83098cf5492117ad2669cd14cc9b24 adds two u64 >>= 48 followed by
a switch statement (line 2889 and 6816).
Probably the "switch(err) {" needs a cast to a smaller type (like u8).
-- 
Stephen Hemminger [off-list ref]

Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

From: Olaf Hering <hidden>
Date: 2007-06-19 20:41:21

On Tue, Jun 19, Stephen Hemminger wrote:
On Tue, 19 Jun 2007 21:02:53 +0200
Olaf Hering [off-list ref] wrote:
quoted
What happend to __ucmpdi2 from David Woodhouse?
google has a few hits about stuff like this on 32bit powerpc with gcc 4.1.2:

ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

using the drivers/net/s2io* files from 2.6.21 with 2.6.22-rc5 fixes the
compile.

25805dcf9d83098cf5492117ad2669cd14cc9b24 adds two u64 >>= 48 followed by
a switch statement (line 2889 and 6816).
Probably the "switch(err) {" needs a cast to a smaller type (like u8).
This change removes the calls to __ucmpdi2.

---
 drivers/net/s2io.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -2868,6 +2868,7 @@ static void tx_intr_handler(struct fifo_
 	struct tx_curr_get_info get_info, put_info;
 	struct sk_buff *skb;
 	struct TxD *txdlp;
+	u8 err_mask;
 
 	get_info = fifo_data->tx_curr_get_info;
 	memcpy(&put_info, &fifo_data->tx_curr_put_info, sizeof(put_info));
@@ -2886,8 +2887,8 @@ static void tx_intr_handler(struct fifo_
 			}
 
 			/* update t_code statistics */
-			err >>= 48;
-			switch(err) {
+			err_mask = err >> 48;
+			switch(err_mask) {
 				case 2:
 					nic->mac_control.stats_info->sw_stat.
 							tx_buf_abort_cnt++;
@@ -6805,6 +6806,7 @@ static int rx_osm_handler(struct ring_in
 	u16 l3_csum, l4_csum;
 	unsigned long long err = rxdp->Control_1 & RXD_T_CODE;
 	struct lro *lro;
+	u8 err_mask;
 
 	skb->dev = dev;
 
@@ -6813,8 +6815,8 @@ static int rx_osm_handler(struct ring_in
 		if (err & 0x1) {
 			sp->mac_control.stats_info->sw_stat.parity_err_cnt++;
 		}
-		err >>= 48;
-		switch(err) {
+		err_mask = err >> 48;
+		switch(err_mask) {
 			case 1:
 				sp->mac_control.stats_info->sw_stat.
 				rx_parity_err_cnt++;
@@ -6867,9 +6869,9 @@ static int rx_osm_handler(struct ring_in
 		* Note that in this case, since checksum will be incorrect,
 		* stack will validate the same.
 		*/
-		if (err != 0x5) {
-			DBG_PRINT(ERR_DBG, "%s: Rx error Value: 0x%llx\n",
-				dev->name, err);
+		if (err_mask != 0x5) {
+			DBG_PRINT(ERR_DBG, "%s: Rx error Value: 0x%x\n",
+				dev->name, err_mask);
 			sp->stats.rx_crc_errors++;
 			sp->mac_control.stats_info->sw_stat.mem_freed 
 				+= skb->truesize;

RE: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

From: Sivakumar Subramani <hidden>
Date: 2007-06-21 09:55:30

Hi,

We will include this fix in next set of patch submission. Thanks for the
fix.

Thanks,
~Siva 
-----Original Message-----
From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
On Behalf Of Olaf Hering
Sent: Wednesday, June 20, 2007 2:11 AM
To: Stephen Hemminger
Cc: linux-kernel@vger.kernel.org; netdev@vger.kernel.org
Subject: Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

On Tue, Jun 19, Stephen Hemminger wrote:
On Tue, 19 Jun 2007 21:02:53 +0200
Olaf Hering [off-list ref] wrote:
quoted
What happend to __ucmpdi2 from David Woodhouse?
google has a few hits about stuff like this on 32bit powerpc with
gcc 4.1.2:
quoted
ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

using the drivers/net/s2io* files from 2.6.21 with 2.6.22-rc5 fixes 
the compile.

25805dcf9d83098cf5492117ad2669cd14cc9b24 adds two u64 >>= 48 
followed by a switch statement (line 2889 and 6816).
Probably the "switch(err) {" needs a cast to a smaller type (like u8).
This change removes the calls to __ucmpdi2.

---
 drivers/net/s2io.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -2868,6 +2868,7 @@ static void tx_intr_handler(struct fifo_
 	struct tx_curr_get_info get_info, put_info;
 	struct sk_buff *skb;
 	struct TxD *txdlp;
+	u8 err_mask;
 
 	get_info = fifo_data->tx_curr_get_info;
 	memcpy(&put_info, &fifo_data->tx_curr_put_info,
sizeof(put_info)); @@ -2886,8 +2887,8 @@ static void
tx_intr_handler(struct fifo_
 			}
 
 			/* update t_code statistics */
-			err >>= 48;
-			switch(err) {
+			err_mask = err >> 48;
+			switch(err_mask) {
 				case 2:
 
nic->mac_control.stats_info->sw_stat.
 
tx_buf_abort_cnt++;
@@ -6805,6 +6806,7 @@ static int rx_osm_handler(struct ring_in
 	u16 l3_csum, l4_csum;
 	unsigned long long err = rxdp->Control_1 & RXD_T_CODE;
 	struct lro *lro;
+	u8 err_mask;
 
 	skb->dev = dev;
 
@@ -6813,8 +6815,8 @@ static int rx_osm_handler(struct ring_in
 		if (err & 0x1) {
 
sp->mac_control.stats_info->sw_stat.parity_err_cnt++;
 		}
-		err >>= 48;
-		switch(err) {
+		err_mask = err >> 48;
+		switch(err_mask) {
 			case 1:
 				sp->mac_control.stats_info->sw_stat.
 				rx_parity_err_cnt++;
@@ -6867,9 +6869,9 @@ static int rx_osm_handler(struct ring_in
 		* Note that in this case, since checksum will be
incorrect,
 		* stack will validate the same.
 		*/
-		if (err != 0x5) {
-			DBG_PRINT(ERR_DBG, "%s: Rx error Value:
0x%llx\n",
-				dev->name, err);
+		if (err_mask != 0x5) {
+			DBG_PRINT(ERR_DBG, "%s: Rx error Value: 0x%x\n",
+				dev->name, err_mask);
 			sp->stats.rx_crc_errors++;
 			sp->mac_control.stats_info->sw_stat.mem_freed 
 				+= skb->truesize;
-
To unsubscribe from this list: send the line "unsubscribe netdev" in the
body of a message to majordomo@vger.kernel.org More majordomo info at
http://vger.kernel.org/majordomo-info.html

Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2007-06-26 07:03:11

On Thu, 21 Jun 2007 05:55:13 -0400 "Sivakumar Subramani" [off-list ref] wrote:
-----Original Message-----
quoted
From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
On Behalf Of Olaf Hering
Sent: Wednesday, June 20, 2007 2:11 AM
To: Stephen Hemminger
Cc: linux-kernel@vger.kernel.org; netdev@vger.kernel.org
Subject: Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

On Tue, Jun 19, Stephen Hemminger wrote:
quoted
On Tue, 19 Jun 2007 21:02:53 +0200
Olaf Hering [off-list ref] wrote:
quoted
What happend to __ucmpdi2 from David Woodhouse?
google has a few hits about stuff like this on 32bit powerpc with
gcc 4.1.2:
quoted
quoted
ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

using the drivers/net/s2io* files from 2.6.21 with 2.6.22-rc5 fixes 
the compile.

25805dcf9d83098cf5492117ad2669cd14cc9b24 adds two u64 >>= 48 
followed by a switch statement (line 2889 and 6816).
Probably the "switch(err) {" needs a cast to a smaller type (like u8).
This change removes the calls to __ucmpdi2.
(fixes quoting, fixes top-posting.  Please don't top-post).
Hi,

We will include this fix in next set of patch submission. Thanks for the
fix.

---
quoted
 drivers/net/s2io.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -2868,6 +2868,7 @@ static void tx_intr_handler(struct fifo_
 	struct tx_curr_get_info get_info, put_info;
 	struct sk_buff *skb;
 	struct TxD *txdlp;
+	u8 err_mask;
 
 	get_info = fifo_data->tx_curr_get_info;
 	memcpy(&put_info, &fifo_data->tx_curr_put_info,
sizeof(put_info)); @@ -2886,8 +2887,8 @@ static void
tx_intr_handler(struct fifo_
 			}
 
 			/* update t_code statistics */
-			err >>= 48;
-			switch(err) {
+			err_mask = err >> 48;
+			switch(err_mask) {
 				case 2:
 
nic->mac_control.stats_info->sw_stat.
 
tx_buf_abort_cnt++;
@@ -6805,6 +6806,7 @@ static int rx_osm_handler(struct ring_in
 	u16 l3_csum, l4_csum;
 	unsigned long long err = rxdp->Control_1 & RXD_T_CODE;
 	struct lro *lro;
+	u8 err_mask;
 
 	skb->dev = dev;
 
@@ -6813,8 +6815,8 @@ static int rx_osm_handler(struct ring_in
 		if (err & 0x1) {
 
sp->mac_control.stats_info->sw_stat.parity_err_cnt++;
 		}
-		err >>= 48;
-		switch(err) {
+		err_mask = err >> 48;
+		switch(err_mask) {
 			case 1:
 				sp->mac_control.stats_info->sw_stat.
 				rx_parity_err_cnt++;
@@ -6867,9 +6869,9 @@ static int rx_osm_handler(struct ring_in
 		* Note that in this case, since checksum will be
incorrect,
 		* stack will validate the same.
 		*/
-		if (err != 0x5) {
-			DBG_PRINT(ERR_DBG, "%s: Rx error Value:
0x%llx\n",
-				dev->name, err);
+		if (err_mask != 0x5) {
+			DBG_PRINT(ERR_DBG, "%s: Rx error Value: 0x%x\n",
+				dev->name, err_mask);
 			sp->stats.rx_crc_errors++;
 			sp->mac_control.stats_info->sw_stat.mem_freed 
 				+= skb->truesize;
This fix is still not present in anyone's tree and is required for
2.6.22.  Where are we up to with it?

Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

From: Jeff Garzik <hidden>
Date: 2007-06-26 10:08:19

Andrew Morton wrote:
This fix is still not present in anyone's tree and is required for
2.6.22.  Where are we up to with it?

It's in my mbox queue for 2.6.22 (hopefully today).

	Jeff

Re: 2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

From: Jeff Garzik <hidden>
Date: 2007-06-27 06:33:58

Olaf Hering wrote:
On Tue, Jun 19, Stephen Hemminger wrote:
quoted
On Tue, 19 Jun 2007 21:02:53 +0200
Olaf Hering [off-list ref] wrote:
quoted
What happend to __ucmpdi2 from David Woodhouse?
google has a few hits about stuff like this on 32bit powerpc with gcc 4.1.2:

ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

using the drivers/net/s2io* files from 2.6.21 with 2.6.22-rc5 fixes the
compile.

25805dcf9d83098cf5492117ad2669cd14cc9b24 adds two u64 >>= 48 followed by
a switch statement (line 2889 and 6816).
Probably the "switch(err) {" needs a cast to a smaller type (like u8).
This change removes the calls to __ucmpdi2.

---
 drivers/net/s2io.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
applied to #upstream-fixes

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help